====== Systém pro upload měřených dat ze stanic ====== Pro upload naměřených dat ze stanic se využívá python program [[https://github.com/bolidozor/data-uploader|data-uploader]]. Program lze použít pro upload dat projektů Bolidozor a [[http://wiki.ionozor.eu|Ionozor]]. Upload na centrální server probíhá přes SSH protokol. Zabezpečení přenosu je pomocí ssh-klíče. Program při nahrávání dat na server kontroluje celistvost přesunutého souboru pomocí kontrolních součtů a zároveň předá informaci do indexační databáze [[cs:RTbolidozor|RTbolidozoru]] o novém souboru na serveru. Celkově řeší tyto úlohy: * Roztřídění [[cs:convention|dat do složek]] * Upload dat na server [[http://space.astro.cz/bolidozor/|space.astro.cz]] * Kontrola volného místa na disku (zatím nevyřešeno) Celý skript je připraven pro fungování s [[cs:radio-observer|radio-observerem]] program se proto spouští s parametrem cesty ke konfiguračnímu souboru [[cs:radio-observer|radio-observeru]]. například takto: ./repos/data-uploader/dataUpload.py ~/bolidozor/station/Bolidozor.json ======Instalace====== Zdrojové soubory jsou umístěny na Githubu [[https://github.com/bolidozor/RMDS-data-uploader|bolidozor/data-uploader]]. Data-uploader vyžaduje tyto závislosti: sudo apt install python-paramiko Pomocné knihovny: git clone https://github.com/MLAB-project/python-mlab-utils.git cd python-mlab-utils/ sudo python setup.py install develop Skript stáhnete pomocí: git clone https://github.com/bolidozor/data-uploader.git cd data-uploader Pak je uz jenom potreba mit spravne klicove vyrazy v Bolidozor.json ==== Konfigurace ==== Pro správné fungování data-uploaderu se musí do konfiguračního souboru radio-observeru přidat následující parametry: "project": "bolidozor", "project_home_folder": "/home/odroid/bolidozor/station/", "storage_hostname": "space.astro.cz", "storage_username": "obsjaromer", "storage_stationpath": "/storage/bolidozor/", "storage_protocol": "ssh", ==== Omezení datového toku ==== V některých případech, obvykle hvězdárnách s pomalým datovým připojením je vhodné omezit rychlost uploadu dat ze stanice, aby se dostalo i na ostatní uživatele sítě. Data uploaderu lze šířku přenosového pásma omezit programem trickle: trickle -u 200 ./dataUpload.py ~/bolidozor/station/Bolidozor.json Funkci můžeme ověřit například programy bmon nebo iftop sudo apt-get install bmon ==== Postup aktualizace data-uploaderu z RMDS-data-uploaderu==== cd ~/repos/ mv RMDS-data-uploader data-uploader cd ~/repos/data-uploader/ git pull cd ~/repos/station-supervisor/ git pull sudo apt install python-paramiko Do konfiguračního souboru přidat tyto parametry před ''"frontend": "tcp_raw",'': "project": "bolidozor", "project_home_folder": "/home/odroid/bolidozor/station/", "storage_hostname": "space.astro.cz", "storage_username": "<< uzivatel >>", "storage_stationpath": "/storage/bolidozor/", "storage_protocol": "ssh", "HWversion": "RMDS02D", "observatory": [ { "name": "svakov", "owner.login": "kaklik", // GitHub login "lat": 49.260658, "lon": 14.691537, "alt": 445.0, "location": "Svakov", //City, local name } ], ====Rozřazení dat do složek==== rozřazování probíhá na základě názvu původního souboru. Výsledná struktura pak vypadá následovně: /station/typ dat/rok/měsíc/den/[hodina]/soubor.záznamu Tato struktura ctí [[cs:convention|standardy sítě Bolidozor]]. Při rozřazování dat jsou meta-datové .csv záznamy z aktuální hodiny zachovány na původním místě a pouze překopírovány na úložiště kvůli možnosti dalšího zápisu do tohoto souboru. ====Upload dat na server==== Upload na centrální server je vyřešeno voláním scp a žádostí o kontrolní součet MD5 na straně datového serveru. Skript každé 2 minuty zkontroluje připojeni k internetu (dostupnost space.astro.cz) a v případě autentizace se spustí synchronizace dat. Synchronizace probíhá postupně ve čtyřech krocích: - Synchronizují se náhledy spektra (snapshoty) - Synchronizují se meta-datové soubory - Synchronizují se konfigurační soubory stanice - Synchronizují se záznamy meteorů RAW