Uživatelské nástroje

Nástroje pro tento web

Tento překlad je starší než originální stránka a nejspíše i zastaralý. Zobrazit změny.
Překlady této stránky?:

cs:radio-observer

Toto je starší verze dokumentu!


Radio Observer

Jde o staniční aplikaci určenou k rádiovému pozorování:

  1. Meteorů
  2. Slunce/Jupiteru
  3. Pozorování dalších objektů

Cílem radio-observeru je nahradit živého pozorovatele sledujícího data z radioteleskopu na přítomnost nějaké zajímavé události. Například bolidu, nebo Sluneční erupce. Program běží na detekčních stanicích a zpracováním signálu z přijímače detekuje zajímavé události, například meteory.

V principu by mělo jít o komplementární aplikaci k PySDR, která je naopak určena pro vizualizaci měřených dat.

Klíčovou vlastností programu je schopnost zaznamenávat časově označkovaná data, použitelná pro další analýzu po získání dat z více stanic.

Zatím se vyvíjí v testovací verzi, jako radio-observer. Běžet by měl na ARM počítači.

Funkční požadavky k výsledné aplikaci Radio-Observer jsou zapisovány do Redmine.

PySDR a radio-observer

Cílem projektu je vytvořit soustavu nástrojů pro radioastronomická pozorování na vzdálených stanicích. Důvody k tomu jsou:

  • Stanice se vyskytují obvykle jinde, než pozorovatelé
  • Je výhodné mít možnost spravovat více pozorovacích míst z jednoho pracoviště

Program radio-observer by měl být nástroj, který bude samostatně vykonávat pozorování, na základě detekčních skriptů napsaných v Pythonu. Tyto skripty by měly běžet i v programu pySDR, který by měl sloužit k vizualizaci jejich funkce na identických datech s těmi, na kterých bude provádět detekci i program radio-observer. PySDR by však kromě možnosti ladit novou verzi skriptů poskytoval i možnost zobrazení stavu radio-observeru zejména z důvodu kontroly jeho funkce. Detekční skripty spuštěné v pySDR by ale neměly generovat datové záznamy. Ale pouze zobrazit detekovanou a ukládanou oblast.

Důvod toho, proč samotná detekční aplikace má běžet na počítači u přijímače je ten, že zde je konzistentní přístup k získávaným datům. A navíc může být k dispozici i datový tok s větším rozlišením, než které je dostupné přes síťové připojení.

Instalace

sudo apt-get install libfftw3-dev cfitsio-dev libjack-jackd2-dev clang build-essential
git clone https://github.com/MLAB-project/radio-observer.git
cd radio-observer
git submodule init
git submodule update
cd cppapp
make
cd.. 
make

Nyní by jsme měli mít zkompilovaný radio-observer

checkout konkrétní verze z githubu

pro nejaktuálnější vyzkoušenou verzi na stanicích ZVPP a OBSUPICE lze použít

git checkout d7b29ff0bb7783596033c4be7113baffd91a697f

V dev větvi radio-observeru.

Ovládání radio-observeru

Naprostá většina parametrů radio-observeru je definována v konfiguračním souboru ve formátu JSON. Konfigurační soubor je očekáván v ~/.radio-observer.json. Případně může být zadán přepínačem při spuštění programu -c CONFIG_FILE.

Název konfiguračního souboru se odvozuje od názvu binárky, proto když přejmenujeme binárku, tak můžeme mít v home adresáři i jiný konfigurační soubor pro další experiment. Zároveň klient jacku je pak pojmenovaný podle jména binárky. To je užitečné v případě, že na jedné stanici potřebujeme z nějakého důvodu připojených více radio-observerů.

Parametry v příkazové řádce

Radio observer má minimum parametrů nastavitelných z příkazového řádku. Nejpodstatnějším parametrem je zvolený konfigurační soubor, který bude použit pro detekci.

  • -c CONFIG_FILE
  • -v - výpis verze

Konfigurační soubor

Konfigurační soubor je ve formátu JSON, který je rozšířený o možnost použití komentářů uvozených znakem //. Formát ukázkového souboru je následující:

