Class: FlightSegment
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- FlightSegment
show all
- Extended by:
- Earth::Model
- Defined in:
- lib/earth/air/flight_segment.rb
Constant Summary
collapse
- TABLE_STRUCTURE =
"\nCREATE TABLE flight_segments\n (\n row_hash CHARACTER VARYING(255) NOT NULL PRIMARY KEY,\n origin_airport_iata_code CHARACTER VARYING(255),\n origin_airport_city CHARACTER VARYING(255),\n origin_country_iso_3166_code CHARACTER VARYING(255),\n destination_airport_iata_code CHARACTER VARYING(255),\n destination_airport_city CHARACTER VARYING(255),\n destination_country_iso_3166_code CHARACTER VARYING(255),\n airline_bts_code CHARACTER VARYING(255),\n airline_icao_code CHARACTER VARYING(255),\n airline_name CHARACTER VARYING(255), /* text description derived from bts or icao code */\n aircraft_bts_code CHARACTER VARYING(255),\n aircraft_description CHARACTER VARYING(255), /* text description derived from BTS T100 or ICAO TFS */\n flights INTEGER, /* number of flights over month or year */\n passengers INTEGER, /* total passengers on all flights */\n seats INTEGER, /* total seats on all flights */\n seats_per_flight FLOAT, /* average seats per flight */\n load_factor FLOAT, /* passengers / seats */\n freight_share FLOAT, /* (freight + mail) / (freight + mail + (passengers * average passenger weight)) */\n distance FLOAT,\n distance_units CHARACTER VARYING(255),\n payload_capacity FLOAT, /* aircraft maximum payload capacity rating */\n payload_capacity_units CHARACTER VARYING(255),\n freight FLOAT, /* total freight on all flights performed */\n freight_units CHARACTER VARYING(255),\n mail FLOAT, /* total mail on all flights performed */\n mail_units CHARACTER VARYING(255),\n month INTEGER,\n year INTEGER,\n source CHARACTER VARYING(255) /* 'BTS T100' or 'ICAO TFS' */\n );\nCREATE INDEX index_flight_segments_on_origin_airport_iata_code ON flight_segments (origin_airport_iata_code);\nCREATE INDEX index_flight_segments_on_origin_airport_city ON flight_segments (origin_airport_city);\nCREATE INDEX index_flight_segments_on_destination_airport_iata_code ON flight_segments (destination_airport_iata_code);\nCREATE INDEX index_flight_segments_on_destination_airport_city ON flight_segments (destination_airport_city);\nCREATE INDEX index_flight_segments_on_airline_bts_code ON flight_segments (airline_bts_code);\nCREATE INDEX index_flight_segments_on_airline_icao_code ON flight_segments (airline_icao_code);\nCREATE INDEX index_flight_segments_on_airline_name ON flight_segments (airline_name);\nCREATE INDEX index_flight_segments_on_aircraft_bts_code ON flight_segments (aircraft_bts_code);\nCREATE INDEX index_flight_segments_on_aircraft_description ON flight_segments (aircraft_description);\nCREATE INDEX index_flight_segments_on_year ON flight_segments (year)\n\n"
Class Method Summary
collapse
Instance Method Summary
collapse
extend_mining, extended, registry
Class Method Details
.update_averages! ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/earth/air/flight_segment.rb', line 64
def update_averages!
where('seats > 0').update_all 'load_factor = 1.0 * passengers / seats'
where('passengers > seats AND seats > 0').update_all 'load_factor = 1'
where('(freight + mail + passengers) > 0').update_all 'freight_share = 1.0 * (freight + mail) / (freight + mail + (passengers * 90.718474))'
where('flights > 0').update_all 'seats_per_flight = 1.0 * seats / flights'
end
|
Instance Method Details
#airline ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/earth/air/flight_segment.rb', line 80
def airline
if airline_bts_code
Airline.where(:bts_code => airline_bts_code).first
else
Airline.where(:icao_code => airline_icao_code).first
end
end
|