Comments 37
У меня в свое время выработались, дополнительно к указанным Вами, следующие критерии различения самолетов:
1) Boeing vs Airbus: у Airbus встречается характерная законцовка крыла в форме «стрелочки». Если видишь ее — то перед тобой точно Airbus.
2) Boeing-737: имеет характерно приплюснутые снизу воздухозаборники двигателей, в отличие от Airbus, у которого воздухозаборники всегда круглые.
3) Boeing-777: самая задняя точка фюзеляжа заострена, как бы заточена с двух сторон по горизонтали. Выхлоп APU идет слегка вбок. На остальных самолетах в задней точке размещается выхлоп APU, и поэтому «законцовка» не такая острая.
4) При размещении двигателей не под крыльями, а в хвостовой части самолета. Тут тоже есть несколько критериев различения. Например, Canadair Regional Jet — маленький, с двигателями в хвосте. Ну а еще такую компоновку имеет Ту-154. Разве они уже не летают из Шереметьево?
1) Boeing vs Airbus: у Airbus встречается характерная законцовка крыла в форме «стрелочки». Если видишь ее — то перед тобой точно Airbus.
2) Boeing-737: имеет характерно приплюснутые снизу воздухозаборники двигателей, в отличие от Airbus, у которого воздухозаборники всегда круглые.
3) Boeing-777: самая задняя точка фюзеляжа заострена, как бы заточена с двух сторон по горизонтали. Выхлоп APU идет слегка вбок. На остальных самолетах в задней точке размещается выхлоп APU, и поэтому «законцовка» не такая острая.
4) При размещении двигателей не под крыльями, а в хвостовой части самолета. Тут тоже есть несколько критериев различения. Например, Canadair Regional Jet — маленький, с двигателями в хвосте. Ну а еще такую компоновку имеет Ту-154. Разве они уже не летают из Шереметьево?
def getProperty(status, propertyNames): # Cохраняем все содержимое status property = status # Пытаемся найти нужный ключ try: # Перебираем каждый ключ из propertyNames for propertyName in propertyNames: # Отсекаем ненужное property = property[propertyName] # Нужный ключ найден! return property except # А если нет, то возвращаем заглушку return "---"
1) Except всегда должен быть не глобальным, а подходящим к одной конкретной ошибке, дабы избежать скрытых ошибок, которые вы не ожидали. В Вашем случае должен быть except KeyError: Shit реально happens.
2)
# Cохраняем все содержимое status property = status
А зачем, собственно? Локальная переменная status не изменится за пределами функции, даже если в функции вы
3) И так, для себя — можно объяснить значение этой функции? Что она реально делает? Почему нельзя было написать:
try:
dateLocal = data['operationalTimes']['actualGateDeparture']['dateLocal']
except:
dateLocal = '---'
или что-то в этом роде?
Простите, а отечественные типы самолетов вообще не рассматриваются?
Такой футбол нам обиден.
Такой футбол нам обиден.
Ну почему не рассматриваю? Их просто нет в классификации.
Равно как и самолетов марки Embraer, ATR, Bombardier. И не потому что я к ним плохо отношусь, просто они редко встречаются.
Однако, как Вы можете заметить, в коде есть
А вообще, если кода не касаться, то лично я, когда выезжаю фотографировать, считаю, что выезд удался, если я смог сфотографировать хотя бы один отечественный самолет.
Равно как и самолетов марки Embraer, ATR, Bombardier. И не потому что я к ним плохо отношусь, просто они редко встречаются.
Однако, как Вы можете заметить, в коде есть
interestingEquipments = ["SU9"] # Sukhoi Superjet 100
.А вообще, если кода не касаться, то лично я, когда выезжаю фотографировать, считаю, что выезд удался, если я смог сфотографировать хотя бы один отечественный самолет.
«Учимся различать типы самолетов»: ни одного отечественного типа на схеме. С учетом Вашего комментария выше, схема не удалась.
Нужно обязательно добавить сюда Тушки, Илы, Яки и т.д., пока отечественная авиация еще летает.
Нужно обязательно добавить сюда Тушки, Илы, Яки и т.д., пока отечественная авиация еще летает.
По поводу «схемки». Я бы вот что заметил: 737 и 32х проще всего различать по килю: у 737 перед основным килем своеобразный «гаргрот», которого нет ни на одном 32х. Насчет 757 и 767 — 757 визуально меньше, его с убранным шасси легче спутать с 321, а 767 как раз легче спутать с 330.
Давно была идея следить за расписанием авиарейса и подписываться на изменения в нем (по смс или звонком).
Местный аэропорт не всегда считает нужным уведомлять об отмене/переносе рейса.
Насколько точные данные выдает flightstats.com?
Местный аэропорт не всегда считает нужным уведомлять об отмене/переносе рейса.
Насколько точные данные выдает flightstats.com?
Кроме говнокода, хотелось бы отметить такие замечательные критерии оценки самолетов, как «острый нос и толстый фюзеляж». Вы сами-то попробуете отличить самолеты по такому критерию без сравнения, когда видете один самолет в небе?
P.S. И причем здесь DIY… Хотя с другой стороны, по уровню дилетанства в самый раз и туда тоже :)
P.S. И причем здесь DIY… Хотя с другой стороны, по уровню дилетанства в самый раз и туда тоже :)
Ой спасибо, как раз думал как бы а380 на взлете словить.
Делал интеграцию с Flighstats, вполне себе вменяемый API, правда иногда отвечает не быстро.
Кстати, вот цены на их API:
developer.flightstats.com/getting-started/pricing
Кстати, вот цены на их API:
developer.flightstats.com/getting-started/pricing
а погода там точная, от каждого аэропорта?
можете для пулково один запрос по погоде сделать, если не трудно?)
можете для пулково один запрос по погоде сделать, если не трудно?)
Иногда, конечно, бывают задержки.
Погода в Пулково
{
"request": {
"url": "https://api.flightstats.com/flex/weather/rest/v1/json/metar/ULLI",
"airport": {
"requestedCode": "ULLI",
"fsCode": "LED"
},
"codeType": {}
},
"metar": {
"report": "ULLI 081130Z 00000MPS 9999 -SN SCT010 OVC018 M03/M04 Q1008 60590336 10////// NOSIG",
"reportTime": "2013-12-08T11:30:00.000Z",
"weatherStationIcao": "ULLI",
"tags": [
{
"key": "Precipitation",
"value": "2"
},
{
"key": "Freezing",
"value": "4"
},
{
"key": "Instrumentation",
"value": "MVFR"
},
{
"key": "Prevailing Conditions",
"value": "Snow"
}
],
"conditions": {
"wind": {
"direction": 0,
"directionIsVariable": false,
"speedKnots": "0.00"
},
"visibility": {
"miles": "6.21",
"lessThan": false,
"cavok": false
},
"weatherConditions": [
{
"phenomenon": "Snow",
"intensity": "Light"
}
],
"skyConditions": [
{
"coverage": "Scattered clouds",
"base": 1000
},
{
"coverage": "Overcast",
"base": 1800
}
],
"pressureInchesHg": "29.77"
},
"temperatureCelsius": "-3.00",
"dewPointCelsius": "-4.00",
"runwayVisualRanges": [],
"obscurations": [],
"noSignificantChange": true
},
"appendix": {
"airports": [
{
"fs": "LED",
"iata": "LED",
"icao": "ULLI",
"name": "Pulkovo Airport",
"city": "Saint Petersburg",
"cityCode": "LED",
"countryCode": "RU",
"countryName": "Russian Federation",
"regionName": "Europe",
"timeZoneRegionName": "Europe/Moscow",
"localTime": "2013-12-08T16:14:21.111",
"utcOffsetHours": 4,
"latitude": 59.806085,
"longitude": 30.3083,
"elevationFeet": 79,
"classification": 2,
"active": true,
"delayIndexUrl": "https://api.flightstats.com/flex/delayindex/rest/v1/json/airports/LED?codeType=fs"
}
]
}
}
russianplanes.net/rasp/?place=SVO&date=2013.12.09
сделано шесть лет назад
сделано шесть лет назад
Спасибо за обзор этого API! Как-то раньше не догадывался, что есть такая хорошая и открытая возможность получать данные по авиарейсам. Теперь можно отключить древнюю парсилку табло аэропортов.
P.S. жить в 20 минутах от шереметьево — это жить в самом шереметьево. Ну или вести глубокую ночную жизнь ;)
P.S. жить в 20 минутах от шереметьево — это жить в самом шереметьево. Ну или вести глубокую ночную жизнь ;)
Если приобрести SDR приёмник то на частоте 1090 МГц можно принимать сигналы прилетающих самолётов.
А кто подскажет, к этому апи можно подцепиться и получать инфу о самолётах в воздухе для нужной зоны в реальном времени?
Для контроля зоны, где летают авиамоделисты, свободна ли она.
Sign up to leave a comment.
Flightstats API: Пишем свое табло прилетов с Боингами и Аэробусами