filipsPL / autowx2

The program for scheduling recordings and processing of the satellite and ground radio transmissions (like capturing of the weather APT images from NOAA satellites, voice messages from ISS, fixed time recordings of WeatherFaxes etc.) :earth_africa: :satellite:
78 stars 16 forks source link
antenna capture noaa noaa-satellites satellite weather weather-data

autowx2

autowx2 is a set of programs and scripts for schedule satellite and ground recordings with SDR dongle. Bundled plugins include scripts for processing weather APT images from NOAA or METEOR satellites, ISS voice communication recordings and some others.

image image

Introduction

This is a rewritten and fine-tuned version of tools for the automatic weather satellite images capturing. Most directly it bases on cyber-atomus' autowx and my fork of autowx. The main differences between this project autowx2 and previously created tools:

badge-travis FOSSA Status Updates release version

autowx2 was tested and successfully applied to schedule recordings of:

autowx2 can be easily configured to do other useful things (with SDR dongle) while waiting for the next scheduled transmissions. Tested and available "plugins" include:

Used libraries and acknowledgements

These scripts may be used by the autowx2 in the free time, e.g., to track airplanes, capture APRS signals etc:

Hardware requirements

System requirements

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="adm", MODE="0666", SYMLINK+="rtl_sdr"

Installation

:warning: Tested for x86, amd64 and Raspberry Pi

x86 and amd64

  1. Check the section hardware and system requirements
  2. Fetch sources: git clone --depth 1 git@github.com:filipsPL/autowx2.git
    • alternatively: git clone --depth 1 https://github.com/filipsPL/autowx2.git
  3. Inspect the script install.sh, modify if needed. In most cases, it should work out of the box (for debian and debian-like systems; tested on debian, ubuntu, mint and travis debian like linux). Modify wxtoimg section to fetch sources that matches your architecture.
    • uncomment section pip or conda depending on your preferences of installing python packages
  4. If you are fine with the above script, run it with bash install.sh. :warning: use at your own risk!
  5. Edit the main config file autowx2_conf.py
  6. Edit your system's crontab file and add the bin/update-keps.sh script to it, eg:
    0 4 * * * path/to/autowx2/bin/update-keps.sh 1> /dev/null 2>/dev/null
    you can also trigger it manually from time to time.
  7. Run the main program autowx2.py, wait for the next transit and marvel at the beautiful images (or other recordings)

Configuration files and other programs

Files, subprograms and configs

autowx2.py

The main program to do all calculation, pass predictions and launch modules.

autowx2.py          - the main program, the governor of all other programs and scripts
autowx2_conf.py     - the config file

autowx2_conf.py

The config file of the main program, may be used also by the decoding modules. It is used by te noaa module.

satellitesData - the dictionary (in the python style) of satellites to be observed and processed (eg., weather satellites) OR fixed times for recordings (eg., listening to the WeatherFax transmissions).

Sample satellitesData dictionary:

satellitesData = {
    'NOAA-18': {
        'freq': '137912500',
        'processWith': 'modules/noaa/noaa.sh',
        'priority': 1},
    'NOAA-15': {
        'freq': '137620000',
        'processWith': 'modules/noaa/noaa.sh',
        'priority': 1},
    'NOAA-19': {
        'freq': '137100000',
        'processWith': 'modules/noaa/noaa.sh',
        'priority': 1},
    'ISS': {  
      # voice channel
        'freq': '145800000',
        'processWith': 'modules/iss/iss_voice_mp3.sh',
        'priority': 5},
    'PR3_NEWS': {
        'freq': '98988000',
        'processWith': 'modules/fm/fm.sh',
        'fixedTime': '0 7-23 * * *',
        'fixedDuration': 300,
        'priority': 2},
    'LILACSAT-1': {
        'freq': '436510000',
        'processWith': 'modules/iss/iss_voice_mp3.sh',
        'priority': 3},
    'Radiosonde': { # twice a day watch for meteo balloons
        'freq': '98796500',
        'processWith': 'modules/radiosonde/run_radiosonde_scanner.sh',
        'fixedTime': '20 0,12 * * *',
        'fixedDuration': 12000,
        'priority': 1},

}

genpasstable.py

A utility to generate transit plan for the next few hours. Two elements are generated:

image

bin directory

Various auxiliary programs.

aprs.sh             - aprs script to listen to and decode APRS data; to be run in free time
pymultimonaprs.sh   - aprs iGate launcher (pymultimonaprs must be installed)
kalibruj_initial.sh - calibrating script - initialization
kalibruj.sh         - calibrating script - getting the drift
update-keps.sh      - keplers updated; can/should be run from cron
crontab/            - proposal of scripts to be run periodicaly

modules

Modules/plugins to capture various types of data. Can be customized by any type of script (here bash scripts were used in most cases).

fm         - sample module to record FM radio to mp3 file
iss        - module for capturing voice data from ISS and others. Tested and works for ISS :tada:
noaa       - module for capturing weather data from NOAA satellites (see below)
radiosonde - module for running the radiosonde scanner (to be installed separately)
meteor-m2    - module for running the meteor m2 capturing and processing programm

/modules/noaa

Module for capturing weather data from NOAA satellites.

noaa.sh             - the main module file (bash) - launches below files:
noaa_record.sh      - recordinf of a sound via rtl_fm
noaa_process.sh     - processing of the recorded wav file, generates maps etc.

_loop_noaa_gallery.sh - generate gallery
noaa_gallery.sh       - generate gallery

tests               - directory with a test data

/modules/iss

Generic module to capture various audio and raw packages (e.g., from ISS, but not only):

iss_voice_iq.sh   - record audio in iq/raw format
iss_voice_mp3.sh  - record audio in mp3 format
iss_voice_wav.sh  - record audio in wav format

/modules/meteor-m2

var directory

Variable data.

dongleshift.txt     - current dongle shift
nextpass.*          - list and plot of the next passes
tle/                - directory with tle data
flask/              - flask webserver stuff (see flask documentation):
   static/          - css, js
   templates/       - html template(s)
www/                - stuff for static webpages; templates and output data
   css/             - css, js

Static web pages

Modules may generate static webpages - snippets (see: noaa noaa_gallery.sh script). Then, the bin/gen-static-page.sh script collects these snippets and build a static webpage with all the data.

static web page

The web page is generated into /var/www/ (the default location).

Webserver

autowx2 is equipped with a simple flask webserver showing what is going on - displaying current logs (with some limitations, i.e., not showing logs of external programs - solution needed) and updated pass list.

static web page

The default address is http://localhost:5010/ (the port may be changed in the config file via webInterfacePort variable)

Working instances of autowx2

If you have a working and publically accesible autowx2 instance, please share with us!

Issues? Comments? Suggestions?