Uživatelské nástroje

Nástroje pro tento web

Překlady této stránky?:

cs:radio-observer

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 libcfitsio-dev libjack-jackd2-dev clang build-essential checkinstall
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. Dále pomocí nástroje checkinstall vytvoříme instalační balík, který rovnou nainstalujeme do systému. Na dotazy utility odpovídáme doporučenou volbou.

sudo checkinstall --pkgname radio-observer --pkgversion 0.5 make install

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

Parametry v konfiguračním souboru

  • jitter_time - doba v sekundách mezi událostmi, potřebná k tomu, aby dvě události byly chápaný jako nesouvisející jevy.
  • advance_time - délka záznamu před a po detekované události.

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. (Aby webový prohlížeč mohl vykreslovat obrázek a obarvovat jej podle požadavků uživatele)
  • RAW záznamy odrazu meteoru, (Surová data jsou důležitá pro pozdější analýzu záznamů)
  • Ke všem záznamům je v jiné složce metadatový textový soubor, který je společný pro všechny datové výstupy. (každý typ výstupu má mít jeden řádek metadat). Toto opatření má zabránit nutnosti otevírání velkých souborů z datového úložiště a procházení jejich hlaviček. Místo toho budou stahovány a prohledávány jen metadatové záznamy. Metadatový soubor musí být lidsky čitelný.

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ř.

Také je pro účely rychlého prohlížení lidmi z Bolidozoru vyvíjen generátor webových náhledů, pojmenovaný jako HTFITS.

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í subprojektu 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  autoconf
git clone git://git.code.sf.net/p/qjackctl/code qjackctl-code
cd qjackctl-code
make -f Makefile.git
./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: /usr/local/bin/jackd

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.

sudo apt-get --purge remove libjack-jackd2-0 libjack-jackd2-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad

Po odinstalaci knihoven je potřeba znovu přeložit všechny související aplikace, jako jackd, radio-observer atd.

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.txt · Poslední úprava: 2017/12/10 22:29 (upraveno mimo DokuWiki)