AllSkyRadar - odwrócony flightradar

Coś dla Spotterów ze skanerkiem oraz radarem SBS.
Awatar użytkownika
spinka
Posty: 45
Rejestracja: 30 maja 2017, 13:07
Lokalizacja: Poznań

06 października 2018, 18:05

AllSkyRadar - pozycje samolotów są nakładane na podgląd nieba z kamery z obiektywem fisheye tzw. kamery AllSky,
w odróżnieniu od wyświetlania pozycji gps nałożonych na mapę.


Ostatnia wersja z historią lotu w formie trail-sów:


Wersja bez dodanych trail-sów, ale ze smugami widocznymi na niebie:
Legenda:
Wielkość czcionki i ilość linii opisu zależna od odległości.
Kolory:
- żółty - poniżej 5000m;
- czerwony - samolot przeleci w odległości nie większej niż X km;
- ciemnoczerwony - samolot przeleciał w odległości nie większej niż X km;
- magenta - samolot przeleci w odległości większej niż X km;
- fiolet - samolot przeleciał w odległości większej niż X km;
Kierunek wskazywany przez "o- - -" - track - kierunek lotu. Ale nie względem układu współrzędnych biegunowych, tylko "normalnie",
dlatego może to dziwnie wyglądać.
Ogonki - historia przelotu, ostatnich 10 pozycji - aktualizowane co 6s.
Punkt z gwiazdką to w ramach debug, pokazuje pierwszą zarejestrowaną pozycję.
Po 60s bez sygnału z reset.

W założeniu chciałem mieć tylko kamerę AllSky do podglądu pokrywy chmur jak jeszcze rok temu robiłem zdjęcia rnav,
ale temat się trochę rozwinął i skomplikował:



Ze względu na to, że mój widok na horyzont jest mocno ograniczony, to od samego początku używałem przeróbkę takiego programu w pythonie, który na bieżąco analizuje dane z dump1090 i oblicza w jakiej odległości będzie przelatywał dany samolot - wysyłając powiadomienie - takie SWO.
Drugą funkcją jest translacja pozycji gps na Alt/Az dla danej lokalizacji.

Output z tego programu odpalałem w konsoli na telefonie podczas robienia zdjęć (lewe górne okienko):
Na powyższym widać np. THA931 w odległości 100km, z informacją że będzie przelatywać 9km ode mnie, jeśli nie zmieni kursu.
A poniżej w momencie gdy przelatywał najbliżej, 2km pomyłki, ale w międzyczasie informacja o odległości w której przeleci była aktualizowana:
Kiedyś znalazłem taki program, który m.in. generuje trajektorie satelitów na układzie współrzędnych biegunowych, za pomocą biblioteki matplotlib w pythonie, korzystając z pozycji Alt/Az jako koordynatów.
Podobnie generowane są mapy nocnego nieba przy użyciu np. biblioteki astroplan:
Tak się składa, że układ współrzędnych biegunowych, całkiem ładnie nakłada się na obraz nieba z kamer typu AllSky.
Obraz z astroplan idealnie nadaje się też, żeby po nałożeniu na zdjęcie nocnego nieba, ustawić kamerę czy parametry do kalibracji położenia wykresu względem zdjęcia (na powyższym wygenerowany wykres jest luźno nałożony na zdjęcie bez kalibracji obrotu, przesunięcia i skalowania).

Szkielet tej części systemu, który wygenerował powyższe filmy wygląda mniej/więcej następująco (pewnie powinienem to rozrysować, ale na razie opis):
1. AllSky czyli Raspberry Pi Zero z kamerą wykonuje zdjęcia co 5s w dzień i co 10s w nocy (dla maksymalnego czasu ekspozycji) i zapisuje je na tmpfs (żeby nie zabić karty SD, zdjęcia z jednej kamery to ok 25GB na dobę);

2. Zdjęcia i dane np. temperatura, wysyłane są na bieżąco po wifi i trafiają na serwer (10 letni laptop z dwurdzeniowym cpu i linuxem daje radę);

3. Na serwerze odbywa się obróbka:

- nałożenie danych tekstowych na zdjęcie (METAR+kierunek wiatru, exif, temperatury, pomiar naświetlenia zdjęcia);
- przeskalowanie do rozsądnego 1080x1080px;
- wygenerowanie png z danymi samolotów wg aktualnych danych;
- nałożenie tego png na zdjęcie za pomocą ImageMagick;
- podmiana aktualnego zdjęcia dla gui/www;
- wpuszczenie końcowego zdjęcia w pipe dla procesu ffmpeg, który czeka w tle,
aby skompresować kolejne zdjęcia do formatu video h264;
To tak w bardzo dużym skrócie.
Siedzę nad tym cyrkiem w wolnych chwilach od roku.
Na początku wystarczało samo raspberry pi z kamerą żeby wyświetlić www z aktualnym zdjęciem.
Drugie rPi do adsb.
Potem doszedł dysk sieciowy z minimalnym shellem żeby mieć jakieś archiwum.

Na chwilę obecną system składa się z:
- trzech rPi Zero (bo kamery są dwie, a trzecia leży z podłączonym donglem i dump1090);
- starego laptopa, z półterowym hdd, jako serwera (mimo obróbki i kompresji w locie dwóch strumieni video nawet się nie grzeje);
- dedykowanego routera wifi;
- dysku sieciowego na ew. archiwum;

