Flight information API

Publiczne, bez uwierzytelniania Brak danych osobowych

Przegląd

Ten punkt końcowy zwraca publiczne podsumowanie pojedynczego lotu, w tym odnośniki do miniatur wykresów we wszystkich rozmiarach. Wyszukaj lot po jego identyfikatorze w chmurze albo po hashu podpisu, który weryfikator zwraca jako flight_unique_id (ta sama wartość, którą pilot może odczytać z samego pliku dziennika).

To pojedyncze zapytanie indeksowane i nie zwraca żadnych informacji identyfikujących użytkownika: brak konta, numeru seryjnego urządzenia, adresu przesyłania, notatek, obrazów czy współrzędnych startu. Etykieta urządzenia i etykieta zawodnika są dołączane, ponieważ identyfikują wpis, a nie osobę.

Punkt końcowy

GET https://www.altimetercloud.com/po/api/flight_info/ Parametry: id lub hash

Podaj liczbowy id albo hash podpisu. Jeśli podano oba, id ma pierwszeństwo. Zwracane są tylko loty widoczne publicznie.

Parametry

ParametrTypOpis
idintegerLiczbowy identyfikator lotu w chmurze
hashstringHash podpisu lotu (64 lub 128 znaków szesnastkowych), zwracany przez weryfikator lub zapisany w pliku dziennika
sigstringAlias dla hash

Odpowiedź

API zwraca JSON. Podstawowe pola barometryczne są obecne dla każdego lotu. Loty z IMU (Mercury lub Nano w wersji sprzętowej 4 i nowszej) zawierają też obiekt imu z danymi przyspieszenia, orientacji, obrotu, stabilności i podwójnego wyrzutu. Loty Mercury zawierają dodatkowo obiekt mercury z dodatkowymi danymi czujników i otoczenia (zewnętrzna sonda temperatury, bateria, temperatura płytki), które rejestruje tylko ta płytka. Loty wyłącznie barometryczne pomijają bloki IMU i Mercury.

✓ Znaleziono (lot z IMU)
{
  "success": true,
  "flight": {
    "id": 1234,
    "url": "https://www.altimetercloud.com/po/flights/1234/",
    "csv_url": "https://www.altimetercloud.com/po/flightdata/4/1234.csv",
    "device": "nanov1",
    "firmware": "1.52",
    "revision": "4",
    "has_imu": 1,
    "tag": "MY-NANO",
    "competitor_tag": "C-07",
    "uploaddate": "10/06/26-14:22:01",
    "uploadstamp": 1781453721,
    "samples": 3210,
    "sps": 100,
    "apogee": 246.4,
    "apogee_time": 5210,
    "max_velocity": 98.3,
    "max_velocity_down": -12.4,
    "velocity_landing": 4.8,
    "landing_ms": 41800,
    "landing_m": 1.2,
    "flight_time": 41.8,
    "total_time": 44.2,
    "lockouts": 0,
    "not_real_flight": 0,
    "settings": {
      "sealevel": 1013.25,
      "samplerate": 100,
      "recordingstop": 1,
      "oversampling": 1,
      "iirfilter": 0,
      "pressurefilter": 1,
      "startuplock": 0,
      "usetemp": 1,
      "fixedtemp": 15,
      "launchdetect": 1,
      "sampleratio": 1,
      "maintainpower": 0,
      "maxsamples": 0,
      "recording_alt": 0,
      "units": 0,
      "units_velocity": 0,
      "units_acceleration": 0,
      "lockout_time": 0,
      "lockout_change": 0,
      "output_enable": 0,
      "orientation": 0,
      "launchprotection": 1
    },
    "imu": {
      "burnout": 1400,
      "ejection": 5600,
      "max_acceleration": 11.6,
      "acceleration": {
        "max_ascent": 11.6,
        "max_descent": 2.3,
        "max_burn": 11.6,
        "avg_ascent": 4.2,
        "avg_burn": 9.8
      },
      "velocity": {
        "burnout": 96.2,
        "descent": 5.1,
        "up_imu": 96.2,
        "down_imu": -11.8
      },
      "orientation": {
        "launch_pitch": 2,
        "launch_roll": 1,
        "launch_yaw": 0,
        "launch_tilt": 3,
        "max_tilt": 7
      },
      "spin": {
        "max": 540.5,
        "average": 120.2,
        "roll_rate": 33,
        "coning_rate": 4,
        "coning_power": 2
      },
      "stability": {
        "score": 92,
        "launch": 88,
        "coning": 95,
        "straight": 90,
        "confidence": 1,
        "thrust_straight": 97,
        "launch_tilt": 3
      },
      "dual_deploy": {
        "detected": 1,
        "drogue_velocity": 18.2,
        "main_velocity": 6.4,
        "main_altitude": 120.5,
        "main_time": 30200
      }
    },
    "thumbnails": {
      "meters_small": "https://www.altimetercloud.com/po/flightdata/4/1234.webp",
      "meters_large": "https://www.altimetercloud.com/po/flightdata/4/1234_l.webp",
      "feet_small":   "https://www.altimetercloud.com/po/flightdata/4/1234_ft.webp",
      "feet_large":   "https://www.altimetercloud.com/po/flightdata/4/1234_l_ft.webp",
      "miles_small":  "https://www.altimetercloud.com/po/flightdata/4/1234_mi.webp",
      "miles_large":  "https://www.altimetercloud.com/po/flightdata/4/1234_l_mi.webp",
      "km_small":     "https://www.altimetercloud.com/po/flightdata/4/1234_km.webp",
      "km_large":     "https://www.altimetercloud.com/po/flightdata/4/1234_l_km.webp"
    }
  }
}

