Star Explorer Control System to program napisany w języku Java. Motywacją do napisania go była dla mnie "astronomiczna" strona www.planethunters.org, której celem jest szukanie potencjalnych planet położonych w innych układach słonecznych.

Sposób szukania odległych planet jest niesamowicie ciekawym i pomysłowym zagadnieniem. Żaden teleskop nie jest w stanie dostrzec nawet największej planety spoza naszego układu słonecznego, ze względu na to, że planety nie świecą własnym światłem (w przeciwieństwie do gwiazd). O, i może dlatego, że są niewyobrażalnie małe. Dlatego jedynym dotychczas znanym sposobem na wychwycenie potencjalnego przelotu gwiazdy na tle tarczy danej gwiazdy (tzw. tranzyt planety) jest automatyczne obserwowanie przez dokładny teleskop jasności gwiazdy, wokół której chcielibyśmy znaleźć planetę, i zapisywanie dokładnej wartości jasności zmierzonej gwiazdy.
Jeśli w pewnym okresie czasu jej jasność zmniejszy się może to oznaczać, że gwiazda została zasłonieta przez przelatującą akurat planetę. I uwaga! Odkryliśmy właśnie planetę? Niekoniecznie! Mógł to byś zwykły brud przed obiektywem teleskopu lub chociażby planetoida. Jeśli jednak taka obserwacja potwarza sie cyklicznie np.: co 27.7 dni, to jest to już silny argument za tym, że faktycznie jest to obiekt planetopodobny.

Także trafiłem na stronę planethunters. Bawiłem się w odnajdywanie tych tranzytów przez jakieś dwa dni. Zostałem jednak podrażniony ich stwierdzeniem, że "komputery słabo spisują się w tym zadaniu i, że człowiek radzi sobie lepiej". Postanowiłem zobaczyć, czy naprawdę jest to takie trudne zagadnienie.
NASA nie dała rady. Ja nie dam?!? Ja?!?



Osiem niemal w 100% przepracowanych dni później powstał gotowy program realizujący pewne cele. Celami tymi są:

- automatyczne odnajdywanie tranzytów planet
- wyświetlanie wyników na wykresach wraz z wytłumaczeniem dlaczego program zwrócił taki wynik
- łatwa możliwość zmiany parametrów i szybki podgląd nowego rozwiązania
- próba pogrupowania tranzytów w potencjalne planety i odpowiednie zaprezentowanie tego faktu użytkownikowi


Wierzcie mi. Mógłbym napisać (i w sumie chciałbym!) kilkanaście stron o tym jak działa ten program i dlaczego wybrałem takie, a nie inne rozwiązanie, ale postaram się być maksymalnie zwięzły. Chętnie odpowiem na wszelkie pytania.



Zalety programu:

Zapewniam, że jest to głównie prostota obsługi. Pobrałem sobie dwie aplikacje ze strony Keplera i zapewniam, że moje rozwiązanie jest *bardzo* czytelne i proste do odpalenia. I co najważniejsze- naprawdę działa. Dane: Do programu wprowadzane są dane pobierane ze strony planet hunters, w postaci plików .csv. Plik taki może pobrać każdy pomagający w projekcie.

Działanie:

Moja aplikacja wykorzystuje w głównej mierze odchylenie standardowe pomiarów, liczone lokalnie dla odpowiednio licznych przedziałów. Wykorzystywane jest także uśrednianie danych wejściowych w celu redukcji szumów. Wszystko bazuje na parametrach, każdy z nich ustawiany był przeze mnie ręcznie, przez wiele godzin żmudnej pracy. Następnie wykres funkcji odchylenia standardowego danych także jest odpowiednio uśredniany przez co uzyskiwana jest wartość progu, który mówi o potencjalności wystąpienia tranzytu. Punkty pomiarowe powyżej tej dynamicznie liczonej wartości linii traktowane są jako potencjalny tranzyt. Jeśli jest ich odpowiednio wiele (np.: powyżej 5 lub 10) to program oznacza takie miejsce jako tranzyt (na wykresie oznaczono to kolorem jasnozielonym).

Ciekawostka:

Dla najprostszego przypadku udało mi się odnaleźć wszystkie tranzyty ciała i automatycznie oszacować okres jego obiegu z dokładnością do sześciu promili okresu obiegu.