SkillAgentSearch skills...

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:

Install / Use

/learn @filipsPL/Autowx2
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

autowx2

[!CAUTION] Please be advised that NOAA-15 and NOAA-19 have been decommissioned. NOAA-15 was decommissioned on August 19, 2025 at 20:37 UTC and NOAA-19 was decommissioned on August 13, 2025 at 16:55 UTC. For additional details, please click here. So, in summary, now all NOAA-11, -12, -14, -15, -16, -17, -18, -19 are decommissioned.

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

<!-- TOC depthFrom:1 depthTo:2 withLinks:1 updateOnSave:1 orderedList:0 --> <!-- /TOC -->

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:

  • high modularity - all recording and processing are done by separate scripts (modules? plugins?), which can be easily configured to meet one's needs. The main module (called noaa) is devoted to the capture of weather data from the NOAA satellites, but with other modules (i.e., ISS voice) one can record voice communication from the satellite (tested for ISS :tada: !).
  • configurability - most (all?) variables can be set up in the config file. For both: the main program and the NOAA module.
  • flexibility - it can be set up to record satellite transmissions based on the passing predictions as well as fixed time recordings, configured via cron-like syntax.
  • simplicity (not sure if this is true). List of observed satellites is defined in one place only (the config file) and can be easily modified.
  • time efficiency - it can perform sdr-related tasks to do between scheduled transmissions (see below)
  • other features include: autocallibration between recordings with kalibrate-rtl; prioritization of recordings (eg., when passing time overlaps, choose one with a higher priority); generation of the passing/recording table for the next few hours (static html + image);
<!--- [![ghit.me](https://ghit.me/badge.svg?repo=filipsPL/autowx2)](https://ghit.me/repo/filipsPL/autowx2) -->

Updates release version

autowx2 was tested and successfully applied to schedule recordings of:

  • [x] NOAA weather satellites
  • [x] METEOR-M2 weather satellite :globe_with_meridians:
  • [x] ISS transmissions (voice, SSTV)
  • [x] Fox-1B satellite transmissions
  • [x] Fixed-time radiosondes (meteo baloons :balloon:) observations (with radiosonde_auto_rx)
  • [x] Fixed-time FM recordings

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:

  • [x] APRS decoding (just log or act as a iGate)
  • [x] ADS-B with dump1090, heatmap plotting
  • [x] Radiosonde monitoring with radiosonde_auto_rx

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

  • usb dvbt dongle, like RTL2832 DVB-T tuner
  • antenna good enough to capture the signal of your interest. For antenna dedicated for capturing NOAAs telemetry, see a simple 137 MHz V-Dipole, for example. If you want to use the script also for other applications (capturing APRS signals, using dump1090 for tracking airplanes), any broadband antenna should be good.

System requirements

  • python 3 - I recommend conda environment
  • bash (sh, csh will be also OK)
  • installed and working DVB-T dongle; to make this long story short:
  • adding the following statement to /etc/udev/rules.d/20.rtlsdr.rules:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="adm", MODE="0666", SYMLINK+="rtl_sdr"
  • blacklisting the dvb_usb_rtl28xxu module:
echo "blacklist dvb_usb_rtl28xxu" >>  /etc/modprobe.d/rtl-sdr-blacklist.conf
  • for more details, see here
  • for installation script on the Debian, Debian-like systems and Raspberry Pi, see the installation script :warning: use with care! inspect and tune before execution!

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
  1. 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
  1. If you are fine with the above script, run it with bash install.sh. :warning: use at your own risk!
  2. Edit the main config file autowx2_conf.py
  3. Edit your system's crontab file and add the bin/update-keps.sh script to it, eg:<br/>0 4 * * * path/to/autowx2/bin/update-keps.sh 1> /dev/null 2>/dev/null<br/>you can also trigger it manually from time to time.
  4. 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).

  • for the satellites, three values must be set:
    • the satellite name (eg., 'NOAA 18'), must be the same as one found in TLE file
    • freq - the frequency to listen at
    • processWith - the path to the script/module to run during the transit
    • priority - priority of the recording (if two or more overlaps); the lower number - the higher priority
  • for the fixed time recordings:
    • the id of the entry (any arbitrary string is ok)
    • freq - the frequency to listen at
    • processWith - the path to the script/module to run
    • fixedTime - the fixed time of recording in the cron style.
    • fixedDuration - the duration of the recording
    • priority - priority of the recording (if two or more over
View on GitHub
GitHub Stars80
CategoryDevelopment
Updated4d ago
Forks17

Languages

Python

Security Score

85/100

Audited on Apr 3, 2026

No findings