Metody komputerowe w astronomii
Przydatne:
Oficjalny tutorial pythona: https://docs.python.org/2/tutorial/
Matplotlib pyplot tutorial: https://matplotlib.org/users/pyplot_tutorial.html
Numpy tutorial: https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
Książki: Python for astronomers, Python 101, "Learning Python" Mark Lutz (jeden egzemplarz w bibiotece)
Konfiguracja eclipse pod pythona: http://www.pydev.org/manual_101_interpreter.html
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Semestr zimowy 2018/2019
(1) 11 pazdziernika 2018:
Lista funkcji wbudowanych pythona: https://www.programiz.com/python-programming/methods/built-in
Podstawowe typy danych pythona
Podstawy instrukcji sterujacych
Podstawy instrukcji logicznych
Zadania:
Silnia liczby calkowitej: Napisz program ktory oblicza silnie dowolnej liczby calkowitej (bez wykorzystania biblioteki numpy i math!). Wydrukuj liczbe i wynik. Podpowiedz: wykorzystaj funkcje wbudowana range(start, stop)
Do przeczytania:
(2) 18 pazdziernika 2017:
Postawowe typy pythona
Podstawy instrukcji sterujacych
Zadania:
Faktoryzacja liczby 123456: Znajdz wszystkie niepowtarzajace sie pary liczb calkowitych ktore wymnozone ze soba dadza 123456 (jest ich 27). Zachowaj wynik w postaci listy, wydrukuj liste na ekran. Podpowiedz: Wykorzystaj funkcje modulo %. Funkcja range(start, stop) moze rowniez zostac wykorzystana.
Liczby pierwsze: Znajdz pierwsze sto liczb pierwszych. Wykorzystaj kod z dwoch poprzednich zadan. Wydrukuj je na ekran.
Do przeczytania:
(3) 25 pazdziernika
Listy składane
Slowniki
Sortowanie
Funkcja lambda
Zadanie:
Histogram slow: Zlicz slowa w Odzie do radosci (angielski tekt zalaczony ponizej). Skopiuj text ody do zmiennej text. Zidentyfikuj i policz ilosc wystapien slow. Ktore slowo wystepuje najczesciej? Wydrukuj liste slow z iloscia ich wystapien w tekscie od najczesciej wystepujacego do najzadziej wystepujacego slowa. Uwaga: w programie nalezy usunac znaki interpunkcyjne i ich nie zliczac. Podpowiedz: Mozna wykoszystac funkcje: .split(), .replace(), .count(), zbiór oraz słownik.
Do przeczytania:
(4) 8 listopada
Kończenie zaległych programów
(5) 15 listopada
Wczytywanie bibliotek i modułów
Podstawy numpy
Podstawy matplotlib
Praca z plikami, wczytywanie danych
Zadanie:
Wczytaj dane z pliku magphase.tab (https://sbnarchive.psi.edu/pds3/non_mission/EAR_A_COMPIL_3_MAGPHASE_V1_0/data/) i wykreśl dane dla planetoidy 20 Massalia (kat fazowy vs. V magnitudo). Do wczytania danych wykorzystaj funkcje z biblioteki numpy, a do wykresu biblioteke matplotlib.
Do Przeczytania:
Numpy podstawy: http://www.scipy-lectures.org/intro/numpy/index.html
Numpy tutorial: http://www.numpy.org/
(6) 22 listopada
Numpy - czesc dalsza
Definiowanie własnych funkcji
Pisanie i wczytywanie własnych modułów
Moduł os
Do przeczytania:
(7) 29 listopada
Zadanie z biblioteki os oraz pyfits - Emil
(8) 6 grudnia
Bledy i wyjatki
Kończenie zadania z poprzednich zajec
Do przeczytania:
(9,10) 13 grudnia
Scipy - dopasowanie funkcji
Scipy reference: https://docs.scipy.org/doc/scipy/reference/
Zadanie:
Użyj modułu scipy do napisania programu dopasowującego funkcję fazową HG do danych fotometrycznych planetoid. Definincja funkcji w publikacji Muinonen et al. 2010. Dane (planetoida do wyboru): https://sbn.psi.edu/pds/resource/magphase.html .
Do przeczytania:
(11) 19 grudnia 15:30
Moduł smtplib oraz email
Formatowanie stringow
Zadanie:
Napisz program ktory wysyla maila z zyczeniami swiatecznymi do osob z listy zawartej w pliku friends.csv.
Zyczenia swiateczne: http://www.ellenbailey.com/poems/ellen_327.htm
Do przeczytania:
(12) 20 grudnia
Konczenie zadania z rozsylaniem maili
27 grudnia - wakacje zimowe
3 stycznia - wakacje zimowe
(13) 10 stycznia
Klasy cz. 1
(14) 17 stycznia
Klasy cz. 2
Zadanie
(15) 24 stycznia
Zadanie
Zaliczenia
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Semestr zimowy 2017/2018
(6) 10 listopada
Definiowanie własnych funkcji
Pisanie i wczytywanie własnych modułów
Moduł os
Zadanie:
Wykorzystując moduł os, na pulpicie stworz katalog o nazwie 2063-Bacchus, a w nim podkatalogi o nazwach od 1 do 692. Następnie wczytaj plik z astrometria planetoidy (2063) Bacchus (załączony poniżej). Stwórz pliki zawierające zwiększająca się liczbę obserwacji astrometrycznych planetoidy (pierwszy plik będzie zawierał jedną obserwacje, drugi dwie, trzeci trzy i tak dalej). Każdy z plików zapisz w odpowiadającym katalogu. Pliki powinny być nazwane według formatu: num_2063.mpc, gdzie num to liczba obserwacji.
Do przeczytania:
(7) Zajęcia przesunięte na 13 listopada - na godz 12:30, piwnica
Kończenie zaległych programów
Zadanie
Na podstawie pliku NEO_JPL.csv i przy uzyciu biblioteki matplotlib wykonaj rysunek na ktorym znajda sie dwa wykresy obok siebie: zaleznosc polosi wielkiej a od mimosrodu e oraz zaleznosc polosi wielkiej a od nachylenia orbity i dla roznych grup NEO (Atira, Amor, Apollo, Aten). Kazda z grup powinna byc zaznaczona innym kolorem, a planetoida od ktorej nazwana jest grupa dodatkowo wyrozniona wiekszym symbolem i podpisana. Rysunek ma posiadac legende. Osie wykresow maja byc opisane razem z jednostkami. Wykres powinien byc zatytulowany.
(8) 24 listopada
Zadanie:
Przy pomocy modułu os w katalogu 2063-Bacchus stwórz katalog o nazwie all. Przekopiuj wszystkie pliki z obserwacjami do tego katalogu. Przy pomocy list składanych stwórz listę plików. Wydrukuj na ekran nazwy plików, ilość obserwacji w każdym z plików oraz rozmiar pliku. Wszystko musi byc zrobione "z pod" kodu pythona.
Bledy i wyjatki
Do przeczytania:
(9) 1 grudnia
Moduł smtplib oraz email
Formatowanie stringow
Zadanie:
Napisz program ktory wysyla maila z zyczeniami swiatecznymi do osob z listy zawartej w pliku fiends.csv.
Zyczenia swiateczne: http://www.ellenbailey.com/poems/ellen_327.htm
Do przeczytania:
(10) 8 grudnia
Wstęp do programowania obiektowego
Klasy i obiekty
Atrybuty, metody zwykłe, metody klas, metody statyczne
Do przeczytania:
Zadanie: Gra w oczko
(11) 15 grudnia
Klasy - czesc 2
Dziedziczenie, dziedziczenie wielokrotne
Do przeczytania:
Zadanie: Gra w oczko
(12) 12 stycznia
Scipy - dopasowanie funkcji
Scipy reference: https://docs.scipy.org/doc/scipy/reference/
Zadanie:
Użyj modułu scipy do napisania programu dopasowującego funkcję fazową HG do danych fotometrycznych planetoid. Definincja funkcji w publikacji Muinonen et al. 2010. Dane (planetoida do wyboru): https://sbn.psi.edu/pds/resource/magphase.html .
Do przeczytania:
(13) 19 stycznia
Konczenie zaległych programów z klasami i Scipy
(14) 26 stycznia
Wstęp do modułu threading/thread
Do przeczytania:
Rozdział 21 (Python 101)
Zadanie:
Napisz program który przy pomocy osobnych wątków dla planetoid z listy NEO (plik selected_NEO2.txt załączony poniżej) ściągnie ich efemerydy i sprawdzi obserwowalność planetoid dla teleskopu w obserwatorium w Calar Alto (kod obserwatorium: 493) z krokiem 5 min w zakresie dat podanych w pliku selected_NEO.txt. Do ściągania efemeryd użyj modułu callhorizons. Zapisz sciagniete efemerydy dla kazdej planetoidy pod nazwa: nazwa_planetoidy.ephem. Kryteria obserwowalnosci: Jasnosc widoma < 15 mag, wysokosc nad horyzontem > 30 stopni, odleglosc od Ksiezyca > 20 stopni, Szerokosc Galaktyczna > 20 stopni. Zapisz zakresy dat obserwowalnosci dla kazdej planetoid.
#Ephemeris Type [change] : OBSERVER
#Target Body [change] : Asteroid name
#Observer Location [change] : Calar Alro or SAAO
#Time Span [change] : Start=take from file, Stop=take from file, Step=5 m
#Table Settings [change] : QUANTITIES=1,3,4,9,20,23-25,33
#Display/Output [change] : download/save (plain text file)
(15) 2 luty
Zaliczenia