Lot wyłącznie barometryczny (na przykład Nano poniżej wersji 4) zwraca te same podstawowe pola z has_imu równym 0 i bez bloku imu:

ⓘ Znaleziono (lot barometryczny)
{
  "success": true,
  "flight": {
    "id": 980,
    "device": "nanov1",
    "firmware": "1.52",
    "revision": "2",
    "has_imu": 0,
    "apogee": 312.7,
    "apogee_time": 6120,
    "max_velocity": 104.5,
    "...": "core fields and settings, but no imu block"
  }
}

Jeśli żaden lot publiczny nie pasuje do podanego id lub hasha:

✗ Nie znaleziono
{
  "success": false,
  "error": {
    "code": "404",
    "message": "No public flight found for that id or signature hash"
  }
}

Pola odpowiedzi

Wszystkie pomiary są zwracane w podstawowych jednostkach SI: wysokości w metrach, prędkości w metrach na sekundę, przyspieszenia w g, kąty w stopniach, obrót i tempa w stopniach na sekundę, a czasy w milisekundach, o ile nie zaznaczono inaczej. Strona lotu może je wyświetlać przeliczone na wybrane jednostki, ale API zawsze używa SI.

Podstawowe (każdy lot)

PoleTypOpis
id / urlinteger / stringIdentyfikator lotu w chmurze i jego publiczna strona lotu
csv_urlstringBezpośredni odnośnik do pobrania surowego dziennika CSV
device / firmware / revisionstringModel (nanov1, mercuryv1), wersja oprogramowania, wersja sprzętu
has_imuinteger1, jeśli ten model i wersja mają IMU (Mercury lub Nano w wersji 4+). Określa, czy blok imu jest obecny
tag / competitor_tagstringEtykieta urządzenia i etykieta zawodnika
uploaddate / uploadstampstring / integerTekst daty przesłania i znacznik czasu Unix
samples / spsintegerLiczba zarejestrowanych próbek i próbki na sekundę
apogeefloatMaksymalna wysokość w metrach
apogee_timeintegerCzas apogeum w milisekundach
max_velocity / max_velocity_downfloatMaksymalna prędkość wznoszenia i opadania (m/s), barometryczna
velocity_landingfloatPrędkość przy lądowaniu (m/s)
landing_ms / landing_mnumberCzas lądowania (milisekundy) i wysokość lądowania (metry)
flight_time / total_timefloatCzas trwania nagrania i całkowity czas wraz z fazą przed startem, w sekundach
lockoutsintegerLiczba zdarzeń blokady apogeum
not_real_flightinteger1, jeśli oznaczono jako lot nieautentyczny (na przykład test na stanowisku)
settingsobjectUstawienia nagrywania z nagłówka dziennika (ciśnienie na poziomie morza, częstotliwość próbkowania, filtry, jednostki, blokady, wyjście, orientacja, ochrona przy starcie i więcej)
thumbnailsobjectAdresy URL obrazów wykresów: metry, stopy, mile i kilometry, każdy w rozmiarze małym i dużym

imu (tylko loty z IMU)

Obecne tylko, gdy has_imu wynosi 1. Nieobecne w lotach wyłącznie barometrycznych.

PoleTypOpis
burnout / ejectionintegerCzasy wypalenia silnika i wyrzutu, w milisekundach
max_accelerationfloatMaksymalne przyspieszenie w g
accelerationobjectmax_ascent, max_descent, max_burn, avg_ascent, avg_burn, wszystkie w g
velocityobjectburnout, descent (m/s) oraz up_imu / down_imu, maksymalne prędkości wznoszenia i opadania wyznaczone z IMU (m/s)
orientationobjectlaunch_pitch, launch_roll, launch_yaw, launch_tilt, max_tilt, wszystkie w stopniach
spinobjectmax, average, roll_rate, coning_rate, coning_power, wszystkie w stopniach na sekundę
stabilityobjectscore oraz podoceny launch / coning / straight / thrust_straight (0 do 100), confidence (0 do 1) i launch_tilt (stopnie)
dual_deployobjectdetected (0/1), drogue_velocity / main_velocity (m/s), main_altitude (metry), main_time (milisekundy)

mercury (tylko loty Mercury)

Obecne tylko dla Mercury, który rejestruje dodatkową warstwę czujników i otoczenia, której Nano nie ma. Odczytywane najlepszą metodą z pliku danych lotu, więc starsze oprogramowanie Mercury może zwracać mniej pól, a każde brakujące pole jest po prostu pomijane.

"mercury": {
  "mt1_temp_c": 16,
  "battery_start_pct": 98,
  "battery_end_pct": 95,
  "board_temp_start_c": 13.02,
  "board_temp_end_c": 12.25,
  "recovered": 0
}
PoleTypOpis
mt1_temp_cfloatOdczyt zewnętrznej sondy temperatury MT1 przy starcie, w stopniach Celsjusza
battery_start_pct / battery_end_pctintegerNaładowanie baterii na początku i na końcu lotu, w procentach
board_temp_start_c / board_temp_end_cfloatTemperatura płytki na początku i na końcu lotu, w stopniach Celsjusza
recoveredinteger1, jeśli dziennik został odtworzony z pamięci flash po awarii lub zaniku zasilania, w przeciwnym razie 0

Środowisko testowe API

Wpisz publiczny identyfikator lotu (lub hash podpisu) i kliknij Uruchom, aby pobrać jego podsumowanie.

Identyfikator lotu lub hash podpisu
https://www.altimetercloud.com/po/api/flight_info/