Trochę się kombajn rozrósł, ale może uda mi się to z czasem uprościć.
Póki co więcej dorzucam niż upraszczam.
A chcę jeszcze dodać do AllSkyRadar-u np. ISS i Iridium, generowane z TLE w podobnej formie jak samoloty.
Dodać nakładkę z pozycjami samolotów, na obraz drugiej kamery, którą robię zdjęcia horyzontu,
ale ze względu że jest obrotowa, to muszę jakiś system kalibracji wykombinować.
I całkowity odpał, który nie wiem czy ogarnę programowo i matematycznie, coś jak https://transit-finder.com,
ale przewidywanie czy aktualna trasa samolotu ma szansę na przecięcie tarczy Księżyca widocznej z danej pozycji.
Pewnie sporo nauki mnie czeka i pozostanie kwestia poprawności nadawanej pozycji.
Taki pomysł na razie - mam obsesję żeby złapać nocne AFR - już od dawna nie latają na a380, ale fiksacja pozostała.

To wszystko to raczej hydraulika/łączenie różnych rozwiązań niż pisanie od zera, ale jakoś to poskładałem i działa.

Przez wyżej opisane i przygodę z astrofoto, od ponad roku żadnych zdjęć rnav nie zrobiłem... :oops:

Pozdro,
AL
Synta 8" + GSO 2x 2'' ED (1,5x) + D5000
Awatar użytkownika
spinka
Posty: 45
Rejestracja: 30 maja 2017, 13:07
Lokalizacja: Poznań

10 października 2018, 21:21

Obraz z drugiej kamery z pozycjami alt/az samolotów nałożonymi na prostokątny układ współrzędnych:


Takie coś podpatrzyłem kiedyś na screenie z PlanePlottera,
ale nie wiem czy można było tam podpiąć podgląd nieba pod generowane ślady samolotów.

Trochę zniekształcenia obiektywu z polem widzenia 170° psują efekt, ale w wycinku klatki z którego korzystam są do przyjęcia.

Edit:
Jest i AFR188: .
Synta 8" + GSO 2x 2'' ED (1,5x) + D5000
Awatar użytkownika
vader
Administrator
Posty: 2105
Rejestracja: 13 stycznia 2008, 11:33
Obserwuję: niebo :)
Lokalizacja: Kraków
Kontakt:

11 października 2018, 08:08

Przejrzałem w końcu ten temat i jest to bardzo fajna sprawa. Dodatkowo opcja alertów do przelotów, super! Może kiedyś się sam za to zabiorę, na pewno wtedy się skontaktuję :-)
N 10" 'Simon II' + SCT 5", EOS 70D, 12x50, 8.5x32, 2x53
Intek AR-109, PlanePlotter: mo i vo
Obrazek
Awatar użytkownika
spinka
Posty: 45
Rejestracja: 30 maja 2017, 13:07
Lokalizacja: Poznań

11 października 2018, 20:20

Powiadamianie mailowe o zbliżających się lotach które przelecą w pobliżu powinno działać na czystym pythonowym flight-warning Darrena bez dodatkowego dłubania w kodzie i na danych z dump1090. Jak trochę ogarnę swój kod to też go udostępnię, ale byłoby dobrze gdyby udało mi się go zoptymalizować i dawał radę działać na Raspberry Pi3 np. razem z dump1090. Jeszcze trochę krzaków się zdarza, ale podgląd semi-live jest. W bieda-wersji możnaby nakładać dane na statyczne zdjęcie otoczenia, ale to pewnie jest dostępne w planeplotte-rze.

Obecnie opóźnienie tego co widzę w podglądzie w gui do stanu na niebie wynosi 5-15s zanim się zdjęcia z obu kamer przemielą przez całą skryptową obróbkę. Pozycje alt/az w konsoli idą bez tak dużych opóźnień - na początku zastanawiałem się czy dałoby się to wykorzystać do sterowania jakimś montażem azymutalnym typu AZ-EQ6 czy innym GoTo, ale w miarę jak z tego korzystałem przy ręcznym kierowaniu syntą uznałem, że jednak precyzja musiałaby być o wiele większa. Do tego po wstępnym namierzeniu w ten sposób i tak byłby konieczny jakiś guiding żeby montaż podążał za obiektem albo rozsprzęglanie napędu i prowadzenie ręczne. Odpuściłem ten temat, już o cenie zestawu który dałby radę to robić i nadążyć, nie wspominając.

Timelapse z dzisiejszych testów na horyzontalnej kamerze:



Trochę szarpie wyświetlanymi pozycjami, bo dłubałem w międzyczasie. Do kalibracji dorzucam na wykres dodatkowo pozycje planet i gwiazd, tym razem z użyciem pythonowej biblioteki ephem, do najjaśniejszych obiektów wystarcza i jest szybsza niż kobyła astroplan/astroplot.

Napęd obrotu kamery nie jest super i ma spore luzy na zębatkach więc synchronizacja nakładki z obrazem wymaga ręcznej kalibracji po wykonaniu obrotu.
Synta 8" + GSO 2x 2'' ED (1,5x) + D5000
ODPOWIEDZ