{
	"jack_left_port":  "system:capture_1",   // název JACK portu, ke kterému se má radio-observer připojit
	"jack_right_port": "system:capture_2",
	
	"configuration": "default",     // název konfigurace která bude použita po spuštění programu.
	
	"configurations": [
		{
			"key":     "default",   // identifikátor konfigurace
			"factory": "pipeline",
			
			"children": [
				{
					"key":     "backend",
					"factory": "waterfall",
					
					"bins":    32768,   // počet binů FFT
					"overlap": 24576,   // překryv FFT binů
					
					"origin": "TEST-R0", // nazev stanice
					
					"iq_gain":        0,
					"iq_phase_shift": 0,
					
					"children": [
						{
							"key":     "recorder",
							"factory": "snapshot",

						    	"output_dir": "~/Bolidozor/TEST-R0/snapshots",   // adresar pro snapshoty
							"output_type": "snap", // zobrazovany typ souboru ve jmenu souboru
							
							"snapshot_length": 60,   // délka snímku spektra v sekundach
							"low_freq":      10100,  // spodní frekvenční omezení zaznamenávaného spektra. 
							"hi_freq":       11000,  // horní frekvenční omezení zaznamenávaného spektra.
						},
						{
							"key":     "recorder",
							"factory": "met",      // zobrazovany typ souboru s nahledy detekovanych meteoru ve jmenu souboru
							
						    	"output_dir": "~/Bolidozor/TEST-R0/meteors",   // adresar pro ukladani detekovanych meteoru
							"output_type": "met",   // zobrazovany typ souboru s metadaty ve jmenu souboru
							"metadata_path": "~/Bolidozor/TEST-R0/data", // adresar pro ukladani metadat
                          				"advance_time":     12,   // doba v sekundach, která bude zaznamenána v záznamu ještě před detekcí meteoru a po detekci.který bude sloučen do jednoho záznamu.
                          				"jitter_time":      1,   //maximální interval v sekundach mezi dvěma detekcemi, vice meteoru v tomto intervalu bude povazovano za jeden 
							"low_detect_freq": 10500,  // dolni frekvence, kde budou detekovány meteory
							"hi_detect_freq":  10700,  // horni frekvence, kde budou detekovány meteory
							"low_noise_freq":  11000,  // dolni frekvnece pásma pro výpočet intenzity šumu 
							"hi_noise_freq":    11500, // horni frekvence pasma pro vypocet intenzity sumu 
						},
					],
				},
			],
		},
	],
}

Do souboru vepsané české komentáře mají pouze dokumentační charakter. Pro vlastní konfigurační soubor prosím využijte příklad souboru v repozitáři radio-observeru.

Pokud spustíme radio-observer bez parametru definujícího konfigurační soubor, tak se pokusí si sám otevřít konfigurační soubor se stejným názvem jako binárka z home adresáře. tj. například: .nazev_stanice.json

Podobné SDR systémy klient-server

Jiné softwarové nástroje pro práci s radioastronomickými daty

FITS soubory

Možnosti použití

Radioteleskopy

Jedna z alternativ použití programu radio-observer je jeho nasazení na stanicích bras a aras, případně na jednoduchém parabolickém radioteleskopu.

Pozorování meteorů

Aplikací programu pro účel pozorování meteorů se zabývá projekt Bolidozor.

Pozorování Slunce/Jupiteru

K tomuto typu pozorování by byl třeba waterfall s nižším rozlišením, ale větší šířkou pásma (jednotky MHz), aby bylo vidět celé pásmo, kde se emise vyskytují. Toho by bylo možné dosáhnout přelaďováním přijímače. Časové rozlišení také nemusí být velké, protože jde o pomalé jevy.

Výsledkem by měl být dlouhý obrázek přes celý den s barevnými fleky odpovídajícími bouřím.

Datové výstupy

  • Obrázkové náhledy ve FITs pro generování náhledů na webu. (Webový prohlizeč by mohl vykreslovat obrázek vykreslovat a obarvovat přímo z FITS podle požadavků uživatele)
  • RAW záznamy odrazu meteoru, (jsou důležité pro pozdější analýzu záznamů)
  • K zaznamům je ve slozce metadatovy textový soubor, společný pro všechny soubory ve složce (každý soubor by měl jeden řádek metadat). Toto opatření má zabránit nutnosti otevírání velkých souborů a procházení jejich hlaviček. Tento soubor je lidsky čitelný.

Příklad názvu datových souborů TIME_NAME_TYPE.EXTE Delka celého názvu souboru je omezena na 50 znaků.

  • TIME je časový údaj s rozlišením alespoň ms, případně ns.
  • NAME je indentifikátor stanice a může mít délku do maximální povolené délky celého názvu. Název by měl obsahovat i verzi konfigurace stanice. Např. SVAK1-RADIO-1-1
  • TYPE je identifikátor dat
  • EXTE je přípona souboru, označující jeho formát (CSV, FITS)

Podmínkou přispíváni do databáze je splnění následujiciho regulárního výrazu pro název souboru:

