Zdokonalenı rıdıcıho softwaru pro dalekohled BART
Transkript
Zdokonalenı rıdıcıho softwaru pro dalekohled BART
Univerzita Karlova v Praze Matematicko-fyzikálnı́ fakulta DIPLOMOVÁ PRÁCE Petr Kubánek Zdokonalenı́ řı́dı́cı́ho softwaru pro dalekohled BART Katedra softwarového inženýrstvı́ Vedoucı́ diplomové práce: Mgr. Daniel Štourač Studijnı́ program: informatika Softwarové inženýrstvı́ Za cenné rady, připomı́nky a trpělivost bych chtěl poděkovat panu magistru Danielovi Štouračovi. Za konzultace týkajı́cı́ se zpracovánı́ snı́mků a plánovánı́ pozorovánı́ a za programy pro astrometrii, patřı́ dı́k panu magistru Martinovi Jelı́nkovi. Čas pro testovánı́ a pozorovánı́ se systémem BART si našli pan magistr Martin Topinka, inženýr Martin Nekola, magistr Jan Torman a Ondřej Mikulášı́k. Patřı́ jim za to mé poděkovánı́. Za knihovnu libnova bych chtěl poděkovat jejı́m autorům, zvláště pak panu Liamovi Girdwoodovi. Za programovánı́ a správu systému pro distribuci informacı́ o zdrojı́ch gama zářenı́ patřı́ dı́k Scottu Barthelmy z Goddardova střediska NASA. Grantové agentuře AV ČR a Evropské kosmické agentuře pak patřı́ dı́k za granty, kterými je BART financován. Prohlašuji, že jsem svou diplomovou práci napsal samostatně a výhradně s použitı́m citovaných pramenů. Souhlası́m se zapůjčovánı́m práce. V Praze dne 2. srpna 2003 Petr Kubánek Obsah 1 2 3 Úvod 1.1 Použı́vánı́ astronomických výrazů . . 1.2 Gama záblesky . . . . . . . . . . . . 1.3 Pozorovánı́ GRB malými dalekohledy 1.4 Princip detekce gama záblesků . . . . 1.5 Náhradnı́ program . . . . . . . . . . . 1.6 RTS1 . . . . . . . . . . . . . . . . . 1.7 RTS2 . . . . . . . . . . . . . . . . . 1.8 BART . . . . . . . . . . . . . . . . . Specifikace 2.1 Popis dalekohledu . . . . . . . . . 2.1.1 Popis CCD kamery . . . . 2.1.2 Popis montáže . . . . . . 2.1.3 Střecha dalekohledu . . . 2.2 Zpracovánı́ snı́mků . . . . . . . . 2.3 Organizace pozorovánı́ . . . . . . 2.4 Korekce montáže . . . . . . . . . 2.5 Přı́jem zpráv o gama záblescı́ch . 2.6 Náročnost na počı́tačové vybavenı́ Návrh 3.1 Agenty . . . . . . . . . . . . . . . 3.2 Centrálnı́ server . . . . . . . . . . 3.2.1 Přı́klad . . . . . . . . . . 3.3 Priority . . . . . . . . . . . . . . 3.3.1 Možnosti předávánı́ priorit 3.3.2 Závěr . . . . . . . . . . . 3.3.3 Přı́klady . . . . . . . . . . 3.4 Zmenšenı́ chyb montáže . . . . . 3.5 Stavy zařı́zenı́ . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 3 4 4 4 4 . . . . . . . . . 5 5 5 6 6 7 7 7 7 8 . . . . . . . . . 9 9 10 10 11 12 16 17 18 19 3.6 3.7 3.8 4 Centrálnı́ server . . . . . . . . . . . . . . . . . Zařı́zenı́ . . . . . . . . . . . . . . . . . . . . . 3.7.1 Kamery . . . . . . . . . . . . . . . . . 3.7.2 Montáž . . . . . . . . . . . . . . . . . 3.7.3 Kopule, střecha, meteorologická stanice Klienti . . . . . . . . . . . . . . . . . . . . . . 3.8.1 Organizace pozorovánı́ . . . . . . . . . 3.8.2 Databáze . . . . . . . . . . . . . . . . 3.8.3 Pořizovánı́ snı́mků . . . . . . . . . . . 3.8.4 Ukládánı́ snı́mků . . . . . . . . . . . . 3.8.5 Monitoring . . . . . . . . . . . . . . . 3.8.6 Dlouhodobá pozorovánı́ . . . . . . . . 3.8.7 Klient pro pozorovánı́ GRB . . . . . . Implementace 4.1 Cı́lová platforma . . . . . . . . . . . . . . 4.2 Cı́lový jazyk . . . . . . . . . . . . . . . . . 4.3 Protokol . . . . . . . . . . . . . . . . . . . 4.3.1 Formát . . . . . . . . . . . . . . . 4.3.2 Přı́kazy . . . . . . . . . . . . . . . 4.3.3 Odpovědi . . . . . . . . . . . . . . 4.3.4 Zprávy a žádosti serveru . . . . . . 4.3.5 Přenos snı́mků . . . . . . . . . . . 4.4 Přı́kazy protokolu . . . . . . . . . . . . . . 4.4.1 Konvence . . . . . . . . . . . . . . 4.4.2 Obecné návratové hodnoty . . . . . 4.4.3 Centrálnı́ server . . . . . . . . . . . 4.4.4 Zařı́zenı́ - obecná komunikace . . . 4.4.5 Kamera . . . . . . . . . . . . . . . 4.4.6 Montáž . . . . . . . . . . . . . . . 4.5 Přı́klad komunikace . . . . . . . . . . . . . 4.6 Komunikačnı́ knihovna . . . . . . . . . . . 4.6.1 Architektura komunikačnı́ knihovny 4.6.2 devser . . . . . . . . . . . . . . . . 4.6.3 devcli . . . . . . . . . . . . . . . . 4.6.4 devdem . . . . . . . . . . . . . . . 4.6.5 Architektura serveru . . . . . . . . 4.7 Zpracovánı́ snı́mku . . . . . . . . . . . . . 4.8 Rozhrannı́ zařı́zenı́ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 21 21 23 25 27 27 27 28 29 29 29 30 . . . . . . . . . . . . . . . . . . . . . . . . 31 31 31 31 32 32 32 33 33 33 33 34 34 35 36 37 37 40 40 40 40 40 40 41 41 5 6 7 Uživatelský manuál 5.1 Kompilace . . . . . . . 5.2 Spouštěnı́, zastavovánı́ 5.3 Monitoring . . . . . . 5.4 Přı́stup k databázi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jiné systémy, srovnánı́ 6.1 Změny oproti RTS1 . . . . . . . . . . . 6.2 RTS 1 . . . . . . . . . . . . . . . . . . 6.3 Ondřejov - ovládánı́ 60cm dalekohledu . 6.4 BOOTES - Španělsko . . . . . . . . . . 6.5 Nightview - Monte Boo, Brno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 43 44 44 . . . . . 49 49 49 51 52 54 Závěr 55 A Zadánı́ projektu 57 B Rozhrannı́ zařı́zenı́ B.1 Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Montáž . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 Střecha a meteorologická stanice . . . . . . . . . . . . . . . . . . 59 59 59 60 C Použité prostředky, převzatý kód C.1 Vývojové prostředky . . . . . . . . . . . . . . . . C.2 Použité knihovny . . . . . . . . . . . . . . . . . . C.3 Převzatý a použitý kód, integrovaný přı́mo do RTS2 C.4 Vlastnı́ kód . . . . . . . . . . . . . . . . . . . . . 61 61 61 62 62 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D Časový plán 63 E Databáze 65 F Konfiguračnı́ soubor 69 Název práce: Zdokonalenı́ řı́dı́cı́ho softwaru pro dalekohled BART Autor: Petr Kubánek Katedra: Katedra softwarového inženýrstvı́ Vedoucı́ diplomové práce: Mgr. Daniel Štourač e-mail vedoucı́ho: [email protected] Abstrakt: BART je malý dálkově ovládaný dalekohled, vybavený optickými CCD kamerami, umı́stněný v Astronomickém ústavu Akademie věd v Ondřejově. Jeho cı́lem je pořizovánı́ optických snı́mků oblastı́, v kterých byly detekovány gama záblesky. Tato práce popisuje jeho nový ovládacı́ systém. Nový systém je navržen jako sı́t’spolupracujı́cı́ch programů. Tvořı́ ho servery zařı́zenı́, centrálnı́ server a klienti pro jednotlivé druhy pozorovánı́. Pro jejich vzájemnou komunikaci je navržen a implementován vlastnı́ komunikačnı́ protokol. Informace o cı́lech a výsledcı́ch pozorovánı́ jsou udržovány v databázi. Pozice gama záblesků jsou přijı́many prostřednictvı́m Internetu, vloženy mezi cı́le pozorovánı́ a pokud to podmı́nky dovolı́, po určitou dobu pozorovány. V čase, kdy nenı́ dalekohled využı́ván pro pozorovánı́ oblastı́ gama záblesků, jsou pozorovány náhradnı́ cı́le. V závěru práce je uvedeno srovnánı́ ovládacı́ho systému dalekohledu BART s několika dalšı́mi systémy pro ovládánı́ dalekohledu. Klı́čová slova: robotický dalekohled, ovládánı́, optické protějšky gama záblesků Title: Improvement of the controlling software for BART telescope Author: Petr Kubánek Department: Department of Software Engeneering Supervisor: Mgr. Daniel Štourač Supervisor’s e-mail address: [email protected] Abstract: BART is a small remote controlled telescope, equiped with optical CCD cameras. It’s located in Astronomical Institute of the Czech Academy of Sciences in Ondřejov. Its scientific target is rapid observation of gama ray burst (GRB) optical transients. This thesis describes its new control system. New system is designed as a net of cooperating programs. It’s composed of device servers, central server and clients for different types of observations. For their communication is designed and implemented private protocol. Observations entries requests and results are kept in database. Position of GRBs are received from the Internet, added to list of possible observations entries, and, if weather and other conditions permits observation, observed. In idle time, when there is not any request for GRB observations, secondary targets are observed. At the end of thesis is comparsion of BART control system with a few other systems for telescope control. Keywords: robotic telescope, control, optical transients of gamma ray bursts Zadánı́ diplomové práce Navrhněte, implementujte a zdokumentujte ovládánı́ dalekohledu BART (Burst Afterglow Robotic Telescope) tak, aby umožňovalo: • řı́zenı́ dalekohledu pomocı́ předem spočı́taného plánu, s možnostı́ jeho přerušenı́ a předánı́ řı́zenı́ jinému pozorovánı́ v přı́padě přı́jmu zprávy o novém objektu, vhodného k okamžitému pozorovánı́ • snadný přenos řešenı́ na jiné kamery, přı́padně dalekohledy • on-line zpracovánı́ snı́mků na jiném počı́tači než na počı́tači obsluhujı́cı́m kameru Na závěr porovnejte nové ovládánı́ dalekohledu s existujı́cı́mi systémy pro ovládánı́ dalekohledů. Je možné využı́t ovladače zařı́zenı́, napsané jako část ročnı́kového projektu obhájeného v červnu 2000. Ostanı́ kód ročnı́kového projektu nesmı́ být použit. Dokumentace k práci musı́ obsahovat výčet kódu, převzatého z ročnı́kového projektu. Pro úspěšné vyřešenı́ je potřeba provést následujı́cı́ práce • definovat rozhrannı́ pro ovládánı́ zařı́zenı́ a přenos dat z nich, provést jeho vzorovou implementaci na zařı́zenı́ch, jež jsou k dispozici na dalekohledu BART. • vymyslet a naimplementovat plánovač, který bude řı́dit pozorovánı́. • zabývat se ukládánı́m napozorovaných dat, jejich třı́děnı́m a zajištěnı́m jednoduchého přı́stupu k nim. • naimplementovat k částem, jež to vyžadujı́, grafické uživatelské rozhrannı́. Konzultanté za ASU AV ČR: Martin Jelı́nek ([email protected]) Renné Hudec ([email protected]) Lenka Šarounová ([email protected]) Jan Soldán ([email protected]) Literatura Martinez/Klotz - A practical Guide to CCD astronomy Trueblood/Genet - Telescope control, Willmann-Bell, 1997 Mgr. R.Halı́ř, T.Jı́lek, P.Kubánek, F.Krolluper, F.Kvapil - Detekce astronomických objektů s proměnnou intenzitou za pomoci robotického teleskopu, Ročnı́kový projekt MFF UK, Praha, 2000 David Ratledge, The Art and Science of CCD Astronomy Odkazy http://www.telescope.org/rti/automated.html přehled automatizovaných dalekohledů http://lascaux.asu.cas.cz dalekohled BART http://nova.sourceforge.net/ Projekt NOVA, automatické ovládánı́ dalekohledu http://www.astro.princeton.edu/˜bakos/HAT The Hungarian Automated Telescope Kvantitativnı́ požadavky Po zadánı́ a seznámenı́ se s problémem je rozumné definovat měřitelné veličiny, kterých by mělo být dosaženo. - systém musı́ reagovat na GRB zahájenı́m GRB pozorovánı́ do 1 sekundy - čas, kdy neběžı́ žádné pozorovánı́, nesmı́ přesáhnout 10% celkového pozorovacı́ho času Kapitola 1 Úvod Hlavnı́ motivacı́ vzniku této práce bylo napsánı́ vylepšeného ovládacı́ho systému pro dalekohled BART. V úvodnı́ kapitole jsou popsány a vysvětleny některé výrazy, použı́vané v dalšı́m textu. V druhé kapitole jsou popsány vlasnosti přı́strojů, které má systém ovládat. Třetı́ kapitola popisuje návrh nového systému. V jejı́ prvnı́ části je navržen algoritmus pro řešenı́ dvou problémů - předávánı́ priorit a průběžné korekce montáže. Jejı́ druhá část obsahuje popis jednotlivých částı́ nového systému. Čtvrtá kapitola obsahuje popis implementace, vysvětluje principy uplatněné v komunikačnı́m protokolu. Pátá kapitola obsahuje uživatelský manuál. V šesté kapitole je uvedeno srovnánı́ s nahrazeným systémem řı́zenı́ pozorovánı́. Dále je zde uveden popis několika dalšı́ch programů pro ovládánı́ astronomických programů. Přı́lohy obsahujı́ zadánı́ půbodnı́ho systému pro řı́zenı́ dalekohledu, popis důležitých hlavičkových souborů, popis použitých programů, časový plán implementace a podrobný popis tabulek obsažených v databázi. 1.1 Použı́vánı́ astronomických výrazů Pro úspěšné přečtenı́ a pochopenı́ této práce je dobré mı́t základnı́ znalosti astronomických výrazů a v astronomii použı́vaných pozičnı́ch systémů. Výklad těchto pojmů nenı́ předmětem této práce. Jsou popsány napřı́klad v [RTS1–2000] nebo v [Pokorný–1995]. 1 2 KAPITOLA 1. ÚVOD 1.2 Gama záblesky Gama zářenı́ je nejenergičtějšı́ elektromagnetické zářenı́. Gama Ray Burst, zkráceně GRB, česky gama záblesky jsou prudké a krátké výtrysky tohoto zářenı́, přicházejı́cı́ k nám z vesmı́ru. Záblesky trvajı́ od několika milisekund po několik tisı́c sekund. Gama zářenı́ nepronikne zemskou atmosférou - gama záblesky tedy musı́me hledat pomocı́ přı́strojů na družicı́ch. Staršı́ družice (napřı́klad družice COMPTON GRO) poskytovaly polohu zdroje gama záblesku pouze přibližně, s chybou velikosti několika stupňů, nové (HETE, INTEGRAL, Swift) umı́ najı́t polohu zdroje gama záblesku poměrně přesně chyba určenı́ polohy dosahuje maximálně několika desı́tek úhlových minut. Optickým protějškem gama záblesku se rozumı́ podezřelý objekt ve směru gama záblesku pozorovaný ve viditelném spektru. Optický protějšek je podle současné pozorovacı́ statistiky pozorován u zhruba poloviny gama záblesků. Je pozorovatelný déle než gama záblesk - po dobu několika dnů až několika měsı́ců. dny. V průměru je detekován jeden gama záblesk denně. Z různých důvodů (počası́, umı́stěnı́ na neviditelné části oblohy, malá jasnost, ..) u většiny z nich nenı́ možno dohledat jejich optické protějšky. Optický dosvit známe u několika desı́tek GRB. To je množstvı́ nedostačujı́cı́ pro vytvořenı́ důvěryhodné statistiky, která by definitivně potvrdila či vyvrátila veškeré teoretické modely objasňujı́cı́ původ gama záblesků. Nenı́ jasné, jaké jevy produkujı́ záblesky kratšı́ než 2 sekundy. Některé z teoretických modelů předpokládajı́ katastrofické srážky, následované výbuchem. Při srážce vzniká gama zářenı́, při výbuchu z nárazů rozpı́najı́cı́ se obálky pak pocházı́ optické zářenı́. Optický protějšek by měl být pozorovatelný o trochu později než gama záblesk. Z extrapolace naměřených optických protějšků gama záblesků vyplývá, že by mohl mı́t po krátkou dobu dostatečnou jasnost, aby byl viditelný i triedrem či malým dalekohledem. Jasnějšı́ je situace u GRB delšı́ch než 2 sekundy - jsou zřejmě projevy zániku hmotných hvězd - kolapsarů. 1.3 Pozorovánı́ GRB malými dalekohledy Proč má smysl pozorovat oblasti, ve kterých byly detekovány gama záblesky, malými dalekohledy, které jsou podobné tomu ondřejovskému? Důvody jsou následujcı́: • velké dalekohledy pozorujı́ podle předem daného plánu, nemajı́ moc volnosti pro přı́padné přerušenı́ pozorovánı́ 1.4. PRINCIP DETEKCE GAMA ZÁBLESKŮ 3 • malé dalekohledy jsou levné, lze jich tedy postavit vı́ce a pozorovat z vı́ce mı́st. Pozorovánı́m z vı́ce mı́st se zvýšı́ pravděpodobnost úspěšného pozorovánı́ Pro úspěšné pozorovánı́ je třeba splnit následujı́cı́ podmı́nky: • na pozorovacı́m stanovišti musı́ být jasno a noc, objekt musı́ být ihned nad obzorem • pole, které se pozoruje, nesmı́ být v blı́zkosti Měsı́ce; tato podmı́nka se stává kritickou pro pozorovánı́ v čase kolem úplňku. • dalekohled musı́ být správně ustaven • celý systém musı́ správně přijmout údaje o poloze GRB z pozemnı́ho střediska, zpracovávajı́cı́ho údaje z družic, správně reagovat a pozorovánı́ provést Každý dalekohled navı́c, který je v provozu, tak má svůj význam. Zvětšuje pravděpodobnost rychlého zachycenı́ objektu na souřadnicı́ch gama záblesku. 1.4 Princip detekce gama záblesků Gama zářenı́ procházı́ poměrně snadno hmotou. Optika pro jeho obor neexistuje. Nelze tedy použı́t konstrukce použı́vané pro optické nebo rádiové detektory. Gama teleskopy či přı́padně detektory pracujı́ na dvou principech: • pro vytvořenı́ obrazu použı́vajı́ masku • ze znalosti času nesměrové detekce na dvou a vı́ce pozicı́ch dopočı́távajı́ poluhu zdroje COMPTON GRO a družice IPN1 byly vybaveny nesměrovými nebo částečně směrovými detektory, nové družice - HETE, Integral a Swift jsou vybaveny detektorem s maskou. 1 InterPlanetary Network, družice NASA a dalšı́ch agentur umı́stněné v různých mı́stech slunečnı́ soustavy 4 KAPITOLA 1. ÚVOD 1.5 Náhradnı́ program Protože nelze očekávat detekci gama záblesku každou noc, je vhodné pro dalekohled navrhnout náhradnı́ program. Nejvhodnějšı́ je monitoring několika vybraných zdrojů, s počı́tánı́m jejich přesné fotometrie 2 . Fotometrie se dělı́ na asboslutnı́ a relativnı́. Relativnı́ spočı́vá v porovnávánı́ jasnosti jedné hvězdy oproti několika referenčnı́m hvězdám na sérii snı́mků, pořı́zených stejným přı́strojem při pokud možno stejných atmosférických prodmı́nkách. Absolutnı́ fotometrie spočı́vá v měřenı́ jasnosti všech hvězd na snı́mků, vypočtenı́m jejich přı́strojové magnitudy, ze znalosti jasnosti kalibračnı́ch hvězd dopočtenı́m jejich absolutnı́ magnitudy. Absolutnı́ fotometrie je náročnějšı́ než relativnı́ fotometrie. Systém je navržen tak, aby umožňoval pořizovánı́ snı́mků jak pro absolutnı́, tak pro relativnı́ fotometrii. 1.6 RTS1 Jako RTS1 je označován starý systém řı́zenı́ dalekohledu, vyvinutý v rámci ročnı́kového projektu studentů MFF UK. Zkratka RTS znamená Remote Telescope System. 1.7 RTS2 Tı́mto názvem je označována nová verze RTS, naprogramovaná autorem této diplomové práce. 1.8 BART Zkratka BART znamená Burst Alert Robotic Telescope. Touto zkratkou je označován ondřejovský dalekohled. 2 měřenı́ jasnosti hvězd Kapitola 2 Specifikace 2.1 Popis dalekohledu Dalekohled se skládá z montáže, optiky a detekčnı́ch přı́strojů. Nad dalekohledem je umı́stěna střecha. Úkolem montáže je pohybovat optickou částı́ dalekohledu. Montáž může být vybavena čidly, která umožňujı́ zı́skat informaci o orientaci montáže v prostoru. Montáž je většinou vybavena detekčnı́mi přı́stroji. Detekčnı́ přı́stroje se skládajı́ z detektoru a optické části. Nejdostupnějšı́m detektorem je lidské oko. Pro pozorovánı́ nočnı́ oblohy jsou vhodnějšı́ CCD kamery - nevyžadujı́ přı́tomnost pozorovatele u dalekohledu, majı́ vysokou citlivost a zı́skaná data je možné archivovat a dodatečně zpracovat. 2.1.1 Popis CCD kamery CCD prvek si můžeme představit jako matici fotoodporů. Při dopadu fotonu na CCD prvek se jeho energie přeměnı́ na elektrický náboj. Ten je poté změřen a A/D převodnı́kem převeden na digitálnı́ signál. Vyčı́tánı́ CCD je pojem, označujı́cı́ digitalizaci jednotlivých řádků a jejich přenos. Astronomické CCD kamery jsou většinou černobı́lé, barevné snı́mky lze zı́skat kombinacı́ snı́mků pořı́zených s použitı́m různých filtrů. CCD čipy použı́vané v astronomii se podstatně nelišı́ od běžných CCD čipů, použı́vaných v digitálnı́ch fotoaparátech. CCD kamery jsou většinou připojovány k počı́tači. Připojenı́ je realizováno bud’to přes standartnı́ porty, jakými je napřı́klad paralerlnı́, sériový, či v poslednı́ době USB port, nebo přes speciálnı́ kartu připojenou ke sběrnici počı́tače. Při vyčı́tánı́ kamery je potřeba přenést data v řádu megabajtů. Vyčı́tánı́ a 5 6 KAPITOLA 2. SPECIFIKACE následnou digitalizaci je potřeba provést v co nejkratšı́m časovém okamžiku1 . Kamery většinou nejsou vybaveny bufferem, data v nich obsažená jsou tedy rovnou po digitalizaci posı́lány počı́tači, který je musı́ přijmout. CPU vyčı́tacı́ho počı́tače je značně vytı́ženo cykly čekajı́cı́mi na data, nemůže tedy přidělit ostatnı́m procesům přı́liš mnoho času. 2.1.2 Popis montáže Montáže, které nejsou vybaveny motory pro změnu své orientace, nelze automatizovat. Montáže s motory je potřeba nejdřı́ve propojit s počı́tačem. Vzhledem k malému objemu přenášených dat se většina montážı́ připojuje přes sériový port počı́tače. Při zadávánı́ souřadnic je rozumné zadávat absolutnı́ souřadnice daného objektu, tedy rektascenzi a deklinaci. Pro výpočet polohy, na kterou se má nastavit, pak montáž potřebuje znát mı́stnı́ hvězdný čas. Ten je možné vypočı́tat ze světového času a zeměpisné délky. Při zjišt’ovánı́ polohy montáže je možné použı́t bud’to relativnı́, nebo absolutnı́ čı́tače. Relativnı́ čı́tače jsou jednodušı́ a levnějšı́, absolutnı́ složitějšı́ a dražšı́. Relativnı́ čidla počı́tajı́ změnu polohy. Změnu polohy je možné počı́tat bud’to přı́mo z doby chodu, přı́padně počtu cyklů ovládacı́ch motorů, nebo přesněji pomocı́ zpětnovazebnı́ch čidel, umı́stěných na osách montáže. Zpětnovazebnı́ čidla detekujı́ změnu pozice opticky nebo elektromechanicky. Relativnı́ čidla je potřeba před začátkem pozorovánı́ nastavit. Některé systémy motorů s čidly jsou po zapnutı́ schopny najı́t pevnou pozici, označovanou většinou jako home pozici, u které vědı́, jaké má souřadnice. Tyto pak nenı́ potřeba nastavovat. Absolutnı́ čidla jsou většinou řešena elektromechanicky, napřı́klad jako velmi jemný potenciometr. Dostupné motory, absolutnı́ i relativnı́ čidla, jejich přesnost a cena je velmi dobře popsána v [Trueblood, Genet–1997] na stránkách 159 až 222. 2.1.3 Střecha dalekohledu Nad dalekohledem se nacházı́ střecha či kopule. Jejı́m úkolem je chránit dalekohled v přı́padě nepřı́znivého počası́. Pokud se jedná o kopuli, je potřeba natáčet jejı́ štěrbinu2 do směru, který sleduje dalekohled. 1 Při delšı́m vyčı́tánı́ jsou poslednı́ vyčtené řádky světlejšı́ než prvnı́. Toto zesvětlánı́ je způsobeno tepelným šumem 2 otvor, kterým je vidět ven 2.2. ZPRACOVÁNÍ SNÍMKŮ 7 Střecha či kopule jsou většinou řı́zeny vlastnı́ logikou, která dokáže s počı́tačem komunikovat přes sériový port. 2.2 Zpracovánı́ snı́mků Pořı́zené snı́mky je potřeba uložit a zpracovat. Od pořı́zeného snı́mku je odečten temný snı́mek. Vzniklý snı́mek je pak vydělen hodnotami flat fieldu 3 . Toto zpracovánı́ je popsáno v [Martinez, Klotz–1996] a [Ratledge, David–1998]. Dále je potřeba zjistit přesnou polohu snı́mku a zaznamenat ji ve formě WCS4 hlavičky. 2.3 Organizace pozorovánı́ V systému je udržován seznam možných cı́lů pozorovánı́. U každého cı́le je evidováno, kolikrát byl pozorován a s jakým výsledkem. U každého snı́mku je evidováno, jestli se jedná o obyčejný nebo korekčnı́ snı́mek a okolnosti jeho vzniku. Obyčejné snı́mky jsou spojeny s konkrétnı́m cı́lem pozorovánı́. Korekčnı́ snı́mky nejsou vázány na cı́le pozorovánı́. 2.4 Korekce montáže Montáž dalekohledu z různých důvodů a přı́čin nemusı́ najet přesně na mı́sto, které jı́ bylo zadáno. U dalekohledů s pozorovateli je pozorované pole obsluhou srovnáváno s katalogy a přı́padná chyba opravena. U automatických dalekohledů se musı́me bez inteligentnı́ho pozorovatele obejı́t. Kontrolu správnosti najetı́ montáže lze provést pouze z pořı́zených dat. 2.5 Přı́jem zpráv o gama záblescı́ch Jak již bylo uvedeno, gama záblesky jsou detekovány družicemi. Z nich jsou informace s jistým časovým zpožděnı́m, závislém na pozici družice, přijmuty 3 český ekvivalent k tomuto názvu zřejmě neexistuje; jedná se o nesaturovaný světlý snı́mek, který se použı́vá pro korekci nelinearit jednotlivých pixelů 4 World Coordinate System, definuje způsob zaznamenánı́ polohu referenčnı́ho bodu snı́mku, jeho rektascenze a deklinace, úhlových rozměrů pixelu, rotace snı́mku a členů korekčnı́ho polynomu 8 KAPITOLA 2. SPECIFIKACE pozemnı́ sledovacı́ stanicı́. Většina detekcı́ je pak předávána do GSCF, NASA 5 . Z tohoto mı́sta jsou převzaté, přı́padně dopočı́tané polohy záblesků celosvětově distribuovány. Pro předávánı́ poloh se použı́vali vždy prostředky, dostupné v dané době - v sedmdesátých letech minulého stoletı́ to byl dálnopis a pošta, v letech osmdesátých k nim přibylo modemové spojenı́, které bylo v poslednı́ dekádě minulého stoletı́ vytlačeno přenosem zpráv přes Internet. Zprávy je možné pomocı́ Internetu přijı́mat dvěmi protokoly - jednak pomocı́ privátnı́ho protokolu implementovaného nad TCP/IP protokolem, jednak pomocı́ e-mailu. Předávánı́ zpráv přes TCP/IP protokol je rychlejšı́, ale zaručuje doručenı́ zprávy o gama záblesku pouze v přı́padě, že spojenı́ funguje. Přı́jem zpráv pomocı́ e-mailu je kvůli nutnosti posı́lat e-mail přes několik mailserverů pomalejšı́. Na druhou stranu garantuje doručenı́ zprávy o gama záblesku i v přı́padě, že přijı́macı́ stanice nenı́ trvale připojena do Internetu. Od konce roku 2002 je v činosti druhý systém pro zası́lánı́ zpráv o GRB. Předává pouze zprávy o detekci na družici Integral. Použı́vá vlastı́ binárnı́ protokol postavený nad UTP, s přijı́macı́mi stanicemi je spojen prostřednictvı́m Internetu. 2.6 Náročnost na počı́tačové vybavenı́ Finančnı́ zdroje astronomických ústavů i astronomů nejsou neomezené. Systém by jich tedy měl vyžadovat co nejméně. Lze napřı́klad použı́t vyřazených počı́tačů, které majı́ dostatečný výpočetnı́ výkon. Nároky na provoz a údržbu systému by měly být co možná nejmenšı́. 5 Goddard Space Flight Center, Goddardovo středisko pro kosmické lety, National Aeronautic and Space Administration, Národnı́ úřad pro letectvı́ a vesmı́r Kapitola 3 Návrh 3.1 Agenty Jak je uvedeno v popisu CCD kamery, při vyčı́tánı́ docházı́ ke značnému zatı́ženı́ počı́tače řı́dı́cı́ho vyčı́tánı́. Je tedy vhodné mı́t minimálně dvě, navzájem spojená zařı́zenı́, z nichž jedno řı́dı́ vyčı́tánı́ z kamery a druhé se stará o zpracovánı́ snı́mků. Systém vycházı́ z teorie agentů. Nad společným komunikačnı́m rozhranı́m běžı́ malé jednoúčelové procesy-agenty1 s, které vykonávajı́ svoji specifickou činnost, a komunikujı́ s ostatnı́mi agenty. Struktura agentů odpovı́dá zařı́zenı́m a procesům přı́tomných u dalekohledu. Je možné uvažovat o následujı́cı́ch typech agentů: • agent pro ovládánı́ kamery • agent pro ovládánı́ montáže • agent pro ovládánı́ střechy a meteorologické stanice • agent pro řı́zenı́ pozorovánı́ Agenty pro řı́zenı́ pozorovánı́ budou v dalšı́m textu označovány jako klienti. Je vhodné je rozdělit na agenty pro: • dlouhodobé pozorovánı́ • rychlé pozorovánı́ GRB • monitoring a správu systému 1 agenty jsou považovány za neživotné, protože se jedná o zařı́zenı́ 9 10 KAPITOLA 3. NÁVRH Jako zařı́zenı́ budeme označovat agenty ovládajı́cı́ zařı́zenı́, tedy agenty pro kameru, montáž a střechu. Klienti mohou migrovat z jednoho počı́tače na druhý, zařı́zenı́ migrovat nemohou. V návrhu se pro jednoduchost s migracı́ nepočı́tá. Pro komunikaci mezi jednotlivýmy agenty použijeme standartnı́ dostupné komunikačnı́ médium se známým protokolem. Umožnı́me tak přı́padné zapojenı́ jiných druhů zařı́zenı́ či klientů. 3.2 Centrálnı́ server Existujı́ funkce systému, které je rozumné spravovat centrálně. Jedná se vždy o funkce, které se na všech zařı́zenı́ch chovajı́ stejně. Jako vhodný přı́klad může posloužit autentifikace - při použitı́ veřejného uživatelského jména a tajného hesla je vhodné zajistit, aby klientovi stačilo jedno uživatelské jméno a jedno heslo. Dalšı́m přı́kladem může být seznam zařı́zenı́ obsažených v systému. Tyto funkce jsou dále označovány jako centrálnı́ funkce. Funkce, které je potřeba volat na jednotlivých zařı́zenı́ch, jsou označovány jako lokálnı́ funkce. Centrálnı́ funkce jsou prováděny agentem - centrálnı́m serverem. Pro prováděnı́ lokálnı́ch funkcı́ je použito přı́mé spojenı́ mezi agentem a zařı́zenı́m. 3.2.1 Přı́klad Na diagramu 3.1 je zobrazena konfigurace systému BART. Na montáži LX200, vyráběné firmou Meade, jsou přichyceny dvě CCD kamery SBIG typu ST8, vybavené širokoúhlou optikou. Na hlavnı́m dalekohledu je pak umı́stněna kamera ST9. Posuvná střecha dalekohledu je ovládána ručně. Systém se skládá z počı́tače se jménem lascaux, na kterém běžı́ databázový server, centrálnı́ server, všechny agenty, které řı́dı́ pozorovánı́ (pro přı́jem zpráv o gamma záblescı́ch, pro dlouhodobá pozorovánı́), a monitoring. Dále systém obsahuje tři počı́tače pro obsluhu kamer, k jednomu z nich je současně připojena montáž. Jejich jména jsou volena podle typu kamer - c0, c1 pro širokoúhlé kamery a cnf1 pro kameru umı́stněnou v ohnisku dalekohledu. BACODINE a IBAN jsou systémy pro zası́lánı́ zpráv o gama záblesku. Do systému se může připojit monitorovacı́ klient z libovolného mı́sta na Internetu2 . 2 vnitřnı́ sı́t’, spojujı́cı́ lascaux s počı́tači pro ovládánı́ kamer, je nedostupná zvenčı́ - je chráněna před přı́padnými útoky z Internetu pomocı́ překladu sı́t’ových adres - NAT. Pro připojenı́ monitorovacı́ch, přı́padně jiných klientů, je potřeba na lascaux nastavit forwarding jednotlivých TCP portů na počı́tače ve vnitřnı́ sı́ti, a v konfiguračnı́ch souborech kamer je potřeba změnit název počı́tače 3.3. PRIORITY 11 Obrázek 3.1: Přehled agentů - BART 3.3 Priority Každá funkce, která může být agentem volána, je prvkem právě jedné z následujı́cı́ch dvou množin: množina informačnı́ch funkcı́ obsahuje funkce, které poskytujı́ informace o stavu zařı́zenı́ množina exekučnı́ch funkcı́ obsahuje funkce, které měnı́ stav zařı́zenı́ Informačnı́ funkce mohou být volně přı́stupné. Vı́ce klientů je může volat ve stejnou dobu. Za jejich správné provedenı́ je odpovědný ovladač zařı́zenı́. Vykonávánı́ informačnı́ch funkcı́ trvá krátkou dobu. Nelze je přerušit. Exekučnı́ funkce nemohou být volně přı́stupné3 . Exekučnı́ funkce lze v libovolný okamžik přerušit. Systém použı́vá exkluzivnı́ho přı́stupu k exekučnı́m funkcı́m - nanejvýše jeden klient může volat exekučnı́ funkce, ostatnı́ klienti při volánı́ exekučnı́ funkce obdržı́ 3 napřı́klad nenı́ vhodné, aby jeden klient pohyboval dalekohledem a druhý exponoval kamery 12 KAPITOLA 3. NÁVRH chybovou zprávu, oznamujı́cı́, že funkci nemohou zavolat. Je pak na nich, aby se rozhodli, jak budou dále postupovat. Je třeba zajistit výběr klienta, který bude mı́t exkluzivnı́ přı́stup. Máme dvě možnosti: 1. připravit plán pozorovánı́ tak, aby klient s exkluzivnı́m přı́stupem byl vždy pouze jeden 2. v průběhu pozorovánı́ určovat klienta s exkluzivnı́m přı́stupem Detekci gama záblesků nenı́ možné předpovědět. Proto nenı́ možné dopředu připravit plán pozorovánı́. Prvnı́ možnost tedy nelze použı́t. Mechanismus na určenı́ vhodného klienta bude vypadat takto: • každý klient vlastnı́ čı́slo, vyjadřujı́cı́ jak moc trvá na exkluzivnı́m přı́stupu - prioritu • při připojenı́ nového klienta je jeho priorita nastavena na základnı́ hodnotu • klient může svoji prioritu zvyšovat, nebo snižovat • klient s nejvyššı́ prioritou má přı́stup k exekučnı́m funkcı́m • přı́stup k exekučnı́m funkcı́m nelze zı́skat zvýšenı́m priority na stejnou hodnotu, jako má aktuálnı́ klient s přı́stupem k exekučnı́m funkcı́m • pokud má vı́ce klientů stejnou, nejvyššı́ prioritu, klient, který zı́ská přı́stup k exekučnı́m funkcı́m je zvolen náhodně Je dobré si uvědomit, že poslednı́ možnost může nastat pouze v přı́padě, že klient s nejvyšı́ prioritou se bud’to odpojı́ od systému, nebo snı́žı́ svoji prioritu. 3.3.1 Možnosti předávánı́ priorit K zařı́zenı́ se mohou hlásit a nastavovat svoji prioritu novı́ klienti, připojenı́ klienti mohou svoji prioritu měnit, exekučnı́ funkce mohou trvat delšı́ dobu4 . Bude tedy docházet k situacı́m, kdy na zařı́zenı́ pro jednoho klienta běžı́ exekučnı́ funkce, zatı́mco druhý klient žádá o změnu priority, po jejı́mž provedenı́ by se stal klientem s nejvyššı́ prioritou - viz diagram 3.2. Nemá smysl čekat s ukončenı́m aktivnı́ exekučnı́ funkce do okamžiku, kdy klient s vyššı́ prioritou požádá o vykonánı́ exekučnı́ funkce - je rozumné očekávat, že požadavek o vykonánı́ exekučnı́ funkce bude následovat hned za požadavkem 3.3. PRIORITY 13 Obrázek 3.2: Nový klient žádajı́cı́ o změnu priority na změnu prioritu. Za cenu značného nárůstu složitosti kódu by systém zı́skal něco málo času. Viz diagram 3.3. Je tedy vhodné již při změně priority zajistit, že zařı́zenı́ bude připraveno přijı́mat exekučnı́ funkce - zařı́zenı́ nesmı́ při předávánı́ priority provádět exekučnı́ funkce. Je potřeba rozlišit dva přı́pady, jak požadavek na změnu priority ošetřit: 1. okamžitě ukončit volánı́ právě prováděné exekučnı́ funkce a změnit pořadı́ priorit 2. počkat, ukončit exekučnı́ funkce, poté změnit pořadı́ priorit Prvnı́ přı́pad bude použit, pokud dorazı́ neodkladné nové pozorovánı́, přı́padně bude třeba uskutečnit nějaké periodické měřenı́ opravdu v daný čas - těžko lze připustit, aby pozorovánı́ optických dosvitů gama záblesků bylo zpožděno byt’ o několik málo desı́tek sekund, které rozhodujı́ o úspěchu či neúspěchu pozorovánı́. Motivace druhého přı́padu spočı́vá v možnosti nechat doběhnout právě prováděné pozorovánı́ tak, abychom i z přerušeného pozorovánı́ zı́skali výsledky. 4 typickým přı́kladem je přesun dalekohledu 14 KAPITOLA 3. NÁVRH Obrázek 3.3: Ukončenı́ exekučnı́ funkce odložené do nového volánı́ Je napřı́klad škoda, pokud jednu sekundu před ukončenı́m vyčı́tánı́ kamery zı́ská exkluzivnı́ přı́stup jiný klient se zhruba stejnou prioritou - takto ztratı́me výsledek několikaminutového experimentu. Přitom stačı́ s předánı́m priority chvı́li počkat, než bude vyčten celý snı́mek. Dalšı́ zajı́mavou možnostı́ je dovyčtenı́ kamery v průběhu přesunu montáže na pozici nového cı́le - s ukončenı́m vyčı́tánı́ mohu počkat do okamžiku, kdy dalekohled dosáhne nové pozice. Nabı́zejı́ se následujı́cı́ možnosti, jak dlouho čekat: 1. předem danou dobu 2. počkat na dokončenı́ probı́hajı́cı́ exekučnı́ funkce 3. počkat na dokončenı́ probı́hajı́cı́ho bloku exekučnı́ch funkcı́ Prvnı́ řešenı́ nepřinášı́ žádné výhody. V náhodných přı́padech se podařı́ pozorovanı́ dokončit, v ostatnı́ch pouze ztratı́me čas. Druhý přı́pad může také vést ke ztrátě času - napřı́klad tı́m, že expozice doběhne, nezı́ská systém žádný použitelný výsledek, jelikož naexponovaný snı́mek 3.3. PRIORITY 15 nebude vyčten - zabránı́ v tom přı́tomnost klientu s vyššı́ prioritu. Toto je znázorněno na diagramu 3.4. Obrázek 3.4: Čekánı́ do ukončenı́ aktuálnı́ expozice Lze namı́tnou, že problém s vyčı́tánı́m naexponovaného snı́mku je možné vyřešit použitı́m funkce, která nejdřı́ve snı́mek naexponuje a následně vyčte. Pozorovánı́ ale mohou pro alespoň částečnou použitelnost vyžadovat provedenı́ několika funkcı́, volaných na několika různých zařı́zenı́ch. Přı́kladem může být pořı́zenı́ druhého snı́mku na jiných souřadnicı́ch, než byl pořı́zen prvnı́ snı́mek. Přidánı́m nové funkce tento přı́pad nevyřešı́me. Pouze třetı́ přı́pad přinášı́ užitek - se změnou priority se čeká tak dlouho, dokud nenı́ dokončena část pozorovánı́, z přerušovaného pozorovánı́ máme k dispozici výsledky, dalekohled bude optimálně využit. Za definovánı́ začátku a konce bloku je zodpovědný klient. Definovánı́ bloků probı́há po zařı́zenı́ch, bloky se na jednotlivých zařı́zenı́ch systému nemusı́ shodovat. 16 KAPITOLA 3. NÁVRH Obrázek 3.5: Čekánı́ do ukončenı́ aktuálnı́ho bloku 3.3.2 Závěr • Použijeme priorit. Komunikace mezi klienty a zařı́zenı́mi obsahuje přı́kazy pro zahájenı́ a ukončenı́ bloku. • Priorita se měnı́ bud’ okamžitě (vhodné pro reakci na GRB), nebo s čekánı́m do ukončenı́ bloku (vhodné pro dlouhodobý plánovač). • Žádost o prioritu je předávána na centrálnı́ server, který ji distribuuje zařı́zenı́m. Ta pak informujı́ klienty o splněnı́ žádosti. 3.3. PRIORITY 3.3.3 17 Přı́klady Řešenı́ dokončenı́ vyčtenı́ kamery a současného zahájenı́ přesunu na novou pozici vypadá následovně: • prioritu má klient A • A požádá kameru o zahájenı́ vyčı́tánı́ • A ukončı́ na montáži blok • o prioritu požádá klient B • B obdržı́ prioritu na montáži • B provede přesun montáže na novou pozici • kamera ukončı́ vyčı́tánı́ • A ukončı́ na kameře blok • B obdržı́ prioritu na kameře • B zahájı́ expozici na kameře V následujı́cı́m přı́kladu je popsáno předávánı́ priorit mezi třemi klienty. Klientem col, který pořizuje barevné snı́mky oblohy, pro které potřebuje snı́mek pořı́zený přes tři filtrová kola R V a I. Klientem var , který monitoruje proměnnou hvězdu, pro který je třeba nasnı́mat dva snı́mky. A klientem grbc, který hledá optické protějšky gama záblesku, který okamžitě po obdrženı́ zprávy o gama záblesku nasměruje dalekohled na novou pozici a začne pozorovat. • prioritu má klient col • col zahájı́ expozici prvnı́ho snı́mku ve filtru R • col vyčte prvnı́ snı́mek • col zahájı́ expozici druhého snı́mku ve filtru V • o prioritu požádá var • col vyčte druhý snı́mek • col zahájı́ expozici třetı́ho snı́mku ve filtru I • col zahájı́ vyčı́tánı́ třetı́ho snı́mku 18 KAPITOLA 3. NÁVRH • col ukončı́ na montáži blok • var obdržı́ prioritu na montáži • var zahájı́ přesun montáže na novou pozici • col dokončı́ vyčtenı́ třetı́ho snı́mku • col ukončı́ na kameře blok • var obdržı́ na kameře prioritu • var v přı́padě, že se montáž ještě stále pohybuje, počká do ukončenı́ přesunu • var zahájı́ expozici prvnı́ho snı́mku na kameře • var zahájı́ vyčı́tánı́ kamery • grbc obdržı́ zprávu o gama záblesku • grbc zjistı́, že pozice gama záblesku je pozorovatelná • o prioritu požádá grbc • dojde k ukončenı́ vyčı́tánı́ kamery • var obdržı́ zprávu o odejmutı́ priority • grbc obdržı́ na montáži i kameře prioritu • grbc zahájı́ přesun montáže • grbc počká na ukončenı́ přesunu montáže • grbc zahájı́ expozici na kameře 3.4 Zmenšenı́ chyb montáže Přesnost najı́žděnı́ montáže ovlivňujı́ jednak systematické pravidelné chyby, jednak náhodné poruchy. Možné chyby a jejich přı́činy jsou přesně a úplně popsány v [Trueblood, Genet–1997], v následujı́cı́m textu se omezı́me pouze na jejich shrnutı́ a na návrch jejich zmenšenı́. Systematické chyby závisı́ na pozici montáže. Lze je přesně spočı́tat a lze pro ně určit funkci, která je bude modelovat. Náhodné chyby vznikajı́ hlavně nepřesnostı́ snı́mačů polohy montáže. Jejich průběh nelze modelovat. 3.5. STAVY ZAŘÍZENÍ 19 V současné době lze dı́ky existenci velkých hvězdných katalogů a rychlých počı́tačů dopočı́tat skutečnou pozici středu snı́mku v čase nepřesahujı́cı́m čas expozice. Je tedy možné realizovat zpětnou vazbu, která vypadá následovně: • najed’ na pozici ~x • pořid’ snı́mek hvězdného pole • detekuj na snı́mku hvězdy • s pomocı́ nepřesných souřadnic z dalekohledu urči přesnou polohu středu snı́mku ~y • vypočti chybu ~δ = ~x − ~y , změn hodnoty čı́tačů dalekohledu. Pozice montáže pak bude neustále opravována, velikost náhodné chyby bude po dopočtenı́ pozice snı́mku nulována. 3.5 Stavy zařı́zenı́ Každé zařı́zenı́ a centrálnı́ server má pole stavů. Stav je bitová maska. Podle stavu zařı́zenı́ lze rozpoznat, jestli zařı́zenı́ provádı́ dlouhotrvajı́cı́ funkce. O změně stavu jsou informováni všechni připojenı́ klienti. Zařı́zenı́ majı́ navı́c jeden speciálnı́ stav. Ten určuje, zda má klient přı́stup k exekučnı́m funkcı́m. Změna tohoto stavu je oznamována pouze procesům, kterých se změna týká. 3.6 Centrálnı́ server Stavový diagram on označenı́ pro množinu stavů, ve kterých je systém v normálnı́m provozu. standby označenı́ množiny stavů, ve kterém systém čeká na pozorovánı́. Je aktivován napřı́klad v situaci, kdy je kompletně zatažená obloha, ale snı́mky z meteorologické družice dávajı́ šanci na vyjasněnı́ v průběhu noci. Systém se připravuje na pozorovánı́ (chladı́ kamery, otvı́rá střechu), pozorovacı́ klienti neposı́lajı́ požadavky na pozorovánı́. off stav, ve kterém je celý systém vypnutý. Důvodem pro vypnutı́ může být napřı́klad zaručeně nepřı́znivé počası́ (sněhová vánice, bouře), přı́padně technické problémy. 20 KAPITOLA 3. NÁVRH Obrázek 3.6: Stavový diagram centrálnı́ho serveru day den. Protože dalekohled je určen pro astronomické pozorovánı́, neběžı́ žádné úlohy. Lze pouze uvažovat o prováděnı́ výpočetně náročných úkolů souvisejı́cı́ch se zpracovánı́m dat z minulých pozorovánı́. evening večer. Systém se připravuje na pozorovánı́. Přechod do tohoto stavu sloužı́ jako informace pro zařı́zenı́, aby se připravila k pozorovánı́. Napřı́klad se začne s chlazenı́m kamer, otevře se střecha. Stav začı́ná v pevně danou dobu před západem Slunce, trvá do západu Slunce (sunset). dusk soumrak. Systém je připraven na pozorovánı́. Obloha je světlá, nemá smysl provádět dlouhodobá pozorovánı́. Lze provádět pozorovánı́ jasných objektů - pokud dojde v tomto okamžiku ke gama záblesku, má význam ho pozorovat. Jinak je vhodné pořizovat kalibračnı́ snı́mky. Trvá od západu Slunce do začátku civilnı́ho soumraku5 . night noc. Systém je plně připraven na pozorovánı́, obloha je temná. Pozoruje se. Stav trvá po dobu civilnı́ho soumraku, nautického soumraku a astronomické noci, tedy v čase, kdy je Slunce vı́ce jak 6 stupňů pod obzorem. dawn rozbřesk. Stav podobný soumraku, vhodný pro pozorovánı́ jasných objektů nebo pořizovánı́ kalibračnı́ch snı́mků. Trvá od konce astronomického soumraku po východ Slunce (sunrise). morning ráno. Stav pro ukončenı́ pozorovánı́. Vypı́ná se chlazenı́ kamer, parkuje dalekohled, zavı́rá střecha, zpracovávajı́ korekčnı́ snı́mky. Trvá od východu Slunce po pevně určenou dobu. 5 civilnı́ soumrak nastává v okamžiku, kdy je Slunce 6 stupňů pod obzorem 3.7. ZAŘÍZENÍ 21 3.7 Zařı́zenı́ 3.7.1 Kamery Stavový diagram kamer Obrázek 3.7: Stavový diagram CCD kamery noexposure na daném čipu neprobı́há žádná expozice exposing probı́há expozice data na kameře jsou k dispozici data, která je potřeba vyčı́st reading probı́há vyčı́tánı́ dat Chlazenı́ kamer Všechny novějšı́ astronomické CCD kamery majı́ zabudované chlazenı́. Chlazenı́ snižuje teplotu CCD čipu, a tı́m snižuje hodnotu temného proudu. Temný proud je tvořen nábojem, který se nashromáždı́ na čipu vlivem teplotnı́ch efektů - tedy i v přı́padě, když na čip nedopadá světlo. Při pořizovánı́ dennı́ch snı́mků můžeme jeho efekt zanedbat - snı́mky majı́ krátké expozičnı́ doby a vysoký odstup signál/šum. Pro astronomické snı́mky, které jsou pořizovány dlouhou expozičnı́ dobou a vyznačujı́ se malým odstupem signálu od šumu, je potřeba hodnotu temného proudu co nejvı́ce snı́žit. Úroveň temného proudu závisı́ na absolutnı́ teplotě čipu, rozdı́l mezi teplotou čipu a teplotou okolnı́ho prostředı́ ji neovliňuje. Teplotnı́ regulace je většinou tvořena peltiérem a ventilátorem. Peltiér přenášı́ teplo z malé plochy čipu na ventilátor, ventilátor pak zlepšuje distribuci tepla do okolı́. Teplotnı́ regulace bývá občas doplněna o možnost chlazenı́ vodou, přı́padně zkapalněným plynem. Expozici i vyčtenı́ snı́mku je vhodné provádět při konstantnı́ teplotě - neměnı́ se pak úroveň temného proudu. Změny teploty CCD čipu trvajı́ nenulový čas, teplota atmosféry se po západu Slunce v průběhu noci změnı́ většinou pouze o několik stupňů. Po každé změně teploty je třeba vyčkat, než se dostatečně prochladı́ celý CCD čip. 22 KAPITOLA 3. NÁVRH Provoz RTS1 ukázal, že nemá smysl teplotu čipu v průběhu noci měnit. Systém původně obsahoval kód, který se snažil optimalizovat cı́lovou teplotu chlazenı́ čipu tak, aby se přı́kon chlazenı́ držel v rozmezı́ doporučovaného výrobcem čipu. Při zpětné kontrole snı́mků pořı́zených v průběhu změny teploty se ukázalo, že snı́mky nemajı́ lineárnı́ průběh pozadı́ - prostředek snı́mku má hodnoty temného proudu vyššı́ než okraje pole. Tato nelinerita je způsobena rozdı́lnou teplotou okraje a středu CCD čipu. Aby bylo temných snı́mků potřeba co nejméně, je vhodné pořizovat snı́mky na co nejmenšı́m počtu teplot. U systému BART se osvědčily pětistupňové kroky. Nastavenı́ teploty kamery Obrázek 3.8: Stavový diagram chlazenı́ CCD kamery Před začátkem pozorovánı́ je spuštěno chlazenı́ na maximálnı́ výkon. V okamžiku začátku pozorovánı́ je zjištěna aktuálnı́ teplota CCD čipu ccd, která je zaokrouhlena směrem nahoru k nejbližšı́mu stupni step a na tuto teplotu je nastaveno chlazenı́. Obsluha má možnost teplotu a výkon chlazenı́ kontrolovat, a podle potřeby měnit. Po skončenı́ pozorovánı́ nebo při vypnutı́ systému je chlazenı́ vypnuto. Chlazenı́ má tedy následujı́cı́ stavy: shutdown chlazenı́ je vypnuto max chlazenı́ běžı́ na maximálnı́ hodnotu, ventilátor běžı́ temp chlazenı́ se snažı́ udržet teplotu čipu na nastavené hodnotě. Dostupné informace • chlazenı́ kamery - cı́lová teplota, procentnı́ vyjádřenı́ výkonu, teplota čipu, teplota okolı́ • velikost snı́maného pole • velikost výřezu ze snı́maného pole 3.7. ZAŘÍZENÍ 3.7.2 23 Montáž Stavy montáže Obrázek 3.9: Stavový diagram montáže parked montáž je zaparkována tracking pohyb montáže sleduje pohyb hvězdné oblohy moving montáž se pohybuje Korekce Korekce jsou počı́tány z pozice dalekohledu v době expozice a skutečné pozice středu snı́mků, zjištěné dodatečnou astrometriı́. Označme ~a pozici dalekohledu v době expozice, ~b dodatečně zjištěnou pozici, pak zjištěná chyba ~δ je rovna ~a − ~b. Pokud máme jenom jednu korekci, stačı́ změnit o tuto hodnotu čı́tače dalekohledu, ~ − ~δ, kde a‘ ~ je aktuálnı́ pozice dalekohledu v době tedy nastavit je na hodnotu a‘ aplikace korekce. Pořı́zené snı́mky budeme čı́slovat. Čı́slo snı́mku je v dalšı́m textu uváděno v dolnı́m indexu. Dolnı́ index u chyby značı́, že byla spočı́tána ze snı́mku, jehož čı́slo se rovná hodnotě dolnı́ho indexu. Korekce jsou dopočı́távány v různém pořadı́ a jejich výpočet trvá různě dlouhou dobu. Může nastat tato situace: • zjistı́me orientaci dalekohledu a~1 , zı́skáme z CCD kamery snı́mek img1 • dalekohledem přejedeme na novou pozici a~2 • zjistı́me orientaci dalkohledu a~2 , zı́skáme snı́mek img2 • dopočı́táme chybu δ~1 , změnı́me o jejı́ hodnotu čı́tače dalekohledu • dalekohledem přejedeme na novou pozici a~3 24 KAPITOLA 3. NÁVRH • dopočı́táme chybu δ~2 V tomto okamžiku je potřeba změnit hodnoty čı́tače o δ~2 - δ~1 . V přı́padě, že je aktuálně exponován snı́mek m, je potřeba změnit čı́tače při přı́chodu korekce spočı́tané ze snı́mku a o m−1 P ~ δ~m − δi i=a Bylo by vhodné, aby ovládánı́ montáže nemuselo být informováno o probı́hajı́cı́ expozici. Úkolem montáže nenı́ hlı́dat, co kamery na nı́ umı́stněné vykonávajı́. Mı́sto obrázků se proto pomocı́ globálnı́ proměnné correction mark čı́slujı́ korekce. Jejı́ hodnota je na počátku nastavena na nulu. Dále je k dispozici pole δ délky l, které je na počátku vynulováno. Při expozici je z ovládánı́ montáže zjištěno čı́slo poslednı́ korekce - hodnota correction mark. Toto čı́slo je uloženo spolu s názvem snı́mku do zásobnı́ku, ze kterého jsou snı́mky odebı́rány pro vypočı́tánı́ astrometrie a z nı́ plynoucı́ chyby najı́žděnı́ montáže. Korekčnı́ čı́slo je zjišt’ováno spolu s orientacı́ montáže, která se ukládá do snı́mku, a z které se počı́tá chyba najı́žděnı́. Po dopočı́tánı́ chyby je jejı́ hodnota, spolu s přiřazeným čı́slem korekce j, odeslaná na ovládánı́ montáže. Pokud platı́, že j < correction mark − l, je hodnota chyby ignorována a nenı́ dále zpracovávána. K hodnotě chyby se přičte hodnota uložená v poli δ na pozici j mod l6 , dostaneme tı́m hodnotu ω. Toto je opravená hodnota korekce, která se odešle na montáž. Od každého člena pole δ odečteme hodnotu ω. Nakonec zvětšı́me hodnotu correction mark o jedničku a prvek z pole δ s indexem correction mark mod l vynulujeme. Tento postup zaručuje, že v poli δ jsou uchovávány hodnoty korekcı́ chyb. Na pozici i je vždy uchovávána hodnota korekce pro chybu z dalšı́ho snı́mku pořı́zeného s korekčnı́m čı́slem i. Popsaný postup správně opravuje hodnoty chyb o hodnoty všech chyb aplikovaných mezi pořı́zenı́m snı́mku a okamžikem ukončenı́ jeho zpracovánı́. Součet těchto hodnot je obsažen v poli δ pod přı́slušným indexem. Dostupné informace • aktuálnı́ poloha dalekohledu - rektascenze, deklinace • azimutové souřadnice - azimut, výška nad obzorem • mı́stnı́ hvězdný čas 6 operátor mod značı́ zbytek po celočı́selném dělenı́ 3.7. ZAŘÍZENÍ 25 • světový čas - UT • zeměpisná poloha dalekohledu - zeměpisná délka, zeměpisná šı́řka • čı́slo korekce 3.7.3 Kopule, střecha, meteorologická stanice Je nutné zajistit zavřenı́ střechy při špatném počası́. Dalekohled je citlivý a drahý přı́stroj, který může být povětrnostnı́mi vlivy poškozen. Dalkohled je potřeba chránit zejména před vlhkem a nárazovým větrem. Střechu je pořeba v přı́padě zjištěnı́ nepřı́znivých povětrnostnı́ch podmı́nek zavřı́t. Pro zajištěnı́ nejvyššı́ možné spolehlivosti je vhodné spojit meteorologickou stanici s ovládánı́m střechy do jednoho celku. Systém je pouze informován o zavřenı́ střechy na přı́kaz meteorologické stanice. Pro dalekohled s otočnou kopulı́ je potřeba zajistit natáčenı́ kopule, a jejı́ parkovánı́. Kopule se parkuje na danou pozici. Stavy střechy, kouple WEATHER_BAD WEATHER_GOOD ROOF_OPEN opened ROOF_OPENING close ROOF_CLOSING closed open ROOF_CLOSED DOME_STILL DOME_PARKED DOME_MOVING Obrázek 3.10: Stavový diagram střechy, kopule roof open střecha je otevřená 26 KAPITOLA 3. NÁVRH roof closed střecha je zavřená roof opening střecha se otvı́rá roof closing střecha se zavı́rá weather good počası́ umožňuje pozorovánı́ weather bad počası́ neumožňuje pozorovánı́ dome still kopule se nepohybuje, je srovnána s pozicı́ dalkohledu dome moving kopule se pohybuje dome parked kopule je zaparkována tak, jak nařizujı́ bezpečnostnı́ předpisy Dostupné informace pozice štěrbiny 3.8. KLIENTI 3.8 3.8.1 27 Klienti Organizace pozorovánı́ Pozorovánı́ jsou řazena do epoch. Dělenı́ na epochy je vhodné z následujı́cı́ch důvodů: • upořádánı́ pozorovacı́ho systému se čas od času měnı́. Do systému jsou přidávány nové kamery, snı́mky z těchto nových kamer majı́ jiné vlasnosti než snı́mky ze starých kamer • nenı́ možné předpokládat, že by se podařilo uložit všechny snı́mky na jeden pevný disk. Dělenı́m na epochy je možné snı́mky archivovat na sı́t’ové disky, přı́padně páskové archivačnı́ boxy 3.8.2 Databáze Klient má přı́stup do databáze. V databázi jsou obsaženy tabulky pro: epoch epochy targets cı́le pozorovánı́ types popis typů pozorovánı́, informace specifické pro určité typy pozorovánı́ jsou ukládány do samostatných tabulek, základnı́ verze systému obsahuje tabulky ot pro přı́ležitostné cı́le (opportunity targets) a grb pro GRB. observations zprávy o průběhu jednotlivých pozorovánı́ images snı́mky darks, flats korekčnı́ snı́mky cameras, mounts pomocné tabulky pro evidenci konfigurace zařı́zenı́ medias pomocná tabulka pro ukládánı́ informacı́ o médiı́ch, určených pro archivovánı́ snı́mků, informacı́ o tom, jestli je daná cestě dostupná Na obrázku 3.11 je diagram závislostı́ mezi tabulkami. Celá databáze je navržena kolem vazby mezi tabulkami targets, observations a images. Databáze je využı́vána plánovačem, který z tabulky targets a přı́padně dalšı́ch provázaných tabulek čte údaje o možných cı́lech pozorovánı́, a ukládá do nı́ informace o průběhu pozorovánı́. Klient pro přı́jem zpráv o GRB do databáze ukládá údaje o obdrženém GRB. Dále je využı́vána pro ukládánı́ informacı́ o napozorovaných snı́mcı́ch. 28 KAPITOLA 3. NÁVRH Obrázek 3.11: Diagram závislostı́ databáze 3.8.3 Pořizovánı́ snı́mků Při pořizovánı́ snı́mků je odpovědnostı́ klienta si k nim opatřit potřebné informace, které uložı́ do hlavičky snı́mku. Jedná se zejména o pozici dalekohledu v době pořı́zenı́ snı́mku. Pořizovánı́ snı́mků probı́há z pohledu klienta následovně: • počkej na stav montáže TRACKING a stav kamery NOEXPOSURE • zahaj na kameře expozici • shromáždi všechny informace, vztahujı́cı́ se k začátku expozice, potřebná pro uloženı́ do hlavičky snı́mku • počkej na stav kamery DATA • zahaj na kameře vyčı́tánı́; od tohoto okamžiku je možné pohybovat s dalekohledem • počkej na dokončenı́ vyčı́tánı́ • ulož snı́mek • zajisti zpracovánı́ snı́mku Zpracovánı́ snı́mku většinou poběžı́ i po zahájenı́ dalšı́ expozice. Protože nám toto zpracovánı́ poskytne údaje o chybě v určenı́ pozice snı́mku, je vhodné mı́t možnost se zpracovánı́m snı́mků komunikovat až do jeho ukončenı́. Před pořı́zenı́m prvnı́ho snı́mku je potřeba do databáze pozorovánı́ zanést informaci o začátku pozorovánı́ nového pole, po ukočenı́ vyčı́tánı́ poslednı́ho snı́mku je třeba zanést informace o ukončenı́ pozorovánı́ tohoto pole. V přı́padě, že se podařı́ snı́mek opatřit astrometriı́, je potřeba ho přidat do databáze snı́mků. 3.8. KLIENTI 3.8.4 29 Ukládánı́ snı́mků Snı́mky jsou ukládány do souboru s názvem ve tvaru YYYYMMDDhhmmss. Název odpovı́dá světovému času zahájenı́ expozice - YYYY vyjadřuje roky, MM měsı́ce, DD dny, hh hodiny, mm minuty a ss sekundy. Snı́mky, u kterých se nepodařı́ dodatečným zpracovánı́m určit jejich přesné souřadnice, jsou ukládány do podadresáře v adresáři /trash, odpovı́dajı́cı́mu názvu kamery. Snı́mky, u kterých se podařı́ určit jejich přesnou polohu, jsou ponechávány v adresáři /images. Tento adresář je členěn na podadresáře pro epochy, názvy detektorů a čı́sla polı́. Napřı́klad snı́mek umı́stněný do souboru s celou cestou /images/ 002/ C0/ 04323/ 20030412230405.fits byl pořı́zen ve druhé epoše, detektorem C0, pro pole s čı́slem 4323. Jeho expozice začala 12. dubna 2003 ve 23 hodin, 4 minuty, 5 vteřin světového času. Temné snı́mky a flat fieldy jsou použitelné pouze kolem doby svého pořı́zenı́. Proto jsou ukládány do struktury, která umožňuje snadno a rychle dohledat k danému datu korekčnı́ snı́mek - temné snı́mky do adresářu odpovı́dajı́cı́ch roku a měsı́ci pořı́zenı́, flat fieldy do adresářů odpovı́dajı́ch roku, měsı́ci, dni a době pořı́zenı́ snı́mku. Formát názvu souboru je stejný jako u obyčejných snı́mků, obsahuje tedy datum a čas pořı́zenı́ snı́mku. Temné snı́mky jsou ukládány do podadresářu adresáře /darks, flat fieldy jsou ukládány do podadresářů adresáře /flats. 3.8.5 Monitoring Monitoring poskytuje informace o stavu a hodnotách všech zařı́zenı́ připojených do systému. Dále umožňuje volat funkce připojených zařı́zenı́ a provádět manuálnı́ expozice. Při manuálnı́m ostřenı́ přı́strojů je vhodné vyčı́tat pouze část CCD. Vyčı́tánı́ je potom rychlejšı́ a uživatel může kameru rychleji zaostřit. 3.8.6 Dlouhodobá pozorovánı́ Úkolem tohoto klienta je zajistit využitı́ dalekohledu v době, kdy neprobı́há pozorovánı́ gama záblesku klientem pro pozorovánı́ gama záblesku. Pracuje proto s nižšı́ prioritou než má klient pro pozorovánı́ gama záblesku. Klient vybı́rá cı́le pozorovánı́ z tabulky, která obsahuje seznam možných cı́lů pozorovánı́. Vybrané pozorovánı́ nechá proběhnout, počká na jeho dokončenı́ a vybere dalšı́ vhodné pozorovánı́. Pořadı́, ve kterém jsou cı́le pro systém BART vybı́rány, je určeno následovně: 30 KAPITOLA 3. NÁVRH • pokud existuje zpráva o gama záblesku, který je vı́ce jak 20 stupňů nad obzorem, a který byl aktualizován před méně než třemi dny7 , je vybrán tento cı́l. Pokud je podobných cı́lů vı́ce, je vybrán ten, který je nejvýše nad obzorem. • pokud existuje snı́mek mladšı́ než půl hodiny s astrometriı́8 , a existuje přı́ležitostný cı́l (ot), který je vı́ce jak 10 stupňů nad obzorem, nenı́ na severu9 , pro který existuje za poslednı́ noc menšı́ počet snı́mků, než je minimálnı́ cı́l, a který nebyl pozorován před menšı́m časem, než je nejmenšı́ rozestup, je tento vybrán. Pokud existuje podobných cı́lů vı́ce, jsou vybı́rány podle rozdı́lné priority, počtu pořı́zených snı́mků, výšce nad obzorem a počtu požadovaných cı́lů. • jinak je vybráno pole z přehlı́dkových polı́, které nenı́ na severu, je v předem definované výšce nad obzorem, a má nejmenšı́ počet zařazených snı́mků. Dále je tento klient zodpovědný za pořizovánı́ kalibračnı́ch snı́mků v průběhu soumraku a rozbřesku. Pro jiné systémy může být algoritmus výběru snı́mku definován odlišně. 3.8.7 Klient pro pozorovánı́ GRB Tento klient se stará o rychlé pozorovánı́ GRB. Většinu času pouze čeká na přijetı́ zprávy o GRB. Po přijetı́ souřadnic záblesku je uložı́ do databáze cı́lů. Dále zjistı́, zda je mı́sto záblesku pozorovatelné či nikoliv. Pokud toto mı́sto pozorovatelné nenı́, pokračuje v čekánı́ na dalšı́ GRB. Za provedenı́ opožděného pozorovánı́ GRB je zodpovědný klient pro řı́zenı́ dlouhodobého pozorovánı́. Pokud je GRB pozorovatelný, změnı́ svoji prioritu na nastavenou úroveně, počká na potvrzenı́ změny priority od montáže, zahájı́ přesun montáže, počká na potvrzenı́ změny priority od kamery a zahájı́ na kameře standartnı́m postupem expozici. Po pořı́zenı́ předem daného počtu snı́mků snı́žı́ svoji prioritu na původnı́ úroveň a čeká na dalšı́ zprávy o GRB. Znovu je věcı́ plánovače pro dlouhodobá pozorovánı́ zajistit pozorovánı́ mı́sta s GRB po delšı́ době. Toto pozorovánı́ je nutné pro přı́padnou relativnı́ fotometrii pohası́najı́cı́ho optického protějšku. 7 toto kritérium zaručuje, že nebudou vybı́rány GRB, u kterých je minimálnı́ šance na detekci optického protějšku 8 t.j. alespoň občas jsou vidět hvězdy 9 oblast pro dalekohled těžko přı́stupná, v které může dojı́t k zachycenı́ kabelů a následnému zničenı́ krokových motorů Kapitola 4 Implementace 4.1 Cı́lová platforma Cı́lovou platformou jsou počı́tače založené na Intelovské architektuře x86. Použı́vaným operačnı́m systémem je GNU Linux. Byly zkoumány distribuce RedHat, Mandrake a Debian. Dı́ky propracovanému balı́kovacı́mu systému se jako nejlepšı́ jevı́ Debian. Ten je nasazován na všechny nové počı́tače. Komunikace mezi agenty použı́vá sı́t’ový protokol TCP/IP. 4.2 Cı́lový jazyk Většina kódu je napsána v jazyce C, tedy bez použitı́ objektů. Databázové operace jsou popsány v jazyce SQL. Webovské stránky jsou psané v jazyce PHP. Integračnı́ části kódu jsou psány v bash skriptech. 4.3 Protokol V následujı́cı́m textu je za server označován proces, který čeká na spojenı́. Jako klient je pak označován proces, který spojenı́ otvı́rá. Je potřeba rozlišovat klienty pro jednotlivé činnosti (monitoring, ..) s klienty v protokolu. Proces centrálnı́ho serveru vystupuje v protokolu pouze jako sever. Klientské procesy vystupujı́ v protokolu vždy jako klienty. Zařı́zenı́, na které se připojujı́, jsou servery. Zařı́zenı́ vystupujı́ při komunikaci s centrálnı́m server jako klient. Při komunikaci mezi zařı́zenı́mi se jedno chová jako klient a druhé jako server. 31 32 4.3.1 KAPITOLA 4. IMPLEMENTACE Formát Komunikace může probı́hat bud’ pomocı́ binárnı́ch nebo textových zpráv. Binárnı́ komunikace je těžká pro pochopenı́ při pohledu zvenčı́, vyžaduje použı́vánı́ přesných volánı́. Binárnı́ komunikace je svázána s architekturou, na které funguje. Při jejı́m přı́jmu na jiné architektuře je většinou zapotřebı́ ji nejdřı́ve konvertovat. Textové rozhrannı́ lze při pohledu zvenčı́ snadno pochopit. Je náročnějšı́ na systémové prostředky než binárnı́ komunikace - jsou přenášena delšı́ data, přijaté přı́kazy je potřeba před zpracovánı́m detekovat. Systém použı́vá pro přenos přı́kazů a zpráv textové komunikace. Pro přenos binárnı́ch dat (snı́mků) se použı́vá binárnı́ho formátu. Bloky komunikace v textovém rozhrannı́ jsou ukončovány značkou konce řádky. Bud’to se použı́vá znaků platných v protokolu Telnet [RFC854] - tedy znaku CR následovaného znakem LF, nebo pouze znaku LF. Jednotlivé položky řádku jsou oddělovány nejméně jednı́m znakem mezera. 4.3.2 Přı́kazy Přı́kazy posı́lá klient serveru. Prvnı́ položkou řádku je název přı́kazu. Název přı́kazu je následován parametry. Na jedné řádce je možné poslat několik přı́kazů. Jako jejich oddělovač sloužı́ střednı́k. 4.3.3 Odpovědi Server na přı́kazy odpovı́dá. Odpověd’serveru je vždy zakončena řádkou, začı́najı́cı́ znakem ’+’ nebo ’-’ a pokračujı́cı́ stavovým kódem složeným ze třı́ čı́slic. Server začne dalšı́ přı́kaz přijatý od klienta zpracovávat až po odeslánı́ zakončovacı́ řádky. Pokud je prvnı́m znakem zakončovacı́ řádky ’+’, přı́kaz byl úspěšně vykonán. Pokud je tı́mto znakem ’-’, přı́kaz skončil chybou. Podle stavového kódu lze pak rozlišit, o jakou chybu se jednalo. Řádky obsahujı́cı́ proměnné začı́najı́ malým pı́smenem. Posı́lá je server klientovi, většinou jako reakci na přı́kaz a tedy před tı́m, než oznámı́ ukončenı́ přı́kazu. Prvnı́ položka je název proměnné, druhá jejı́ hodnota. Napřı́klad po dotazu na pozici montáže může montáž odpovědět ra 10, což znamená, že je v rektascenzi nastavena na 10 stupňů. 4.4. PŘÍKAZY PROTOKOLU 4.3.4 33 Zprávy a žádosti serveru Řádky, které posı́lá server klientovi a které začı́najı́ velkým pı́smenem obsahujı́ bud’to zprávy, nebo žádosti serveru. Mohou se vyskytovat kdykoliv v průběhu komunikace klienta se serverem. Klient jejich přı́jem nepotvrzuje. Stavové zprávy Začı́najı́ znakem ’S’, a obsahujı́ název stavu, jeho novou hodnotu a doplňujı́cı́ komentář. Otevřenı́ datového spojenı́ Žádosti pro otevřenı́ nového datového spojenı́ začı́najı́ pı́smenem D. Poté následuje řetězec connect, jméno nebo IP adresa a port, na který se má klient připojit. Poslednı́ je délka bloku přenášených dat. Klient by se po přijetı́ této žádosti měl pokusit o navázánı́ spojenı́ na danou sı́t’ovou adresu. Zprávy Zprávy začı́najı́ pı́smenem M, za kterým následuje text zprávy. Informačnı́ zprávy Začı́najı́ pı́smenem I. Informujı́ klienta o změně hodnot stavu serveru, a o připojených klientech. 4.3.5 Přenos snı́mků Snı́mky se přenášejı́ přes datové spojenı́. Přenos začı́ná hlavičkou, ve které je uvedena velikost a formát snı́mku. 4.4 4.4.1 Přı́kazy protokolu Konvence Tučně je vysázeno jméno přı́kazu a jméno návratové hodnoty. Návratové hodnoty lze nalést v souboru include/status.h. Kurzı́vou a v [hranatých závorkách] jsou vysázeny parametry přı́kazu. V [hranatých závorkách] jsou vysázeny hodnoty proměnných. 34 4.4.2 KAPITOLA 4. IMPLEMENTACE Obecné návratové hodnoty Zařı́zenı́ vracı́ 0, pokud požadovaná operace proběhla úspěšně. Pokud přı́kaz neexistuje, nebo klient nenı́ autorizován pro prováděnı́ daného přı́kazu, vracı́ hodnotu DEVDEM E COMMAND. Pokud je pro přı́kaz zadán nesprávný počet parametrů, vracı́ hodnotu DEVDEM E PARAMSVAL. 4.4.3 Centrálnı́ server Inicializačnı́ přı́kazy login [jméno uživatele] zahájı́ proces přihlášenı́ do systému E:DEVDEM E COMMAND klient je již přihlášen nebo registrován E:DEVDEM E SYSTEM nenı́ možné přihlásit dalšı́ho uživatele password [heslo] přihlásı́ uživatele do systému logged as [čı́slo spojenı́] čı́slo spojenı́ na straně serveru, použı́vané pro dalšı́ autentifikaci I status num [počet stavů] I status [čı́slo stavu] [název stavu] [současná hodnota stavu] E:DEVDEM E SYSTEM heslo neodpovı́dá register [jméno zařı́zenı́] [typ zařı́zenı́] [host]:[port] zaregistruje nové zařı́zenı́ E:DEVDEM E SYSTEM zařı́zenı́ se stejným jménem je již zaregistrováno Informačnı́ přı́kazy info vypı́še informace o připojených zařı́zenı́ch a připojených klientech user [id] [priorita] [*—-] [jméno uživatele] [popis prováděnné činnosti] informace o připojeném klientu - jeho čı́slo, priority, zda je klientem s nejvyšı́ prioritou či ne, a stručný popis, o jakého klienta se jedná device [čı́slo zařı́zenı́] [jméno zařı́zenı́] [host]:[port] [typ zařı́zenı́] informace o připojeném zařı́zenı́ key [jméno zařı́zenı́] vyžádá si klı́č pro autorizaci authorization key [jméno zařı́zenı́] [klı́č] autorizačnı́ klı́č pro dané zařı́zenı́ E:DEVDEM E SYSTEM zařı́zenı́ neexisuje priority [nová priorita] změnı́ prioritu daného spojenı́ old priority [hodnota priority] současná priorita spojenı́ actual priority [čı́slo spojenı́ držı́cı́ho prioritu] [hodnota jeho priority] spojenı́ s 4.4. PŘÍKAZY PROTOKOLU 35 největšı́ prioritou new priority [čı́slo spojenı́ držı́cı́ prioritu] [hodnota priority] spojenı́ s prioritou po provedenı́ změny E:DEVDEM E PRIORITY pokud změna priority nemohla proběhnout prioritydeferred [nová priorita] provede odloženou změnu priroty on změnı́ stav serveru na jeden z operačnı́ch stavů, v závislosti na aktuálnı́m čase a datu standby přepne server do jednoho ze stavů ”standby” režimu ready pokud je server ve standby režimu, přepne ho do jednoho ze stavů ”on” režimu off změnı́ stav serveru na ”off” 4.4.4 Zařı́zenı́ - obecná komunikace Pokud nenı́ klient autorizován, vracı́ všechna komunikace hodnotu DEVDEM E SYSTEM. Pokud dojde při vykonávánı́ přı́kazu k chybě v komunikaci se zařı́zenı́m, vracı́ se hodnota DEVDEM E HW. auth [čı́slo spojenı́] [autentifikačnı́ klı́č] provede autorizaci I status num [počet stavů] I status [čı́slo stavu] [jméno stavu] [hodnota stavu] informace o stavu zařı́zenı́ E:DEVDEM E SYSTEM pokud autorizace neproběhla ready zjistı́, jestli je zařı́zenı́ připojeno. Je možné volat opakovaně. help vypı́še nápovědu exit ukončı́ spojenı́ blockstart informuje zařı́zenı́ o začátku bloku, nutné pro provedenı́ odložené změny priority E:DEVDEM E SYSTEM pokud je spojenı́ již v bloku blockcheck odložená změna priority je možná E:DEVDEM E SYSTEM pokud nenı́ spojenı́ v bloku 36 KAPITOLA 4. IMPLEMENTACE blockend ukončenı́ bloku pro odloženou změnu priority E:DEVDEM E SYSTEM pokud spojenı́ nenı́ v bloku 4.4.5 Kamera info vypı́še informace o kameře type [typ kamery] serial [sériové čı́slo kamery] chips [počet čipů kamery] temperature regulation [0 — 1 — 2] stav chazenı́ kamery - chlazenı́ vypnuto, chladı́m na maximálnı́ výkon, držı́m teplotu chlazenı́ temperature setpoint [teplota] teplota, na kterou se kamera snažı́ chladit air temperature [teplota] hodnota teplotnı́ho čidla, udávajı́ teplotu vzduchu ccd temperature [teplota] teplota CCD čipu cooling power [promile výkonu] hodnota chlazenı́ fan [0—1] stav větráku kamery chipinfo [čı́slo čipu] vracı́ informace o daném čipu chip [čı́slo čipu] width [šı́řka] šı́řka čipu chip [čı́slo čipu] height [výška] výška čipu chip [čı́slo čipu] binning vertical [vertikálnı́ binning] chip [čı́slo čipu] binning horizontal [horizontálnı́ binning] chip [čı́slo čipu] pixelX [rozměr pixelu v ose X] chip [čı́slo čipu] pixelY [rozměr pixelu v ose Y] chip [čı́slo čipu] gain [zisk v e/ADU1 ] expose [čı́slo čipu] [světlý/tmavý snı́mek] [expozičnı́ čas] zahájı́ na daném čipu expozici stopexpo [čı́slo čipu] ukončı́ expozici binning [čı́slo čipu] [vertikálnı́ binning] [horizontálnı́ binning] změnı́ binning čipu readout [čı́slo čipu] zahájı́ vyčı́tanı́ čipu D connect [čı́slo spojenı́] [host]:[port] [velikost dat] informace o nutnosti navázat datové spojenı́ na daný port Přı́kaz skončı́ až po úspěšném navázánı́ spojenı́. 1 velikost dopadnuté energie, potřebné k zvýšenı́ hodnoty pixelu o jedničku 4.5. PŘÍKLAD KOMUNIKACE 37 stopread [čı́slo čipu] ukončı́ vyčı́tánı́ daného čipu cooltemp [temperature] nastavı́ teplotu chlazenı́ čipu 4.4.6 Montáž set [RA] [DEC] nastavı́ pozici montáže move [RA] [DEC] zahájı́ přesun montáže na novou pozici info vypı́še informace o montáži type [typ dalekohledu] serial number [sériové čı́slo montáže] ra [RA] hodnota rektascenze montáže dec [DEC] hodnota deklinace montáže park dec [DEC] parkovacı́ deklinace longtitude [zeměpisná délka] zeměpisná délka dalkohledu latitude [zeměpisná šı́řka] zeměpisná šı́řka dalekohledu siderealtime [čas] mı́stnı́ hvězdný čas v okamžiku pozorovánı́ localtime [čas] občanský čas v mı́stě pozorovánı́ correction mark [čı́slo korekce] čı́slo poslednı́ proběhnuté korekce park zaparkuje dalekohled 4.5 Přı́klad komunikace Máme jedno zařı́zenı́, které se jmenuje C0 a je CCD kamerou. K tomuto zařı́zenı́ se připojuje jeden klient, který je chce provádět ostřenı́ kamery. Po svém připojenı́ se pokusı́ zı́skat prioritu, změnı́ teplotu chlazenı́ kamery a provede expozici následovanou vyčtenı́m zı́skaného snı́mku. Jméno uživatele je petr, jeho heslo je 123456. Kamera je umı́stěna na počı́tači se jménem c0, jejı́ server běžı́ na portu 5556. Datové porty začı́najı́ portem 5557. V následujı́cı́m přı́kladu značı́ k klienta, S centrálnı́ server a C0 kameru. Komunikace a je jejı́ směr je značena pomocı́ ¿. Napřı́klad: k > S - command 1 38 KAPITOLA 4. IMPLEMENTACE znamená text ”command 1” poslaný klientem centrálnı́mu serveru. C0 > S - register C0 3 c0:5556 S > C0 - I status num 1 S > C0 - I status 0 server st 2 Centrálnı́ server sdělil kameře, že má jeden stav, jeho jméno je server st a jeho hodnota je rovná 1. S > C0 - +000 Success k > S - login petr S > k - +000 Success k > S - password 123456 S > k - logged as 0 S > k - I status num 1 S > k - I status 0 server st 2 S > k - +000 Success k > S - info S > k - user 0 petr -1 S > k - device 0 C0 c0:5556 3 S > k - +000 Success Je připojen jeden uživatel - to je naše spojenı́, a jedno zařı́zenı́ - C0. k > S - key C0 S > k - authorization key 23456 S > k - +000 Success Klient požádal o autorizačnı́ klı́č. k > C0 - auth 0 23456 C0 > S - authorize 0 23456 S > C0 - authorization ok 0 S > C0 - +000 Success Server potvrdil pravost klı́če pro klienta. C0 > k - I status num 3 C0 > k - I status 0 img chip 0 C0 > k - I status 1 trc chip 0 C0 > k - I status 2 priority 0 C0 > k - +000 Success 4.5. PŘÍKLAD KOMUNIKACE 39 Klient byl autorizován, kamera mu sdělila počet, názvy a hodnoty stavů. k > C0 - ready C0 > k - +000 Success k > C0 - info C0 > k - type ST8 C0 > k - serial 819901486 C0 > k - chips 2 C0 > k - temperature regulation 0 C0 > k - temperature setpoint 1000.0 C0 > k - air temperature 17.39 C0 > k - ccd temperature 13.51 C0 > k - cooling power 0 C0 > k - fan 0 C0 > k - +000 Success Klient zı́skal informace o kameře. k > C0 - cooltemp -10 C0 > k - +000 Success Klient nastavil teplotu chlazenı́. k > C0 - expose 0 1 120 C0 > k - S img chip 1 exposure chip started C0 > k - +000 Success C0 > k - S img chip 4 exposure chip finished k > C0 - readout 0 C0 > k - D connect 8 C0:5565 3145784 Klient vytvořı́ datové spojenı́ a začne na něm přijı́mat data. Délka dat určených k přijmutı́ je 3145784 bytů. C0 > k - S img chip 2 reading chip started C0 > k - +000 Success C0 > k - S img chip 0 reading chip finished Server odeslal poslednı́ data, klient musı́ přečı́st všechna data z datového spojenı́ a porovnat je s délkou dat, kterou obdržel na začátku spojenı́. 40 KAPITOLA 4. IMPLEMENTACE 4.6 Komunikačnı́ knihovna Komunikačnı́ knihovna musı́ splňovat následujı́cı́ požadavky: • umožňovat přenos velkých objemů binárnı́ch dat • klást malé nároky na systémové prostředky Systém použı́vá vlastnı́ komunikačnı́ knihovny. 4.6.1 Architektura komunikačnı́ knihovny Knihovna se skládá z následujı́cı́ch částı́: devser knihovna pro server devcli knihovna pro klienty devdem knihovna pro zařı́zenı́ 4.6.2 devser Sloužı́ pro serverovou stranu spojenı́. Poskytuje funkce nutné pro přečtenı́ přı́kazu a zpracovánı́ přı́kazu, poslánı́ odpovědi a zakončovacı́ řádky přı́kazu. 4.6.3 devcli Sloužı́ pro klientskou stranu spojenı́. Poskytuje funkce pro navázánı́ komunikace se serverem, poslánı́ přı́kazu na server, zpracovánı́ a přečtenı́ odpovědı́ ze serveru. Zpracovává všechny požadavky a zprávy serveru, poskytuje funkce pro přı́jem dat a funkce volané při změně stavu. Udržuje komunikaci s centrálnı́m serverem, zjišt’uje stavy a počet zařı́zenı́. 4.6.4 devdem Integruje devcli a devdem. Poskytuje podporu pro zařı́zenı́. 4.6.5 Architektura serveru Pro každé nové spojenı́ je vytvářen a spouštěn nový proces. Pro synchronizaci procesů a jejich vzájemnou komunikaci jsou použity prostředky IPC. Pro déletrvajı́cı́ operace je vytvářeno nové vlákno. Vlákna jsou vytvářena pomocı́ knihovny pthread. 4.7. ZPRACOVÁNÍ SNÍMKU 4.7 41 Zpracovánı́ snı́mku Pro zpracovánı́ snı́mků je volán shellovský skript. Pokud se na jeho výstupu vyskytne řádka s údaji o skutečné pozici snı́mku a velikosti chyby, je chyba poslána na dalekohled. Snı́mek se po vyčtenı́ řadı́ do zásobnı́ku, z kterého je odebı́rán kódem pro zpracovánı́ snı́mků. Je zaručeno, že pro klienta poběžı́ pouze jeden proces pro zpracovánı́ snı́mků. O detekci hvězd se v systému BART stará program sextractor. Jeho konfiguraci provedl Martin Jelı́nek. O srovnánı́ detekovaných hvězd s katalogem se stará balı́k Opera, vyvinutý v Madridu a upravený Martinem Jelı́nkem. 4.8 Rozhrannı́ zařı́zenı́ Každý typ agenta obsluhujı́cı́ zařı́zenı́ definuje hlavičku s funkcemi, které použı́vá. Jako ovladač označujeme knihovnu, která funkce z hlavičky implementuje. Pod model zařı́zenı́ se rozumı́ fyzický druh zařı́zenı́. Modelem zařı́zenı́ je napřı́klad kamera ST-8 od firmy SBIG nebo kamera Apogee 16E od firmy Apogge. Při vytvářenı́ binárnı́ho kódu agenta pro zařı́zenı́ se slinkuje ovladač s obecným kódem serveru. Vzniklý kód implementuje komunikačnı́ protokol pro určitý model zařı́zenı́. Okomentované rozhrannı́ pro jednotlivá zařı́zenı́ je uvedeno v přı́loze B. 42 KAPITOLA 4. IMPLEMENTACE Kapitola 5 Uživatelský manuál 5.1 Kompilace Makefile jsou vytvářeny standartnı́mi balı́ky Automake a Autoconfig (pokud možno verze rovné nebo vyššı́ než 2.50). Chceme-li makefile znovu vytvořit, stačı́ v adresáři rts2 zadat přı́kazy aclocal, autoconf a automake. Tyto dva přı́kazy je bezpodmı́něčně nutné zadat v kódu, staženém z CVSka. Po staženı́ zdrojového kódu stačı́ v přı́kazové řádce zadat: ./configure Konfiguračnı́ skript prověřı́ cı́lový systém. Jeho prováděnı́ se ukončı́ chybovou hláškou popisujı́cı́ chybu v přı́padě, že systém neobsahuje všechny potřebné knihovny. Dále je potřeba přeložit binárnı́ kód a nainstalovat vytvořená data. To se děje pomocı́ make make install Pro make install je vhodné mı́t rootovské oprávněnı́. 5.2 Spouštěnı́, zastavovánı́ Pro spuštěnı́ serverů sloužı́ inicializačnı́ skript rts2, uložený v adresáři /etc/init.d. Konfigurace systému se děje pomocı́ souborů umı́stěných v /etc/rts2. Servery je možné pouštět i manuálně. Každý server spuštěný s parametrem -h vypı́še krátkou nápovědu. Všechny binárnı́ soubory jsou obvykle instalovány do adresáře /usr/local/bin. Toto umı́stněnı́ lze změnit nastavenı́m argumentu prefix při volánı́ configure skriptu. 43 44 KAPITOLA 5. UŽIVATELSKÝ MANUÁL Pro přı́klad lze uvést procesy, které běžı́ u dalekohledu BART: jméno počı́tače popis lascaux rts2-centrald (centrálnı́ server), rts2-planc (dlouhodobé pozorovánı́), rts2-grbc (reakce na gama záblesky), rts2-mon rts2-camd se jménem C0 (obsluha kamery C0, širokoúhlé c0 kamery přichycené na dalekohledu, tato kamera sloužı́ pro zpětnou korekci chyb montáže), rts2-teld se jménem T0 (obsluha dalekohledu T0) rts2-camd se jménem C1 (obsluha kamery C1, širokoúhlé c1 kamery pověšené na dalekohledu) rts2-camd se jménem CNF1 (obsluha kamery CNF1 - kacnf1 mera na hlavnı́m dalekohledu) 5.3 Monitoring Monitorovacı́ klient zobrazuje stav všech zařı́zenı́ připojených na centrálnı́ server. Pomocı́ monitorovacı́ho klienta lze zadávat přı́kazy pro prováděnı́ funkcı́ na zařı́zenı́. Přı́kazy pro centrálnı́ server lze psát přı́mo, přı́kazy pro zařı́zenı́ se pı́šı́ ve tvaru [jméno zařı́zenı́].[přı́kaz] {parametry}. Jméno zařı́zenı́ lze zjistit z panelu s informacemi o zařı́zenı́. Text přı́kazu se zobrazuje v hornı́ řádce. Pokud nezadáme jméno zařı́zenı́, přı́kaz je odeslán na centrálnı́ server. K dispozici jsou tyto klávesové zkratky: F2 převede server do stavu off, ekvivalent přı́kazu off F3 převede server do stavu standby, ekvivalent přı́kazu standby F4 převede server do stavu on, ekvivalent přı́kazu on F5 zaktualizuje údaje o všech připojených zařı́zenı́, překreslı́ obrazovku F10 ukončı́ monitorovacı́ program Monitorovacı́ klient zobrazuje v pravém dolnı́m rohu aktuálnı́ komunikaci mezi monitorovacı́m klientem a jednotlivými servery. 5.4 Přı́stup k databázi Přı́stup k databázi je možný přes webovské rozhranı́. Snı́mky z BARTa jsou takto dostupné na http://lascaux.asu.cas.cz/bartdb. 5.4. PŘÍSTUP K DATABÁZI 45 Obrázek 5.1: Obrazovka nmonitoru Obrázek 5.2: Formulář pro přihlášenı́ Pokud chceme v databázi měnit údaje, přı́padně stahovat existujı́cı́ snı́mky, je potřeba se nejdřı́ve přihlásit. Pro přihlášenı́ je potřeba znát své přihlašovacı́ jméno a heslo. Přihlášenı́ je možné pomocı́ formuláře 5.2. Obrázek 5.3 ukazuje, jak vypadá seznam napozorovaných cı́lů. Po vybránı́ odkazu na konkrétnı́ cı́l se objevı́ formulář 5.4 s rozpisem pořı́zených snı́mků pro konkrétnı́ cı́l pozorovánı́. Stránka 5.5 pak ukazuje výpis pořı́zených pozorovánı́. Pokud jsme přihlášeni, je možné pomocı́ zatrhávacı́ch tlačı́tek určovat, které 46 KAPITOLA 5. UŽIVATELSKÝ MANUÁL Obrázek 5.3: Stránka s výpisem cı́lů pozorovánı́ snı́mky chceme stáhnout. Přes tlačı́tko download je pak možné zı́skat snı́mky ve formě tgz balı́ku. 5.4. PŘÍSTUP K DATABÁZI Obrázek 5.4: Stránka s formulářem pro konkrétnı́ cı́l pozorovánı́ 47 48 KAPITOLA 5. UŽIVATELSKÝ MANUÁL Obrázek 5.5: Stránka s výpisem pozorovánı́ Obrázek 5.6: Obrazovka s výpisem snı́mků Kapitola 6 Jiné systémy, srovnánı́ 6.1 Změny oproti RTS1 Změny jsou sumarizovány v tabulce 6.1. Správnost modulárnı́ koncepce byla ověřena ve Španělsku, kde bylo během zhruba dvou hodin integrováno a odzkoušeno ovládánı́ nové montáže Paramount, ke které byly poskytnuty nı́zkoúrovňové ovladače. Systém je poměrně jedinečný integracı́ kamery a dalekohledu tak, že snı́mky jsou automaticky opatřovány souřadnicemi. Přestože se tato úloha jevı́ jako triviálnı́, značné procento světových dalekohledů nenı́ touto integracı́ vybaveno. 6.2 RTS 1 Zadánı́ pro ročnı́kový projekt je možné nalézt v přiloze. Současný kód je napsaný v jazyce [Python–2002]. Kód je plně funkčnı́ a splňuje základnı́ požadavky, které na něj byly v zadánı́ projektu kladeny: • ovládá dalekohled a kameru • umı́ přijı́mat zprávy o nových gama záblescı́ch • v rozumný čas 2 dokáže přerušit právě probı́hajı́cı́ pozorovánı́ a věnovat se pozorovánı́ s vyššı́ prioritou • vytvářı́ archiv snı́mků • umı́ pořizovat automaticky temné snı́mky 2 maximálně do pěti minut, záležı́ na průběhu expozice 49 50 KAPITOLA 6. JINÉ SYSTÉMY, SROVNÁNÍ RTS1 (ročnı́kový projekt) RTS2 (diplomová práce) monolit modulárnı́ od návrhu vázáno na konkrétnı́ daleko- nenı́ vázáno na konkrétnı́ dalekohled, hled, změny možné, ale náročné změny možné a relativně snadné Python, bash C, bash, perl, PHP, SQL kolem 5 tisı́c řádků Pythonu kolem 13 tisı́c vlastnı́ch řádků zdrojového kódu v jazyce C1 , celkem s převzatým kódem (ovladače kamer, přı́jem GRB zpráv) kolem 25 tisı́c C řádků pouze WWW rozhrannı́ WWW rozhranı́, textový monitoring textové databáze (post)relačnı́ databáze - PostgreSQL bez astrometrie snı́mků s astrometriı́ snı́mků bez zpětné vazby přes astrometrii se zpětnou vazbou přes astrometrii bez automatického pořizovánı́ flat-fieldu s automatickým pořizovánı́ flat-fieldu přerušitelný po dokončenı́ operace na ka- přerušitelný v jakýkoliv okamžik meře (vyčtenı́ snı́mku, dokončenı́ expozice) či přesunu dalekohledu nejasně definované stavy, neobsahuje standby a off stavy stavy pro flat-filedy, standbay, off verzován dodatečně v CVSku v CVSku verzován od počátku součástı́ projektu byly v praxi nikdy nepo- systém využı́vá pro tyto úkoly dostupné užité matlabovské algoritmy pro detekci balı́ky pro zpracovánı́ astronomických hvězd, planetek a optických protějšků snı́mků kolem tisı́ce řádků Matlabovského kódu nespočı́tané množstvı́ zdrojových řádků pro zpracovánı́ snı́mků cizı́ch balı́ků pro astrometrii, prohlı́ženı́ snı́mků, zpracovánı́ snı́mků Tabulka 6.1: Srovnánı́ RTS1 a RTS2 Dále poskytuje dvě užitečné funkce, jejichž nutnost se prokázala při rutinnı́m pozorovánı́. Nebyly v zadánı́ ročnı́kového projektu, a byly doimplementovány autorem diplomové práce po obhájenı́ projektu. Jedná se o: • možnost automaticky zahájit pozorovánı́ při západu Slunce, včetně automatického chlazenı́ kamer • parkovánı́ dalekohledu po skončenı́ pozorovánı́ Hlavnı́m problémem současného kódu je jeho monoličnost. Program je dělen do modulů, které mı́vajı́ do 1000 řádek kódu. Toto dělenı́ ale nenı́ domyšleno do všech detailů, v kódu se vyskytuje několik cyklických závislostı́ mezi moduly. 6.3. ONDŘEJOV - OVLÁDÁNÍ 60CM DALEKOHLEDU 51 Obrázek 6.1: Graf závislostı́ rts-1 Python si s cyklickými závislostmi poradı́ 3 . Jejich výskyt činı́ kód nepřehledným, změny se v kódu provádějı́ velmi těžko a nenı́ lehké zjistit všechny jejich důsledky. Současné řešenı́ RTS1 umožňuje pouštět expozici na jiném počı́tači než na počı́tači řı́dı́cı́m pozorovánı́. Experimentálně ověřená možnost spočı́vá ve vytvořenı́ ssh spojenı́ na počı́tač, ke kterému je připojena kamera. Přes toto spojenı́ se kamera řı́dı́ 4 , data se ukládajı́ bud’ na lokálnı́ disk, nebo na sdı́lený sı́t’ový disk. 6.3 Ondřejov - ovládánı́ 60cm dalekohledu Ondřejovský 60cm dalekohled sloužı́ pro pozorovánı́ planetek a proměnných hvězd. Montáž dalekohledu je vybavena senzory. Dalekohled má kupuly se štěrbinou, 3 4 před provedenı́m každého importu si překladač ověřı́, že již nebyl importován kamery se z Pythonovkého kódu ovládajı́ pomocı́ přesměrovánı́ standardnı́ho vstupu a výstupu 52 KAPITOLA 6. JINÉ SYSTÉMY, SROVNÁNÍ natáčenı́ kopule a pohyb dalekohledu ovládá počı́tač běžı́cı́ pod operačnı́m systémem MS DOS. Pro každou noc je připraven seznam cı́lů, z kterých je možné vybı́rat dalšı́ pozorovánı́. Vyčı́tánı́ kamery běžı́ pod operačnı́m systémem Windows, je ovládáno ručně. Snı́mky jsou ukládány na pevný disk, který je přı́stupný ze sı́tě. Zpracovánı́ snı́mků se děje v poloautomatickém režimu. U dalekohledu je umı́stěn server sloužı́cı́ pro ukládánı́ naměřených světelných křivek. Pořı́zené snı́mky jsou archivovány na CD-ROM. Lze je dohledat z pozorovacı́ch protokolů. Nevýhody: • nenı́ vyřešena integrace dalekohledu a kamer • nenı́ možné plně automatické pozorovánı́ 6.4 BOOTES - Španělsko Ve Španělsku, pod organizacı́ INTA5 , existuje podobný projekt jako na Ondřejově. Jedná se také o dalekohledy Meade, kamery SBIG. Ovládánı́ v současné době, po pětiletém vývoji, běžı́ na heterogennı́ sı́ti s OS Windows a Linux. Ovládánı́ tvořı́ několik samostatných procesů. Jsou to: TCM Telescope Control Module - řı́dı́ podle předem generovaného plánu pohyb dalekohledu. Dalekohledem pohybuje pouze v okamžiku, kdy nedocházı́ k žádné expozici. O expozici je informován do OTM prostřednictvı́m komunikace po TCP/IP soketu. Při přı́chodu zprávy o záblesku okamžitě přesouvá dalekohled na novou pozici, bez ohledu na právě probı́hajı́cı́ expozice. Napsán v jazyce C, běžı́ na Linuxu. DCM Dome Control Module - ovládá střechu, kontroluje stav počası́ pomocı́ meteorologické věže, hlásı́ stav střechy a počası́ přes SMS bránu, hlásı́ otvı́ránı́ a zavı́ránı́ střechy TCM. Napsán pod LabView, běžı́ na Windows 98. OTM Optical Transient Monitor - řı́dı́ snı́mkovánı́. Součástı́ programu jsou funkce pro automatické pořizovánı́ a zpracovánı́ kalibračnı́ch snı́mků. V současné době se použı́vá pouze na pořizovánı́ snı́mků (jak kalibračnı́ch, tak obyčejných), jejich dalšı́ zpracovánı́ řı́dı́ linuxovská pipeline. Psán v Borland C++ Builderu s použitı́m knihovny OWL, běžı́ na Windows 98. 5 INTA - Institucion National Technica in Astrofizica 6.4. BOOTES - ŠPANĚLSKO 53 IAM Image Analysis Monitor - pipeline postavená na programech z Opery, umožňujı́cı́ zpracovánı́ snı́mků, jejich astrometrii a fotometrii. V současné době se použı́vá pouze na astrometrii. Psán kombinacı́ linuxových prostředků (základ v jazyce C, řı́zenı́ přes Bashovské a Perl skripty). Obrázek 6.2: Schéma komunikace systému BOOTES Nevýhody: • neexistence jednotı́cı́ho protokolu • dalekohled nemůže kontrolovat kamery, průměrná doba mezi ukončenı́m přesunu dalekohledu a pořı́zenı́m prvnı́ho snı́mku bude o trochu většı́ než jedna polovina celkové doby na expozici a vyčtenı́ snı́mku6 • nestabilita Windowsovského vyčı́tače SBIGovských kamer, daná vlastnostmi GUI a poměrně složitým kódem. • nemožnost vyčı́tat dvě kamery na jednom počı́tači současně, empiricky ověřená - OS Windows nezvládá korektně přidělovánı́ času na CPU a podobné 6 Po přesunu na novou pozici může být kamera v jakémkoliv stavu. V nejlepšı́m přı́padě dokočila vyčtenı́ CCD čipu a právě se chystá zahájit novou expozici, v nejhoršı́m dokončila expozici, bude vyčı́tat, poté pořı́dı́ temný snı́mek a teprve poté bude exponovat. Protože kamery exponujı́ v pevných intervalech, nejhoršı́ přı́pad trvá 2*interval pro pořı́zenı́ jednoho snı́mku 54 KAPITOLA 6. JINÉ SYSTÉMY, SROVNÁNÍ pokusy vedou k pádu systému. V současné konfiguraci řešena současnou expocı́ dvou kamer, a jejich následným postupným vyčı́tánı́m, druhý snı́mek je velmi zašuměný. • neřešı́ problémy s ostřenı́m kamer • neumı́ pořizovat flat-fieldy - časy začátku expozic jsou do OTM vkládány pomocı́ textového konfiguračnı́ho souboru 6.5 Nightview - Monte Boo, Brno Program umožňuje ovládánı́ SBIGovských kamer. Použı́vá vlastnı́ protokol pro jejich ovládánı́ přes Internet, je rozdělen na klientskou a serverovou část. Nekombinuje ovládánı́ dalekohledu, na to je program Telescope control. Umožňuje v pohodlném GUI řı́dit expozici kamer, umı́ základnı́ zobrazovánı́ snı́mku. Nevýhody • s kamerou nenı́ možné komunikovat při posı́lánı́ dat. • nenı́ řešena integrace dalekohledu s kamerou • nenı́ řešena automatizace pozorovánı́ Kapitola 7 Závěr Cı́le diplomové práce, vytyčené v zadánı́, se mně podařilo splnit. K implementaci grafického rozhrannı́ nedošlo, textový klient se ukázal jako lepšı́ řešenı́. K zobrazovánı́ snı́mků je možné použı́t dostupné zobrazovače, napřı́klad DS9 nebo SkyCat. Ty rozsahem svých funkcı́ vysoce předčı́ vše, co byl student schopen za omezený čas vyhrazený pro diplomovou práci naprogramovat. Začátek doby reakce na gama záblesk, to jest doby potřebné k převzetı́ kontroly nad zařı́zenı́m, je u montáže podstatně kratšı́ než jedna sekunda, u kamer dosahuje jedné sekundy. Systém ztrácı́ méně jak 10% času. Ověřenı́ je možné vidět v databázi, na stránce statistiky noci, do které se lze nejlépe dostat přes ročnı́ statistiku. Chod systému je podstatně stabilnějšı́ než byl chod systému RTS1. Po odstraněnı́ problémů s uvolňovánı́m IPC prostředků a přepsánı́m přı́stupu k databázi do knihovny, která je reentrantnı́, se nestalo, že by systém během nočnı́ho pozorovánı́ spadl. Systém ukládá všechny potřebné informace do databáze. Ve srovnánı́ s RTS1, které ukládalo informace do textových souborů, je práce s databázı́ jednodužšı́. Systém řı́dı́ v současné době dalekohled BART v Ondřejově. Na léto je naplánované jeho nasazenı́ ve Španělska na dalekohledy spadajı́cı́ pod BOOTES a na nový ondřejovský 50cm dalekohled. Dalšı́m cı́lem je jeho použitı́ pro připravovaný infračervený dalekohled BOOTES-IR. Dı́ky práci jsem byl schopen ověřit si své teoretické znalosti, nabyté při studiu, v praxi. Pochopil jsem systém automake a autoconfig, prohloubil své znalosti v několika programovacı́ch jazycı́ch. Netvrdı́m, že jsem si vždy zvolil nejlepšı́ cestu, ze zpětného pohledu je zřejmé, že některé věci jsem mohl vymyslet či naprogramovat lépe. Vývoj systému tı́mto neskončil. V dalšı́ verzi by měla umožňovat koordinaci pozorovánı́ mezi vı́ce dalekohledy a společný přı́stup do databáze snı́mků. Součástı́ systému je real-time implementacı́ zpětné vazby mezi pořı́zenými snı́mky a montážı́. Tato zpětná vazba je dost ojedinělá - jediný dalšı́ systém, o 55 56 KAPITOLA 7. ZÁVĚR kterém je autorovi známo, že tutu zpětnou vazbu použı́vá, je současný systém na dalekohledu BOOTES. Pro něj byla doprogramována Martinem Jelı́nkem. Systém na BOOTESu je ovšem značně jednoduššı́, neprovádı́ monitoring objektů v rozsahu, který je prováděn na dalekohledu BART. Pro BART bylo ze zpětnou vazbou tohoto druhu počı́táno od jeho návrhu. Je nutné zdůraznit, že k implemetaci podobné zpětné vazby nemohlo do poměrně nedávné doby dojı́t vzhledem k těmto faktorům: • neexistence nebo nedostupnosti dostatečně rychlých počı́tačů • neexistenci médiı́ schopných uchovávat a přistupovat k několika GB dat, potřebných pro uloženı́ celooblohového katalogu • neexistence systémů s CCD kamerou a širokoúhlým objektivem - velké dalekohledy, které majı́ zorné pole několik málo stupňů, majı́ montáže dostatečně přesné na to, aby se bez podobné korekce obešly Systém RTS1 byl prezentován na několika astronomických konferencı́ch, pro schopnost kontinuálnı́ho pozorovánı́ po několik měsı́ců byl velmi ceněn a byl jednı́m z mála, ne-li jediným robotickým systémem, který vydržel pozorovat po dobu dvou let. Nový systém má šanci na podobný výsledek navázat. Je nutné přiznat, že BART je provozován po takto dlouho dobu i dı́ky těmto faktorům: • dostupnosti lidské obsluhy pro řešenı́ přı́padných problémů • malé finačnı́ náročnosti - až do 1. července 2003 nebyl autor zaměstnancem ASU AV, dalekohled byl obsluhován studenty astronomie, kteřı́ za svoji činnost pobı́rali minimálnı́ finačnı́ prostředky. Podobný poloamatérský provoz je u malých dalekohledů běžný. Přı́loha A Zadánı́ projektu Název: Detekce astronomických objektů s proměnnou intenzitou za pomoci robotického teleskopu 1. Účastnı́cı́ projektu • Vedoucı́: Mgr. Radim Halı́ř, [email protected] • Konzultanti: – RNDr. René Hudec, ASU AV ČR Ondřejov, [email protected] – Dr. Ing. Jan Soldán, ASU AV ČR Ondřejov, [email protected] – Bc. Lenka Šarounová, ASU AV ČR Ondřejov, [email protected] • Řešitelé: – – – – Tomáš Jı́lek, [email protected] Petr Kubánek, [email protected] Filip Krolupper, [email protected] František Kvapil, [email protected] • Týmová adresa: [email protected] 2. Vypsánı́ projektu: zimnı́ + letnı́ semestr 1999/2000 3. Zadánı́: Navrhněte a naimplementujte software pro vyhledávánı́ optických protějšků gama záblesků. Na vstupu je zpráva z mezinárodnı́ho centra sledujı́cı́ pomocı́ družic umı́stěných na oběžné dráze gama záblesky. Na výstupu z programu je odpověd’, zda se v cı́lové oblasti vyskytuje či nevyskytuje objekt podezřelý z toho, že by mohl být pozůstatkem gama záblesku a jeho přı́padné souřadnice a magnituda. K problému patřı́ též evidence napozorovaných dat, přı́stup k nim a dalšı́ ”rozumné” úkoly. 57 58 PŘÍLOHA A. ZADÁNÍ PROJEKTU 4. Základnı́ části projektu • komunikace s robotickým teleskopem (nastavenı́, sejmutı́ snı́mku, zjištěnı́ stavu, atd.) • plánovač pozorovánı́ včetně zpracovánı́ mailů z družic detekujı́cı́ch gama záblesky • evidence provedených pozorovánı́ • zpracovánı́ snı́mků včetně automatické detekce zajı́mavých objektů (předzpracovánı́ snı́mků pomocı́ průměrovánı́ a flatfield/darkfield korekcı́, radiometrická a geometrické kalibrace, hledánı́ objektů s proměnnou intenzitou) • (volitelně) analýza zı́skaných dat: zı́skánı́ souřadnic objektů, astrometrie, fotometrie, ... 5. Požadavky na realizaci • platforma UNIX se snahou o platformnı́ nezávislost, snaha využı́t dostupné SW prostředky: – SW pro ovládánı́ teleskopu (od Jan Soldána, komunikace pomocı́ emailu) – skriptovacı́ jazyky Python resp. Perl (např. pro plánovač) – numerické systémy Matlab/Ocstave/Scilab (zpracovánı́ snı́mků) – ”low-level” programovánı́ v C • dokumentace v systému TeX, pravděpodobně anglicky • součástı́ projektu bude i řešenı́ relevantnı́ch teoretických problémů. • přı́padné výsledky by měly být publikovány ve formě odborných článků. Přı́loha B Rozhrannı́ zařı́zenı́ B.1 Kamera extern int camera_init (char *device_name, int camera_id); extern void camera_done (); extern int camera_info (struct camera_info *info); extern int camera_fan (int fan_state); extern int camera_expose (int chip, float *exposure, int light); extern int camera_end_expose (int chip); extern int camera_binning (int chip_id, int vertical, int horizontal); extern int camera_readout_line (int chip_id, short start, short length, void *data); extern int camera_dump_line (int chip_id); extern int camera_end_readout (int chip_id); extern extern extern extern B.2 int int int int camera_cool_max (); /* try to max temperature */ camera_cool_hold (); /* hold on that temperature */ camera_cool_shutdown (); /* ramp to ambient */ camera_cool_setpoint (float coolpoint); /* set direct setpoint */ Montáž extern int telescope_init (const char *device_name, int telescope_id); 59 60 PŘÍLOHA B. ROZHRANNÍ ZAŘÍZENÍ extern void telescope_done (); extern int telescope_info (struct telescope_info *info); extern extern extern extern int int int int telescope_move_to (double ra, double dec); telescope_set_to (double ra, double dec); telescope_correct (double ra, double dec); telescope_stop (); extern int telescope_park (); extern int telescope_off (); B.3 Střecha a meteorologická stanice extern int dome_init (const char *device_name, int dome_id); extern void dome_done (); extern int dome_info (int *dome_info); extern int dome_open (); extern int dome_close (); extern int dome_stop (); extern int dome_move_roof (float ra, float dec); extern int dome_park_roof (); extern int dome_stop_roof (); Přı́loha C Použité prostředky, převzatý kód C.1 Vývojové prostředky Pro psanı́ veškerého kódu jsem použı́val editor vim. Makefile jsou generovány prostřednictvı́m balı́ků Autoconfig a Automake. Konfiguračnı́ skript pro autoconfig byl vytvořen ze skriptu generovaného programem autoscan, který je součástı́ autoconfigu. Všechny programy jsou verzovány v CVS. Verzovánı́ doporučuje kniha [Trueblood, Genet–1997]. Výhody verzovánı́ se ukázaly při souběžném vývoji na vı́ce počı́tačı́ch. Kodovánı́ probı́halo na třech počı́tačı́ch v Ondřejově, několika osobnı́ch počı́tačı́ch v Praze, a na počı́tači ve Španělsku. Pro generovánı́ webovských stránek jsou použity PHP skripty. Pro jejich správnou funkci je potřeba mı́t naistalovanou verzi PHP vyššı́ než 4.3. Skripty běžı́ pod HTTP serverem Apache. Databáze je spravována pomocı́ post-relačnı́ databáze PostgreSQL. C.2 Použité knihovny Pro výpočet astronomických souřadnic je použita knihovna [libnova]. V této knihovně bylo autorem opraveno několik chyb a implementováno několik nových funkcı́. Přesný přehled oprav je možné zı́skat z CVS repository libnovy, dostupného i přes jejı́ webovské stránky. Pro zápis a čtenı́ snı́mků do formátu fits je použita knihovna fitsio. Pro práci s WCS informacemi obsaženými v hlavičkách snı́mku je použita knihovna libwsc. Pro zobrazovánı́ informacı́ na terminálu je použita knihovan ncurses. Pro přı́stup na databázi jsou použity knihovny, obsažené v distribuci PostgreSQL. 61 62 PŘÍLOHA C. POUŽITÉ PROSTŘEDKY, PŘEVZATÝ KÓD C.3 Převzatý a použitý kód, integrovaný přı́mo do RTS2 Z kódu systému RTS1 byl převzat kód pro řı́zenı́ montáže LX200. Pro RTS1 byl tento kód autorem přepsaný ze zdrojového kódu pluginu do programu XEphem, napsaném v jazyce C do jazyka Python. Pro potřeby RTS2 byl autorem znovu mı́rně upraven a přepsán zpět do jazyka C. Od magistra Martina Jelı́nka z Ondřejovské observatoře pocházı́ knihovna pro ovládánı́ CCD kamer firmy SBIG, knihovna pro ovládánı́ montáže Paramount, portovaná ze zdrojových kódů určených pro OS Windows do kódu přeložitelného na Linuxu. Od Martina Jelı́nka a kolegů ze Španělska pocházı́ též balı́k pro astronometrii, autor této diplomové práce přispěl malou měrou k jeho stabilitě opravenı́m chyby v knihovně libwcs. Od Scotta Barthelmy, Michaela Robbinse (oba pracujı́ v Goddardově středisku řı́zenı́ vesmı́rných letů NASA) a Jamesa Kuypera (zaměstnance University of Michigan) pocházı́ klient pro přı́jem GRB žádostı́, autorem této diplomové práce modifikovaného a začleněného do kódu grbc. Od zaměstnanců ISDC1 pocházı́ kód klienta pro přı́jem UDP paketů s informacemi o GRB detekovaných družicı́ Integral, který byl též začleněn do kódu grbc. C.4 Vlastnı́ kód Všechen ostatnı́ kód, tedy knihovny pro sı́t’ovou komunikaci, kód plánovače, centrálnı́ho serveru, serverů všech zařı́zenı́, agentů pro zpracovánı́ GRB požadavků, monitorovacı́ agenty, SQL skripty pro vytvořenı́ a přı́stup do databáze, kód PHP stránek umožňujı́cı́ přı́stup do databáze, byl navržen a napsán výlučně autorem této diplomové práce. 1 Integral Science Data Center Přı́loha D Časový plán listopad 2001 začátek hledánı́ tématu diplomové práce březen 2002 schválenı́ tématu diplomové práce duben 2002 začátek vývoje komunikačnı́ knihovny, začátek verzovánı́ v CVSku srpen 2002 centrálnı́ server listopad 2002 implementace a testy serverů pro kamery a dalekohled, databáze snı́mků prosinec 2002 prvnı́ dennı́ pozorovánı́ leden 2003 nmonitor, grbc, prvnı́ celonočnı́ pozorovánı́ únor 2003 odstavenı́ RTS1 z BARTa duben 2003 dokončovacı́ práce, oprava chyb, dopisovánı́ a kompletace dokumentace, integrace knihovny pro montáž Paramount červenec 2003 implemetace pro BOOTES1, laděnı́, zavedenı́ pozorovacı́ch cı́lů srpen 2003 implementace pro BOOTES2, odevzdánı́ diplomové práce 63 64 PŘÍLOHA D. ČASOVÝ PLÁN Přı́loha E Databáze Přesnou strukturu datábaze - zvláště pak datové typy jednotlivých položek - je možné nalézt v SQL skriptech, sloužı́cı́ch pro vytvořenı́ databáze, které jsou v adresáři sql. V následujı́cı́m textu jsou primárnı́ klı́če značeny značkou ?. Indexované pole jsou pak značeny pomocı́ ∗. Tabulka epoch ? epoch id epoch start epoch end identifikace epochy začátek epochy konec epochy Tabulka targets ? tar id type id tar name tar ra tar dec tar comment čı́slo cı́le typ pozorovánı́ jméno cı́le rektascenze cı́le deklinace cı́le komentář Tabulka types ? type id type description čı́slo typu popis 65 66 PŘÍLOHA E. DATABÁZE Tabulka observations ∗ tar id ? obs id ∗ obs start obs duration čı́slo cı́le čı́slo pozorovánı́ datum zahájenı́ pozorovánı́ délka trvánı́ pozorovánı́ Tabulka images ? img id img name ∗ img date img exposure img temperature img filter astrometry ∗ obs id camera name mount name epoch id media id čı́slo snı́mku jméno snı́mku datum pořı́zenı́ snı́mku délka expozice teplota CCD čipu použitý filtr pozice snı́mku čı́slo pozorovánı́ jméno kamery jméno montáže čı́slo epochy médium, na kterém je snı́mek umı́stněn Tabulka darks, flats dark name ∗ dark date dark exposure dark temperature camera name jméno snı́mku datum pořı́zenı́ snı́mku délka expozice teplota CCD čipu jméno kamery Tabulka flats obsahuje stejná pole, pouze jejich prefix je flat. Tabulka cameras ? camera name camera desc jméno kamery popis kamery 67 Tabulka mounts ? mount name mount long mount lat mount alt mount desc jméno montáže zeměpisná délka montáže zeměpisná šı́řka montáže nadmořská výška montáže popis montáže Tabulka grb tar id ? grb id grb seqn grb date grb last update čı́slo pozorovánı́ čı́slo GRB aktálnı́ čı́slo pořadı́ zprávy datum pozorovánı́ GRB datum poslednı́ změny stavu GRB Tabulka ot tar id ot imgcount ot minpause ot priority čı́slo pozorovánı́ počet snı́mků požadovaných za jednu noc minimálnı́ rozestup mezi snı́mky priorita pozorovánı́ Tabulka medias ?med id med path med mounted identifikačnı́ čı́slo média cesta, na které je médium namontováno logická hodnota, určujı́cı́, jestli je dané médium namontováno V databázi je definován uživatelský typ, který sloužı́ pro ukládánı́ informace o poloze snı́mku. Je odvozen ze struktury, použı́vané v knihovně libwcs. Obsahuje informace o poloze referenčnı́ho bodu snı́mku, jeho souřadnicı́ch, rozměrech pixelu, rotaci snı́mku a parametry korekčnı́ho polynomu, který sloužı́ pro výpočet souřadnic ostatnı́ch bodů na snı́mku. V databázi jsou dále implementovány funkce, sloužı́cı́ jednak k obsluze uživatelského typu pro ukládánı́ souřadnic snı́mku, a jednak k transformacı́m ekliptikálnı́ch souřadnic na horizontálnı́, a výpočet vzdušné hmoty. 68 PŘÍLOHA E. DATABÁZE Přı́loha F Konfiguračnı́ soubor # # # # # # # # # # # # # # # # # # # # # # # This is example config file, created for El Arenosillo I.N.T.A observatory (BOOTES1) ${Id} Comments are denoted by # and runs till end of line. Should be located at $(PREFIX)/etc/rts2.conf, where $(PREFIX) is standart prefix, which you pass to ./configure script Values names and values are separated by = Values which are numbers are handled as numbers, values which are string are handled in program as string. So for example if you give name = 123, and rts2 expected, that name is string, default will be used (you give name as double) Reasonable defaults are build into code. But don’t complain, if they doesn’t fits your need. String values can be given at ””, but escaping (yet) doesn’t work, so don’t give something like ”\ntest”. Petr Kubanek, <[email protected]> ############################################################### # Client information section # script to call for astrometry processing astrometry = ”/home/petr/rts2/src/plan/img_process %s 2>/dev/null” # Which telescope program should control 69 70 PŘÍLOHA F. KONFIGURAČNÍ SOUBOR telescope_name = ”T0” # group, which will become owner of images group = ”images” # Site coordinates longtitude = 6.733 latitude = 37.1 ############################################################### # State transition section - when given state stars, ends, .. # Sun is below horizont, when # is below that value. day_horizont = 1 # Night starts, when sun gets night_horizont = -6.0 # Evening time - time to cool evening_time = 7600 # Time to cool off cameras in morning_time = 1800 its calculated altitude below that value cameras in seconds seconds ############################################################### # GRB - Gamma Ray Burts receiving section # enables Integral receiving grbc.iban = ”N” # enables GCN Bacodine receiving as server grbc.bacodine = ”N” # enables GCN Bacodine receiving as client # (bacofwd needs to run on other computer) grbc.bacoclient = ”Y” # bacodine port for server (negotiated with GCN) bacodine.port = 5152 # bacoclient is tweaked bacoserver to run as client, # accessing to bacofwd # bacoclient port address (bacofwd server port) bacoclient.port = 23 # bacodine hostname (bacofwd server address) bacoclient.server = ”disc.ua.es” # bacodine hostname (bacofwd server address) 71 #bacoclient.server = ”lascaux.asu.cas.cz” # login throught proxy? bacoclient.proxy = ”Y” # proxy username bacoclient.user = ”yyyy” # proxy password bacoclient.password = ”xxxx” # proxy end string bacoclient.proxy_end = ”Login Accepted” ################################################################# # planc - scheduler # see selector.h for details, SELECTOR_AIRMASS is 1, # SELECTOR_ALTITUDE is 2, SELECTOR_HETE is 3, SELECTOR_GPS is 4 planc_selector = 4 # every n picture will be dark image dark_frequency = 20 # every n picture will be hete picture (don’t put 0 there) hete.frequency = 1 # every n picture will be galactic plan scan gps.frequency = 2 # in seconds, gps will be taken every 3.5 * #86400 = 3 and half days gps.interval = 302400 ################################################################# # CAMERA section - informations about cameras # image flip - almost every lens flip the image flip = 1 # camera rotang C0.rotang = 2.45 # camera xplate scale C0.xplate = 103 # camera yplate scale C0.yplate = 103 # camera filter name C0.filter = ”R” C4-F50.rotang C4-F50.xplate C4-F50.yplate C4-F50.filter = = = = 179.6 35.8 35.8 ”I” 72 PŘÍLOHA F. KONFIGURAČNÍ SOUBOR Literatura [Trueblood, Genet–1997] Mark Trueblood, Russell Merle Genet - Telescope Control, Willmann-Bell 1997 [Martinez, Klotz–1996] Martinez/Klotz - A practical Guide to CCD Astronomy [Ratledge, David–1998] David Ratledge - The Art and Science of CCD Astronomy, Springer London 1997 [RFC854] Telnet RFC - http://www.rfc.net/rfc854.html [RTS1–2000] Mgr. Radim Halı́ř. Tomáš Jı́lek, Filip Krolupper, Petr Kubánek, František Kvapil - Detekce astronomických objektů s proměnnou intenzitou za pomoci robotického teleskopu, studentský projekt na MFF UK. [Pokorný–1995] Zbyněk Pokorný - Skripta pro AK I, Hvězdárna a Planetárium hl. m. Prahy [GCN] Gamma Coordinate Network - http://gcn.gsfc.nasa.gov [Python–2002] Python home page - http://www.python.org [ncurses] Knihovna nCurses http://www.gnu.org/software/ncurses [libnova] Knihovna libnova - http://libnova.sf.net [fitsio] Knihovna FITS IO - Flexible Image Transport System Input/Output [libWCS] World Coordinate System Subroutines - tdcwww.harvard.edu/software/wcstools/libwcs.wcs.html [PostgreSQL] PostgreSQL - http://www.postgresql.org [PHP] PHP - http://www.php.net 73 - 74 LITERATURA [Automake] Automake - http://www.gnu.org/software/automake [Autoconfig] Autoconfig - http://www.gnu.org/software/autoconfig [CVS] CVS Concurent http://www.cvshome.org [ViM] ViM - Vi iMproved - http://www.vim.org [Apache] Apache - http server - http://httpd.apache.org Version System - Seznam obrázků 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 Přehled agentů - BART . . . . . . . . . . . . . . . . . Nový klient žádajı́cı́ o změnu priority . . . . . . . . . Ukončenı́ exekučnı́ funkce odložené do nového volánı́ Čekánı́ do ukončenı́ aktuálnı́ expozice . . . . . . . . . Čekánı́ do ukončenı́ aktuálnı́ho bloku . . . . . . . . . Stavový diagram centrálnı́ho serveru . . . . . . . . . . Stavový diagram CCD kamery . . . . . . . . . . . . . Stavový diagram chlazenı́ CCD kamery . . . . . . . . Stavový diagram montáže . . . . . . . . . . . . . . . . Stavový diagram střechy, kopule . . . . . . . . . . . . Diagram závislostı́ databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 13 14 15 16 20 21 22 23 25 28 5.1 5.2 5.3 5.4 5.5 5.6 Obrazovka nmonitoru . . . . . . . . . . . . . . . . Formulář pro přihlášenı́ . . . . . . . . . . . . . . . Stránka s výpisem cı́lů pozorovánı́ . . . . . . . . . Stránka s formulářem pro konkrétnı́ cı́l pozorovánı́ Stránka s výpisem pozorovánı́ . . . . . . . . . . . Obrazovka s výpisem snı́mků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 46 47 48 48 6.1 6.2 Graf závislostı́ rts-1 . . . . . . . . . . . . . . . . . . . . . . . . . Schéma komunikace systému BOOTES . . . . . . . . . . . . . . 51 53 75 . . . . . . . . . . . .