APTDecoder

APTDecoder Julia package repo.

APTDecoder.decodeMethod
datatime, (channelA,channelB), data = decode(y,Fs)

Decode the APT image in a time series y defined at a frequency Fs (in Hz). datatime is the time in seconds counting from the beginning of the recording. channelA and channelB are arrays representing the data from the two different channels (A and B). data is raw data as an array including channel A and B, as well sync markers and telemetry.

Example

using FileIO
using APTDecoder

wavname = "gqrx_20190804_141523_137100000.wav"
y,Fs,nbits,opt = load(wavname)
datatime,(channelA,channelB),data = APTDecode.decode(y,Fs)
source
APTDecoder.georeferenceMethod
lon,lat = APTDecoder.georeference(channel,satellite_name,datatime,starttime;
                      eop = nothing,
                      tles = get_tle(:weather))

Compute longitude lon and latitude lat of the NOAA APT satellite data channel using the orbit of the satellite with the name satellite_name (generally "NOAA 15", "NOAA 18", "NOAA 19").

datatime and channel (channel A or channel B) are returned by the function APTDecoder.decode.

The argument starttime is the date (DateTime) of beginning of the capture. The optional parameter tles are the two-line elements (TLEs) data (download if necessary).

The optional parameter eop are the Earth Orientation Parameters (see https://juliaspace.github.io/SatelliteToolbox.jl for more information)

source
APTDecoder.georeferenceMethod
plon,plat,data = APTDecoder.georeference(pngname,satellite_name,channel,...)

Compute longitude and latitude of the NOAA APT satellite image in pngname using the orbit of the satellite with the name satellite_name (generally "NOAA 15", "NOAA 18", "NOAA 19"). The file name pngname should have the followng structure: string_date_time_frequency.png like gqrx_20190811_075102_137620000.png. Date and time of the file name are in UTC. The parameter channel is 'a' or 'b' for the two transmitted wave-length.

Optional arguments are starttime for the date (DateTime) of capture (deduced from the filename per default) and tles for the two-line elements (TLEs) data (download if necessary).

Example:

satellite_name = "NOAA 15"
pngname = "gqrx_20190811_075102_137620000.png";
channel = 'a'
APTDecoder.georeference(pngname,satellite_name,channel)
source
APTDecoder.get_tleMethod

tles = get_tle(:weather)

Load the two-line elements (TLEs) data from https://www.celestrak.com for weather satellites.

source
APTDecoder.makeplotsMethod
makeplots(wavname,satellite_name)

Decodes the APT signal in wavname as recorded by gqrx using wide FM-mono demodulation. The file name wavname should have the followng structure: string_date_time_frequency.wav like gqrx_20190811_075102_137620000.wav. Date and time of the file name are in UTC (not local time). satellite_name is the name of the satellite (generally "NOAA 15", "NOAA 18", "NOAA 19").

Example:

import APTDecoder

wavname = "gqrx_20190825_182745_137620000.wav"
APTDecoder.makeplots(wavname,"NOAA 15")
source