({0-9}{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{3})([A-Z]{1})?_[A-Z0-9]{1,20}(_([A-Z0-9]{1,4}))?(\.[0-9a-zA-Z]{1,4})?

Konktrétní příklady souborů:

20140815131105154_OBSUPICE-R1_snap.fits
20140815150803480_OBSUPICE-R1_raws.fits
20140815150948269_OBSUPICE-R1_met.fits
20131215115954558_SVAKOV-R2_fb.jpg
20131215115955002_SVAKOV-R2_nomet.jpg
20140808100000_OBSUPICE-R1_meta.csv

Radio-observer aktuálně generuje výstupní soubory ve dvou formátech - csv a fits. CSV je formát použitý výhradně pro metadatové záznamy. Typický metadatový záznam vypadá následovně, významy jednotlivých sloupců jsou popsány v prvním řádku.

# file name; noise; peak f; mag.; duration
20140808110008890_OBSUPICE-R1_met.fits;0.63286;10897;1.38025;0.170667
20140808110100772_OBSUPICE-R1_met.fits;0.640167;10605.5;1.53675;0.170667
20140808110211599_OBSUPICE-R1_met.fits;0.494422;10601.1;1.45788;0.170667

Jak je vidět, tak metadatový soubor obsahuje seznam všech detekovaných meteorů a základní informace o nich. Samotné meteory jsou pak zaznamenány v datových souborech formátu FITS. Tento formát lze v případě souborů typu snap a met zobrazit ve standardním fits prohlížeči. Např.

Protože tyto datové výstupy obsahují klasická obrazová data. Rozdíl mezi oběma typy je ten že soubor snap obsahuje většinou minutový screenshot waterfallu z oblasti ve které jsou vyhledávány meteory. Soubor met pak obsahuje výřez oblasti, která časově odpovídá zaznamenanému RAWS záznamu.

RAWS fits záznam pak obsahuje surové I/Q vzorky z přijímače, tak jak přišly na vstup radio-observeru. Obsah toho souboru je tak do jisté míry přirovnatelný ke dvoukanálovému VAW souboru. Tento soubor je pak možné si prohlédnou prohlížečem pysdr-recviewer, který je součástí repozitáře PySDR.

Postup při prohlížení raw záznamů

Raw záznamy obsahují přímo vzorky signálu, pro jejich zobrazení je proto potřeba speciálnější software než při zobrazování obrázků. Zatím neexistuje webová reprezentace měřených dat, proto se data musí zobrazovat lokálně na počítači. Postup je asi takový, že se nejdříve v metadatovém souboru najde zajímavý meteor. Typicky například s velkou délkou stopy a k němu si pak stáhneme raws soubor, který otevřeme v pysdr-recviewer, což je pohodlnější prohlížeč, než většina konvenčních FITS prohlížečů. To provedeme z příkazové řádky:

Instalace programu:

$ sudo apt-get install python-numpy python-opengl python-dev libjack-jackd2-dev git
$ git clone https://github.com/MLAB-project/pysdr.git
$ cd pysdr
$ python setup.py build_ext --inplace
$ pysdr-recviewer raws.fits

Dekomprese FITS souborů

Radio-observer vytváří komprimované FITS soubory, které některé prohlížeče zatím neumí zobrazit. Je však možné tyto soubory dekomprimovat utilitou funpack. Tu použijeme následovně. Nejprve stáhneme a dekomprimujeme zdrojové soubory knihovny CFITSIO. A následně ve složce kam jsme knihovnu dekomprimovali spustíme příkazy:

  ./configure
  make
  make funpack 

Nyní by jsme měli mít ve složce spustitelnou binárku:

$ ./funpack
usage: funpack [-E <HDUlist>] [-P <pre>] [-O <name>] [-Z] -v <FITS>
more:   [-F] [-D] [-S] [-L] [-C] [-H] [-V] 
      `funpack -H' for help

Tu můžeme rovnou použít na dekompresi některého snapshotu. Např.

wget http://space.astro.cz/bolidozor/OBSUPICE/OBSUPICE-R1/meteors/2014/10/03/08/20141003080259247_OBSUPICE-R1_met.fits
./funpack -v 20141003080259247_OBSUPICE-R1_met.fits.fz 
20141003080259247_OBSUPICE-R1_met.fits.fz -> 20141003080259247_OBSUPICE-R1_met.fits

Nyní máme ve složce dekomprimovaný soubor 20141003080259247_OBSUPICE-R1_met.fits, který lze zobrazit i v prohlížeči JS9.

Přenos událostí

Události jsou v radio-observeru posílány přes systém MIDI.

MIDI zároveň umožňuje posílání synchronizačních značek.

Instalace qjackctl

Qjackctl nástroj pro spojování jack přípojek.

sudo apt-get install libqt4-core libqt4-gui libqt4-dev
svn co http://svn.code.sf.net/p/qjackctl/code/trunk qjackctl-svn
cd qjackctl-svn
make -f Makefile.svn
./configure --enable-jack-version
make
sudo make install

Případná rekompilace se provede přes

make clean
make

Nyní by mělo být možné qjackctl spustit. Pro jeho správnou funkci je ještě potřeba v jeho konfiguraci změnit cestu k jackd serveru na:

Pokud se při spuštění vyskytne chyba:

$ qjackctl 
qjackctl: symbol lookup error: qjackctl: undefined symbol: JACK_METADATA_PRETTY_NAME

Tak nejsou ze systému ještě odinstalované všechny původní knihovny.

Instalace Patchage

Patchage je nástroj na spojování Jack přípojek podobně jako qjakctl.

sudo apt-get install libglibmm-2.4-dev libgtkmm-2.4-dev libganv-dev
svn co http://svn.drobilla.net/lad/trunk/patchage
./waf configure

Informace pro vývojáře

cs/radio-observer.1414502283.txt.gz · Poslední úprava: 2014/10/28 13:18 (upraveno mimo DokuWiki)