Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
Do czego jeszcze może służyć Python? Na przykład do obserwacji czarnych dziur

Do czego jeszcze może służyć Python? Na przykład do obserwacji czarnych dziur

Opublikowano  przez Marek Zoellner

Znajduje się w odległości 27 tysięcy lat świetlnych od Ziemi, a jej masa jest 4 miliony razy większa od masy naszego Słońca. Skąd o niej wiemy? Między innymi dzięki wykorzystaniu Pythona.

To oczywiście bardzo duże uproszczenie, ale zarazem i fakt. Wykorzystywanie języków programowania w nauce nie jest niczym dziwnym, a Python jest do tego celu wręcz idealny. Do obserwacji kosmosu wykorzystywane są m.in. takie biblioteki jak NumPy, SciPy czy pakiety typu Astropy przeznaczone dla astronomii. Python to również język bardzo przydatny w pracy ogromnych teleskopów, dzięki którym otrzymujemy coraz więcej zapierających dech w piersiach obrazów z odległych zakątków wszechświata.

Wspomniana na początku supermasywna czarna dziura Sagittarius A* (Sgr A*) znajduje się w centrum Drogi Mlecznej, a my wraz z całą Ziemią, Słońcem i wszystkim, co znajduje się w naszym najbliższym wszechświecie, krążymy wokół niej i podobno jesteśmy przez nią wciągani. Na szczęście skala jest kosmiczna i zarówno odległości jak i czas nie mają tutaj specjalnie żadnego znaczenia dla naszego codziennego życia. Jeśli zatem chcesz się wciągnąć w naukę programowania, spokojnie zdążysz to zrobić, nim wciągnie Cię czarna dziura.

Teleskop Horyzontu Zdarzeń

Sprawa jest niezwykle ciekawa nawet dla totalnych laików. Nie trzeba się przecież specjalnie emocjonować pracą ośrodków badających kosmos, żeby zachwycić się nowymi zdjęciami przesłanymi przez Teleskop Hubble'a. Jednak podczas gdy otrzymujemy od niego kolejne porcje danych, w tym samym czasie na Ziemi działa Teleskop Horyzontu Zdarzeń (ang. Event Horizon Telescope - EHT). To tak naprawdę sieć szeregu radioteleskopów działających w różnych miejscach świata. Ich zadaniem jest badanie przestrzeni kosmicznej znajdującej się w bezpośrednim sąsiedztwie dwóch czarnych dziur (M87* i wspomnianego Sgr A*).

Jednym z ostatnich dokonań jest tu odkrycie polskiego zespołu pracującego pod kierownictwem dr Macieja Wielgusa z Instytutu Radioastronomii Maxa Plancka w Bonn. Otóż zaobserwowali oni obiekt, który ma być gazową kulą, która krąży wokół Sgr A* z prędkością 30% prędkości światła.

Jeden z wywiadów z dr. Wielgusem można przeczytać tutaj:

A co z tym wszystkim ma wspólnego Python? Bardzo dużo. Wystarczy bowiem zajrzeć na GitHuba EHT, czyli sieci tworzącej Teleskop Horyzontu Zdarzeń, żeby się przekonać, jak ważną rolę (m.in. obok Shella) odgrywa ten język.

Kalibracja, korekta i obrazowanie danych zebranych przez radioteleskopy, a także obrazowanie czarnych dziur - to wszystko dzięki Pythonowi. A najciekawsze jest to, że kosmiczne pakiety pythonowe ewoluowały do tego stopnia, by można było je pobierać i obrabiać samodzielnie w domu. Portal www.eso.org udostępnia pełen zestaw danych dla dowolnej z pobliskich gwiazd, które mają dyski egzoplanet lub protogwiazd.

“To fantastyczny i ekscytujący projekt dla każdego Pythonisty. Możesz zredukować te dane i uwidocznić planety lub dyski, które są głęboko ukryte (...)”

Taką zachętę wraz z instrukcją obsługi można znaleźć w jednym z artykułów. Autorzy dodają też:

“Bądź cierpliwy. Zrozumienie formatu danych i sposobu obsługi może trochę potrwać. Wykonanie niektórych wykresów i histogramów danych pikseli może pomóc w ich zrozumieniu. Warto być wytrwałym!”

I co Ty na to? Brzmi jak żart? Dla wielu osób sama nauka programowania wydaje się czymś kosmicznie nieosiągalnym, a co dopiero wykorzystywanie kodu w poglądaniu czarnych dziur, ale…

…ale przecież to nie jest kolejna część “Interstellar”, a w ośrodkach badawczych pracują ludzie, którzy kiedyś też musieli się tego wszystkiego nauczyć. Może więc zamiast zastanawiać się, czego się nie da zrobić, pomyślisz o tym, co jesteś w stanie osiągnąć? Może właśnie dziś jest ten moment, żeby zrobić ten pierwszy krok?

Do czego jeszcze można wykorzystywać Pythona?

Do czego służy Python? Gdzie i w jakim celu można go wykorzystywać? Oczywiście astronomia to tylko jedna z bardzo wielu możliwości. Poniżej dodaliśmy kilka innych:

  • Statystyka – Python to jeden z najczęściej wymaganych języków na stanowiska Data Scientist
  • Uczenie maszynowe i AI – tematy ściśle związane z przetwarzaniem ogromnych ilości danych, ponoć Python jest przyszłością Machine Learningu
  • Cybersecurity - ethical hacking, testy penetracyjne, analizy systemów bezpieczeństwa, a także rozwój oprogramowania, to zadania, które możesz wykonywać z Pythonem jako spec od bezpieczeństwa
  • IoT – znany również jako Internet rzeczy, inteligentne domy. Właściwie, dlaczego samodzielnie nie sprawić sobie kilku gadżetów w domu lub pracować przy tym zawodowo?
  • Marketing – wyciąganie i analiza informacji o użytkownikach z danych własnych czy za pomocą API Facebooka, Google, Twittera, lepsze targetowanie reklamy
  • Nauka – obróbka danych zarówno na poziomie matematycznym, statystycznym, wyciąganie części informatywnych z wyników eksperymentów laboratoryjnych, z dziedziny genomiki, chemii, geoinformacji itp.
  • QA – testowanie oprogramowania, testy automatyczne, debugowanie, wszędzie gdzie można z lenistwa napisać kod, który robi testy za testera
  • Web development – backend bardziej wydajny niż popularny PHP do tego przyspieszające pracę frameworki np. Django czy Flask

Python jest świetnym narzędziem jeżeli chodzi o automatyzację. Początkowo bardzo często był traktowany jako alternatywa dla Shell’a w roli języka skryptowego do automatyzacji. Pomimo, iż język od tego czasu bardzo ewoluował i zyskał wiele innych możliwości, nadal jest to dobry wybór dla osób chcących zautomatyzować pewne czynności. Warto też podkreślić, że Python przoduje w obszarze analizy danych. Chodzi tu zarówno programowanie naukowe, jak i uczenie maszynowe.

Ze względu na niski próg wejścia język ten stał się świetnym narzędziem dla osób bez wykształcenia typowo technicznego, takich jak matematycy, fizycy czy analitycy. Dostępnych jest wiele bibliotek przeznaczonych do uczenia maszynowego jak np. wspierany przez Google Tensorflow, scikit-learn czy PyTorch. Wszystkie te wysokopoziomowe narzędzia pozwalają programistom w prosty i szybki sposób tworzyć rozwiązania oparte na uczeniu maszynowym.

Umów się na rozmowę z doradcą Kodilli