Instrukcje dotyczące użycia oprogramowania do automatycznej kalibracji obserwacji wykonanych w Białkowie.
Wersja 2016.04.22, autor Z. Kołaczkowski (www.astro.uni.wroc.pl)
Skrypt główny calib_bialkow.bash przeprowadza automatyczną kalibrację obrazów CCD wykonanych kamerą ANDOR DW-432 w obserwatorium w Białkowie.
Po skopiowaniu i rozpakowaniu archiwum (np. tar xzvf calib-bialkow.tar.gz
)
należy przejść do katalogu calib-bialkow
i skopiować plik .calib_phot_bialkow_rc
do swojego katalogu domowego, a następnie wpisać w tym pliku
odpowiednią ścieżkę (pełną) do katalogu z rozpakowanymi skryptami,
czyli do katalogu calib-bialkow
. Po wykonaniu polecenia:
source $HOME/.calib_phot_bialkow_rc
wszystkie programy/skrypty można uruchamiać w dowolnym katalogu
roboczym, w którym znajdują się odpowiednie obrazy kalibracyjne
oraz naukowe.
Do poprawnego działania wszystkich elementów skryptu wymagane są następujące programy zainstalowane w systemie Linux:
- bash, wersja >= 4.0,
- gawk, sed, grep, gvim,
- python, wersja >= 2.6,
- moduły języka python:
- numpy (
http://www.scipy.org/scipylib/download.html
), - pyfits (
http://www.stsci.edu/institute/software_hardware/pyfits/Download
), - f2n (
http://obswww.unige.ch/~tewes/f2n_dot_py/
),
- numpy (
- IRAF/PyRAF (
http://iraf.noao.edu/
,http://www.stsci.edu/institute/software_hardware/pyraf/current/download
), - gnuplot (
http://www.gnuplot.info/
), - netpbm (
http://netpbm.sourceforge.net/
), - convert (
http://www.imagemagick.org/
)
Następujące programy są wymagane dla oryginalnego skryptu calib_bialkow.bash
,
w przypadku ich pominięcia można używać wersji calib_bialkow_new.bash
lub cb_make.bash
:
- eclipse (ESO) (ftp://ftp.eso.org/pub/eclipse/),
- jday (http://sourceforge.net/projects/jday/),
Plik macos_install.readme
zawiera wskazówki dotyczące instalacji na MacOS
Dostęp do wszystkich potrzebnych skryptów i danych pomocniczych
ustawiany jest przez wydanie polecenia:
source $HOME/.calib_phot_bialkow_rc
które tworzy zmienną środowiskową Calib_PATH i dopisuje odpowiednie
lokalizacje do zmiennej systemowej PATH.
Oczywiście wcześniej należy skopiować plik .calib_phot_bialkow_rc
do własnego katalogu domowego oraz wpisać w nim poprawne ścieżki do
katalogów zawierających oprogramowanie do automatycznej kalibracji
(Calib_PATH
) i redukcji (Phot_PATH
).
Jeśli chcemy mieć dostęp do programów kalibracyjnych ustawiony na stałe to należy dopisać to polecenie do ustawień startowych powłoki, np. do pliku .bashrc jeśli domyślnie korzystany z powłoki bash.
Przed pierwszym uruchominiem skrytu calib_bialkow.bash należy również skonfigurować IRAF-a. W katalogu domowym powinien być dostępny plik konfiguracyjny login.cl (jeśli go tam nie ma należy po przejściu do katalogu domowego uruchomić komendę mkiraf).
Niektóre z ustawień w tym pliku należy zmienić na:
set stdimage = imt2048
set imtype = "fits"
Plik login.cl jest kopiowany z katalogu domowego do katalogu w którym uruchamiamy skrypt calib_bialkow.bash.
Edytując główny skrypt calib_bialkow.bash
można zmienić ustawienia kilku
zmiennych wewnętrznych zdefiniowanych w jednym bloku na początku skryptu.
Ścieżki do katalogów:
CALIB_FILES_DIR
- zawiera wszystkie obrazy kalibracyjne utworzne
przez skrypt i użyte do kalibracji oraz dane diagnostyczne dotyczące
procesu kalibracji. Domyślnie jest to podkatalog zakładany przez skrypt
w aktualnym katalogu.
CDATA_DIR
- po poprawnym wykonaniu skryptu zawiera wszystkie skalibrowane
obrazy obiektów (w nagłówku FITS: DATA-TYP=OBJECT). Domyślnie jest
to podkatalog zakładany przez skrypt w aktualnym katalogu.
AUX_FILES_DIR
- zawiera dodatkowe pliki używane podczas kalibracji,
które nie są tworzone podczas wykonywania skryptu,
np. uśrednione obrazy typu DARK z długimi czasami naświetlania.
Domyślnie jest to podkatalog w katalogu zawierającym oprogramowanie
do kalibracji.
Nazwy plików z wzorcowymi obrazami typu DARK:
long_dark_2
(dla prędkości odczytu 2)
long_dark_16
(dla prędkości odczytu 16)
oraz odpowiadające im czasy integracji:
long_dark_2_exp
, long_dark_16_exp
.
Nazwy plików podstawione do zmiennych long_dark_2
i long_dark_16
powinny odpowiadać obrazom znajdującym się w katalogu wskazywanym
przez zmienną AUX_FILES_DIR
.
filter_seq
- lista filtrów używanych podczas obserwacji.
flat_max_v
, flat_min_v
- definiują zakres wartości średnich (w ADU)
dla obrazów typu FLAT-FIELD (FF), które będą używane w procesie kalibracji.
lim_dark_time - dla obserwacji z czasem ekspozycji równym lub dłuższym stosowane jest odejmowanie przeskalowanego obrazu typu DARK.
Składnia i krótki opis wyświetlane są po uruchominiu bez argumentów. Pierwszym i jedynym obowiązkowym argumentem jest nazwa pliku zawierającego odpowienio sformatowany dziennik obserwacyjny (DO). W tym przypadku program czyta plik o zadanej nazwie, który powinien znajdować się w aktualnym katalogu. Pliki FITS występujące w DO również powinny znajdować się w aktualnym katalogu. Drugi argument, pojedyńcza litera "l", jest opcjonalny i wymusza utworzenie nowego pliku zawierającego DO, o nazwie podanej jako pierwszy argument. Plik ten jest tworzony na podstawie zawartości nagłówków WSZYSTKICH plików FITS znajdujących się w aktualnym katalogu (*.fits). Do utworzenia nowego pliku z DO używany jest program mklog-bialkow.awk, który może być uruchomiany niezależnie.
Skrypt calib_bialkow_new.bash
, jest funkcjonalnym odpowiednikiem calib_bialkow.bash
z procesem generowania DO przepisanym do pythona. Dzięki temu nie wymaga on do działania
eclipse (ESO) i jday. Skrypt pyfits_mk_log.py można również wykorzystać do niezależnego
wygenerowania DO (patrz: pyfits_mk_log.py --help).
Po każdym uruchomieniu skryptu z poprawnymi argumentami (jednym lub dwoma), wyświetlany jest w edytorze tekstowym (domyślnie gvim) dziennik obserwacyjny w celu sprawdzenia jego porawności i kompletności. W tym momencie można dokonać ostatnich korekt (a następnie je zapisać).
Zbiór danych kalibracyjnych oraz naukowych objętych dalszym działaniem skryptu zdefiniowany jest w pliku zawierającym DO.
Format pojedyńczej linii w pliku DO:
nazwa_pliku
rok
miesiąc
dzień
godzina
minuta
sekunda
czas_ekspozycji
prędkość_odczytu
filtr
typ_obrazu
nazwa_obiektu
data_julianska
gdzie wszystkie dane dotyczące czasu odpowiadają momentowi rozpoczęcia ekspozycji.
Alternatywnym interfejsem do oprogramowania jest skrypt cb_make.bash
.
Umożliwia on elastyczne zarządzanie procesem kalibracji, bazując na narzędziu make. Wywołanie:
cb_make.bash [-h|--help] [target]
gdzie target
jest jednym z poniższych:
-
cb_make.bash log
: tworzy DO:night.log
jeśli go nie ma -
cb_make.bash force-log
: tworzy DO:night.log
nadpisując istniejący jeśli istnieje. -
cb_make.bash flat
: tworzy znormalizowane FF, (inight.log
jeśli go nie ma). Jeżeli FF istnieją starsze niżnight.log
nic nie robi. -
cb_make.bash force-flat
: wymusza stworzenie znormalizowanych FF, nawet jeśli istnieją -
cb_make.bash calib
: wykonuje pełną kalibrację, tworzącnight.log
i FF jeśli to konieczne. -
cb_make.bash force-calib
: wymusza pełną kalibrację, nawet jeśli była aktualna - obróbka FF i kalibracja zostanie wymuszona.night.log
zostanie zbudowany tylko jeżeli go nie ma. -
cb_make.bash clean-log
: usuwanight.log
. -
cb_make.bash clean-for-calib
: usuwa poprzednio zbudowane FF i pliki kalibracyjne. -
cb_make.bash clean-all
:clean-for-calib
+clean-log
Wszystkie targety i ich zależności można prześledzić w pliku calib.makefile
.
cb_make.bash
używa tych skryptu calib_bialkow_new.bash
i w nim można dokonać zmian konfiguracji o których mowa w części dotyczącej ustawień zmiennych. Nie wymaga Eclipse(ESO) i jday.
Wraz z generowaniem night.log
tworzona jest jego kopia night.original.log
jako referencja co zostało ręcznie usunięte.
Przy czyszczeniu lub nadpisywaniu istniejących CALIB_FILES
i CALIB_DATA
, ich zawartość jest kopiowana do CALIB_FILES.PREV
i CALIB_DATA.PREV
odpowiednio. Jeżeli istniały wcześniej, ich zawartość jest usuwana. Poza backup-em, umożliwia to porównanie wyników dwóch kolejnych kalibracji.
Wywołania skryptów nie wymagają wcześniejszego ręcznego czyszczenia katalogów.
Zależności pomiędzy targetami log
, flat
i calib
są badane poprzez istnieniem i timestamp plików night.log
, CALIB_FILES/flats_processed
, CALIB_FILES/calibration_processed
odpowiednio. Jeżeli plik wcześniejszego kroku ma timestamp świeższy niż kroku kolejnego, krok kolejny zostanie wykonany, w przeciwnym razie, nie (chyba że użyje się wariantu przedrostkiem force-
). Przykładowo, zmiana w night.log
spowoduje wykonanie kroków kalibracji po wywołaniu cb_make.bash calib
.
Skrypt, mający takie same parametry jak cb_make.bash
, dla każdego z podkatalogów (pierwszego poziomu) wykona odpowiedni cb_make.bash
.
Decydującym czynnikiem dla przebiegu procesu kalibracji jest poprawna zawartość pliku DO, szczególnie istotne są informacje o: typie obrazu, czasie ekspozycji, prędkości odczytu i użytym filtrze. Jako dane wejściowe oczekiwane są nieprzetworzone obrazy pochodzące z kamery CCD ANDOR DW-432 używanej w obserwatorium w Białkowie. Jednym z istotnych założeń dotyczących danych obserwacyjnych jest stała temperatura detektora, wynosząca -50 stopni C.
Podczas wykonania skryptu oryginalne dane nie są nadpisywane, po kolejnych
krokach kalibracji powstają pliki ze znakami dodanymi do pierwotnej nazwy.
Końcowe pliki wynikowe zapisywane są w katalogach wskazanych przez zmienne
CDATA_DIR
i CALIB_FILES_DIR
, odpowiednia informacja o ich lokalizacji
wyświetlana jest jako ostatni komunikat. Po wykryciu typowego błędu
podczas wykonania skryptu wyświetlany jest odpowiedni komunikat
i proces kalibracji zostaje przerwany. Przed kolejnym uruchomieniem
skryptu należy usunąć wszystkie pliki, które powstały podczas poprzedniej
próby kalibracji.
Proces kalibracji przebiega etapowo, przed rozpoczęciem każdego z etapów
w terminalu wyświetlana jest krótka informacja. Poszczególne operacje na
obrazach są wykonywane przez skrypty wywołujące odpowiednio skonfigurowane
zadania pakietu IRAF/PyRAF (ich nazwy zaczynają się od pyraf_
).
Etapy kalibracji obejmują kolejno:
-
Gdy zostanie użyty argument
l
tworzony jest nowy plik zawierający DO. Wyświetlenie DO w edytorze tekstowym w celu weryfikacji jego poprawności. Należy zapisać ten plik jeśli dokonamy zmian. -
Utworzenie medianowych obrazów typu FLAT-FIELD w każdym filtrze. Wcześniej odejmowany jest średni dark z krótkim czasem integracji. Przed wyznaczeniem obrazu medianowego poszczególne ekspozycje są skalowane do wspólnego poziomu. Wieczorne i poranne pomiary są przetwarzane niezależnie, ale jeśli to możliwe do kalibracji używany jest otrzymany z nich obraz średni. Dodatkowo tworzone są obrazy kontrolne, stosunki odpowiednich wieczornych i porannych obrazów medianowych typu FLAT-FIELD unormowane do wartości 1. Pliki te mają nazwy:
ff*-div-norm.fits
,ff*-div-norm.jpg
i są zapisane w katalogu wskazanym przez zmiennąCALIB_FILES_DIR
. -
Utworzenie średniego obrazu typu BIAS, następnie interpolacja liniowa zmian poziomu sygnału "zerowego" w trakcie obserwacji.
-
Odejmowanie od wszystkich obserwacji naukowych średniego obrazu BIAS oraz poprawek wynikających z interpolacji zmian sygnału "zerowego". Wykresy ilustrujące te zmiany dostępne są w katalogu wskazanym przez zmienną
CALIB_FILES_DIR
(bias_2_interp.ps
,bias_16_interp.ps
). -
Odejmowanie od obrazów naukowych obrazów typu DARK (przeskalowanych na wymagany czas ekspozycji). Dotyczy to tylko obserwacji z czasami ekspozycji dłuższymi niż wartość zmiennej
lim_dark_time
. -
Zastosowanie kalibracji typu FLAT-FIELD, a następnie przeniesienie wszystkich skalibrowanych obrazów naukowych do katalogu wskazanego przez zmienną
CDATA_DIR
.