Mapy konturowe w AIPSie

Transkrypt

Mapy konturowe w AIPSie
Mapy konturowe w AIPSie
Błażej Nikiel-Wroczyński, OA UJ, 15.04.2015
Krok minus pierwszy: co dostajemy do rąk ●
●
Potężny program do obróbki danych
W zasadzie pozwala na opracowanie danych z dowolnego interferometru – od VLA, dla którego powstał, po LOFARa (da się, ale to trochę nieprzyjemne)
●
„absolutny brak gwarancji”
●
Napisany w FORTRANie w wersji przedpotopowej, rekompilowany do F77
●
Wewnętrzny język skryptowania i komunikacji – POPSYM (jeszcze gorszy od FORTRANa)
●
Specyficzny humor (proszę obejrzeć polecenie stalin)
●
●
Wymaga bibliotek starszych, niż niektórzy obecni na sali – na tę chwilę nikt tego już nie skompiluje na domowym systemie (może na slackware, albo LFS – kto tego jeszcze używa?).
Metoda WYGIWYD – what you get is what you deserve (za http://www.star.bris.ac.uk/mark/AIPS.html). AIPS prawie zawsze działa poprawnie, po prostu nie zawsze wiemy, czego od niego chcemy (a raczej: co myślimy, że uruchamiamy)
Krok zerowy: kilka podstawowych rzeczy związanych z AIPSem
●
Podstawowe rodzaje poleceń: task i verb. Te pierwsze wymagają użycia polecenia go do uruchomienia, te drugie – nie. Istnieją jeszcze pseudoverb (polecenie służące do operacji na innym poleceniu, np. inp), oraz adverb – parametry.
●
Uruchamiamy najczęściej pisząc aips tv=local w terminalu
●
Zamykamy poleceniem kleenex.
●
Zapis 'nazwa' AIPS interpretuje jako wielkie litery. Małe litery uzyskuje się pisząc 'nazwa.
●
●
inp nazwa_polecenia wyświetla aktualne wartości wejściowe danego polecenia. Zawsze należy użyć inp przed uruchomieniem polecenia.
task 'nazwa_polecenia' powoduje „wejście” do polecenia: można teraz używać wszystkich pseudoverb bez podawania nazwy polecenia, aby je doń zastosować. Ponieważ jest to adverb, trzeba podać nazwę polecenia w nawiasach
●
tget nazwa _ polecenia powoduje „wejście” do polecenia z zapamiętanymi poprzednimi wartościami wejściowymi.
●
default nazwa_polecenia powoduje „wejście” do polecenia z ustawionymi domyślnymi wartościami wejściowymi.
●
Polecenie mc pokazuje listę wszystkich plików. ●
Polecenie getn numer_pliku wybiera dany plik.
●
Polecenie imh pokazuje nagłówek pliku – informacje o geometrii, tablicach rozszerzeń i słowach kluczowych.
●
Polecenie prthi pokazuje historię zmian danego pliku.
●
go nazwa _ polecenia uruchamia aktualnie wywołane polecenie.
●
apropos słowo powoduje wyszukanie wszystkich poleceń, które zawierają w opisie słowo ●
help nazwa _ polecenia wyświetla podstawowe informacje o danym poleceniu
●
explain nazwa _ polecenia wyświetla szczegółowe informacje o danym poleceniu
Krok zerowy
●
●
AIPSTV – okno graficzne
MSGSRV – terminal wyświetlający komunikaty programu. Jeśli zostanie zamknięty, jego funkcje przejmie główne okno tekstowe
●
TEKSRV – terminal graficzny Tektronix, służy do pracy z przekrojami i profilami
●
Główne okienko tekstowe służy do wpisywania poleceń, również i część wyników jest tam wyświetlana.
Krok pierwszy: wybór map optycznych
●
●
●
Potrzebne są kolory najbardziej zbliżone do RGB; w systemie Johnsona wybieramy filtry B,V i R
Dla danych z przeglądu SDSS sytuacja jest gorsza: pasma g' i r' odpowiadają pasmom B i R, ale brakuje pośredniego. Można „przesunąć” pasma (użyć np. g', r' i i'), lub użyć uśrednionej mapy
Oczywiście, możliwe jest tworzenie dowolnych kombinacji (pseudokolory). Można również „łączyć” mapy optyczne i np. radiowe w obrębie każdego z kanałów R,G,B – przydaje się to np. do wizualizacji dżetów w aktywnych galaktykach.
Krok pierwszy
●
●
●
Dobre, darmowe mapy można znaleźć przy pomocy NASA Extragalactic Database (NED): http://ned.ipac.caltech.edu
Po wyszukaniu interesującego nas obiektu wybieramy odnośnik images
Wybrane mapy (pliki FITS) ściągamy na dysk
Krok pierwszy
●
Zanim załadujemy pliki do AIPSa, sprawdzamy, czy mapy nie są uszkodzone/niekompletne/źle skwantowane
●
Przydatne narzędzie: Aladin (http://aladin.u­strasbg.fr/)
●
Należy załadować wszystkie mapy i wybrać opcję rgb
Krok pierwszy
●
●
●
●
Załadować pliki można np. przy użyciu polecenia imlod
Zarówno nazwa (outname), jak i klasa (outclass) dla każdego z trzech filtrów powinna być taka sama. Jest to konieczne ze względu na kolejne kroki. Pliki powinny różnić się tylko numerem w sekwencji (outseq).
Ścieżkę do pliku wejsciowego (datain) można podać na trzy sposoby:
–
Uruchomić AIPSa w katalogu, gdzie znajdują się pliki, wtedy datain = ':nazwa_pliku
–
Umieścić plik w katalogu /home/aips/FITS; wtedy datain = 'nazwa_pliku (bez dwukropka)
–
Podać pełną ścieżkę do pliku – plik może się wtedy znajdować gdziekolwiek.
Jeśli wszystko odbyło się poprawnie, to MSGSRV wypisze podstawowe informacje o załadowanej mapie.
Krok drugi: obejrzenie załadowanych plików
●
●
Polecenie tvlo ładuje mapę na ekran TVSRV.
Polecenie tvall ładuje mapę i pozwala na drobne „podkręcenie” tego, co jest wyświetlane.
●
Polecenie tvla ładuje ramkę ze współrzędnymi.
●
Polecenie tvini reinicjalizuje (czyści) TVSRV.
●
●
●
Parametr pixra wartość1 wartość2 pozwala na wyświetlenie tylko tych obszarów, których sygnał leży między zadanymi wartościami
Polecenie curv pokazuje wartość sygnału w pikselu, na którym jest kursor Parametry txinc wartość i tyinc wartość pozwalają na ustalenie, co który piksel ma być wyświetlany (czyli ile razy pomniejszyć obraz)
Krok drugi
●
●
●
●
Na tym etapie możemy już podejrzeć mapę trójkolorową – przy pomocy tvrgb
Mapy z każdego z kanałów należy załadować jako odpowiednie pliki wejściowe. Kolejność to R,G,B – czyli R,V,B dla map w filtrach Johnsona
Pierwszą mapę ładujemy pisząc getn numer_pliku. Kolejne można załadować poleceniami get2n i get3n. Usunięcie informacji o danej mapie z polecenia wymaga użycia polecenia clr (odpowiednio – clr2, clr3).
Najprawdopodobniej mapa będzie do niczego – ma źle ustawione poziomy zerowe i nieustawiony zakres wyświetlanych wartości.
Krok trzeci: ustalenie rzeczywistego poziomu zerowego
●
●
●
●
●
Teoretycznie w „pustych” miejscach nie powinno być żadnego sygnału – nic nie świeci
Szum własny odbiornika, zakłócenia, niedokończona kalibracja itp. mogą spowodować, że w pustych miejscach pojawi się sygnał – nie mający jednak realnego odpowiednika
Ustawiając pixra możemy wybrać taki zakres sygnału, przy którym „puste” miejsca nie są wyświetlane
Druga liczba w pixra pozwala na „przepalenie” obszarów, gdzie sygnał przekracza pewną wartość
Staramy się dobrać najlepsze „na oko” wartości. Lepiej ustawić minimum dość wysoko, a maksimum nisko – tak, by następny krok było łatwiej wykonać
Krok trzeci
●
●
●
●
Polecenie tvstat wyświetla informacje o sygnale w wybranym obszarze mapy
Interesuje nas średnia wartość sygnału w „pustym” miejscu
Jeśli dobrze „wyczuliśmy” pierwszą liczbę w pixra, to będzie ona zbliżona do średniej wartości w miejscach pustych.
Ślad po pomiarze usuwamy poleceniem grcl.
●
AIPS 1: >>>>>>>>>>>>> Begin setting region number 1
●
AIPS 1: Press button A to set intermediate vertex
●
AIPS 1: Press buttons B, C, or D to set final vertex
●
AIPS 1: C => then reset a vertex, D => then exit
AIPS 1: Mean= 4.608E+00 rms= 1.860E-01
pixels
over
●
AIPS 1: Maximum= 1.2653E+01 at
1
●
AIPS 1: Skypos: RA 12 30 43.36063 DEC 41 40 42.6211
●
AIPS 1: Minimum= 3.9065E+00 at
●
AIPS 1: Skypos: RA 12 30 41.98361 DEC 41 41 16.6425
●
271
312
608
699
1
33475.
1
1
1
1
1
1
1
1
Krok czwarty: przesunięcie skali
●
●
●
●
●
●
●
●
Do operacji matematycznych na pojedynczej mapie służy polecenie maths.
Parametr opcode pozwala na wybór operacji. Dozwolone są m.in. logarytmy, funkcje trygonometryczne i odwrotne do nich, przekształcenia wielomianowe
Przesunięcie uzyskuje się przy pomocy operacji 'poly' – wielomianu. Poszczególne współczynniki podaje się przy pomocy parametru cparm.
Polecenie spowoduje utworzenie mapy wyjściowej podług następującego przepisu: OUT = C(1) + C(2)*IN + C(3)*IN*IN + C(4)*IN*IN*IN
Parametry można ustawiać pojedynczo – cparm(i) = wartość – albo podać ich listę: cparm = wartość1, wartość2 …
Jeśli chcemy przesunąć poziom mapy „w dół”, trzeba użyć ustawić cparm = – poziom zerowy, 1, 0
Listy parametrów liczbowych zawsze kończymy zerem – w niektórych poleceniach aips wypełnia pozostałe miejsca tą samą wartością
Jeśli wszystko poszło dobrze, to teraz załadowanie (tvlo) nowych map z ustawionym pixra 0 wartość2 powinno pokazać nam mapy z naprawdę pustymi miejscami.
Krok piąty: usunięcie obszarów, które nie zawierają realnego sygnału
●
●
●
●
●
Sygnał poniżej zera nie jest do niczego potrzebny – może co najwyżej przeszkodzić
Wszystkim punktom, które mają niepoprawne wartości można nadać nowe, albo całkowicie je zasłonić. Służy do tego polecenie blank.
Podobnie jak i maths, blank posiada wiele różnych opcji zasłaniania. W tym przypadku potrzebna jest 'selc' – zasłanianie obszarów, w których sygnał nie leży w przedziale wyznaczonym przez parametry dparm(3) (ograniczenie górne) i dparm(4) (dolne).
Obszary można przesłaniać, albo przypisywać im inne wartości. Domyślne jest przesłanianie. Drugą opcję można uruchomić sutawiając dparm(5) = 1. Pożądaną wartość podajemy jako dparm(6).
Nowy zestaw plików można załadować do tvrgb. Jest szansa, że teraz mapy będą już wyglądać ok. Jeśli nie, warto spróbować ustawić zajresy wyświetlanego sygnału: pixra dla kanału czerwonego, dparm(1) i dparm(2) dla kanału zielonego oraz dparm(3) i dparm(4) dla kanału niebieskiego.
Krok szósty, opcjonalny: obcięcie górne
●
●
●
Jeśli zachodzi potrzeba obcięcia górnego, można użyć polecenia imclp.
To polecenie nie ma wielu zmienialnych wartości: tak naprawdę wystarczy ustawić pixra
Trzy obcięte obrazki powinny wystarczyć do stworzenia dobrze wyglądającej mapy trójkolorowej.
Krok siódmy: stworzenie jednego pliku z trzech
●
●
●
●
Jeśli chcemy użyć trójkolorowego tła, konieczne jest stworzenie osobnego pliku, będącego gotowym obrazem RGB
Pierwszym etapem jest stworzenie „kostki” z końcowymi obrazami z filtrów R,V i B. Służy do tego polecenie mcub.
mcub łączy trzy obrazy w jeden, który ma dodatkową oś sekwencji; poszczególne mapy są rozpoznawane jako „punkty”na tej osi
To polecenie wymaga podania trzech parametrów: inseq to numer w sekwencji pierwszego pliku, in2seq – ostatniego, a in3seq to krok w sekwencji (czyli co który plik ma być brany).
●
Dla ustawienia RBV wybieramy inseq 1, in2seq 3 i in3seq 1.
●
Dla ustawienia BRV wybieramy inseq 3, in2seq 1 i in3seq ­1.
●
●
●
Dodatkowo, należy ustalić długość „osi sekwencji”, czyli ile plików chcemy mieć w „kostce”. Wystarczą 3, czyli ustawiamy npoints = 3.
Nowo powstałą „kostkę” trzeba spłaszczyć: polecenie rgbmp tworzy trójkolorowy obraz używając danych z trzeciej osi załadowanej mapy. Wynikiem działania rgbmp jest pojedyncza mapa RGB, którą można podejrzeć w tvrgb. Tym razem należy załadować tyko pierwszy plik.
Krok ósmy: mapa konturowa
●
●
●
●
AIPS pozwala na nałożenie konturów emisji – np. radiowej – na mapę optycz­
ną. Oczywiście z punktu programu nie ma znaczenia, co nakłada się na co, można zrobić w odwrotny sposób,albo nałożyć kontury z mapy w tle na nią samą.
Spróbujemy nałożyć kontury emisji ra­
diowej na obraz optyczny
Użyjemy danych w formacie FITS z przeglądu NVSS. Są one dostępne przez bazę NED.
Oczywiście mapę radiową trzeba zała­
dować do AIPSa, tak jak i optyczne.
Krok dziewiąty: dostosowanie geometrii
●
●
●
●
●
●
Obrazy z różnych teleskopów będą miały różną geometrię: trzeba dopasować jeden do drugiego
Najpierw należy sprawdzić, na którą epokę ustawione są współrzędne. Zmiany dokonuje się przy pomocy polecenia eposwtch.
Następnie trzeba porównać rozmiar map i pozycję punktu odniesienia.
Jeśli którakolwiek z informacji dot. osi RA i DEC się różni, konieczne będzie dostosowanie geometrii. Służy do tego polecenie hgeom.
getn ładuje mapę, której geometrię chcemy zmienić. get2n ładuje mapę, do której chcemy ją dostosować. Zazwyczaj mapy optyczne zawierają obszar, który nas interesuje i to do nich obcinamy mapę radiową.
Krok dziesiąty – testujemy kontury
●
●
●
●
●
Zanim stworzymy wyjściową mapę, możemy sprawdzić, jakie parametry powinny mieć kontury
Teoretycznie można to zrobić już korzystając z fi­
nalnego polecenia kntr, ale czasami lepiej prze­
prowadzić testy bez tła. Dodatkowo, kntr ma ograniczony rozmiar okna TV
Do testów używamy polecenia cntr
Zanim skorzystamy z cntr, mierzymy poziom szumu na mapie radiowej – poleceniem tvstat, jak poprzednio. Szum (rms noise) informuje o jakości mapy. Zakła­
damy, że ma on charakter gaussowski, zatem każ­
dy sygnał, który wychodzi poza trzykrotność szu­
mu (reguła trzech sigma) jest z prawdopodobień­
stwem 99.7% niegaussowski – czyli (oby) realny.
●
AIPS 1: >>>>>>>>>>>>> Begin setting region number 1
●
AIPS 1: Press button A to set intermediate vertex
●
AIPS 1: Press buttons B, C, or D to set final vertex
●
AIPS 1: C => then reset a vertex, D => then exit
●
AIPS 1: Mean= 6.799E-07 rms= 2.917E-05 JY/BEAM over
●
AIPS 1: Maximum= 1.1495E-04 at
●
AIPS 1: Skypos: RA 12 29 40.428 DEC 41 26 43.25
●
AIPS 1: Skypos: 4850.000 MHZ
●
AIPS 1: Minimum=-1.1374E-04 at
●
AIPS 1: Skypos: RA 12 29 47.336 DEC 41 29 01.45
●
AIPS 1: Skypos: 4850.000 MHZ
●
AIPS 1: Flux density = 2.0198E-04 Jy. Beam area = 51.80 pixels
827
788
156
225
1
1
15387. pixels
1
1
1
1
1
1
1
1
Krok dziesiąty
●
W cntr spróbujemy dobrać odpowiedni poziom szumu. ●
Ustawiamy clev = wartość z tvstat.
●
●
●
●
●
●
Poziomy konturów ustalamy przy pomocy levs = ciąg liczb. Poszczególne liczby w tym ciągu informują, jakiej wielokrotności clev będzie odpowiadał dany kontur. Najczęściej używa się potęg pierwiastka z 2, albo ciągów zaczynających się od 3 i 5.
Można również wybrać wyświetlanie ujemnego konturu na 3 sigma
Parametry blc i trc to odpowiednio dolny lewy i prawy górny róg ekranu. Aby je odpowiednio dobrać, używamy polecenia tvwin, które przesyła ich wartość bezpośrednio do cntr. Uwaga – uprzednio należy załadować mapę, na której pracujemy na ekran – poleceniem tvlo.
Ponieważ chcemy wyświetlić kontury na ekranie, parametr dotv musi być równy 1.
Teraz tylko wyczyszczenie ekranu (tvini) i można uruchomić cntr.
Krok jedenasty – kontury właściwe
●
●
●
●
●
●
Jeśli wszystko wygląda ok, można tworzyć finalną mapę konturową – poleceniem kntr.
W kntr można użyć do czterech map: konturowej, tła, natężenia spolaryzowanego i kąta polaryzacji. W naszym przypadku wystarczą pierwsze dwie.
Jako pierwszą ładujemy mapę radiową i ustawiamy docont=1. Następnie ładujemy mapę optyczną (get2n) i ustawiamy dogrey=2. Ponieważ nie mamy map polaryzacyjnych, dovec=­1.
Mapa RGB ma z założenia inną geometrię – trzecią oś, niezgodną z tym, co na mapie radiowej. Aby temu zaradzić, wyłączamy sprawdzanie zgodności geometrii: doalign=­1. Dodatkowo, aby została wyświetlona jako kolorowa, ustawiamy docolor=1.
W kntr też można ustawić pixra. Warto jeszcze usunąć „pasek” pokazujący, jaki kolor odpowiada jakiemu sygnałowi. W tym celu ustawiamy dowedge=­1.
Jeśli wszystko gra, dostaniemy pożądaną mapę konturową z kolorowym tłem. Krok dwunasty – eksportowanie mapy
●
Póki co, mapa konturowa siedzi w AIPSie i nie można jej użyć
●
Do zapisywania plików PostScript służy polecenie lwpla.
●
●
●
●
●
●
Zanim użyjemy lwpla, trzeba wywołać kntr z poprzednimi ustawieniami (tget), zmienić wartość parametru dotv na ­1 i uruchomić. Spowoduje to powstanie nowej tablicy pl, zawierającej mapę konturową.
Ważne jest ustawienie jasności kanałów rgb: rgbgamma 2.2 2.2 2.2. Takie wartości odpowiadają jasności w TVSRV.
Trzeba jeszcze ustawić dolocor=­1. Inaczej lwpla przełączy kolory elementów mapy (konturów, ramki itp.) na zdefiniowane przez użytkownika, parametrem plcolors. Poprawne ustawienie jest czasochłonne (tablica 3x10) i zbędne – wartości domyślne są ok.
Wynikiem uruchomienia lwpla jest okienko przeglądarki, z którego możemy zapisać naszą mapę jako plik postscript.
Jeśli coś się nam nie podoba, usuwamy tablicę pl przy pomocy polecenia extde: inext 'pl'; extde i poprawiamy mapę w kntr.
Finalną mapą można się jeszcze pobawić, usuwając zbędne opisy u dołu i góry mapy – ale to temat na inną opowieść.
Dziękuję za uwagę!

Podobne dokumenty