Automating LRPT
Home Page Up ATOVS Reader AVHRR Manager BUFR Viewer CHLO Viewer CMA Viewer DDE/SDR# add-on DWDsat HRPT Viewer GeoSatSignal GOES ABI Manager GOES-15 netCDF GRIB Viewer Ground Map HDF Viewer HRPT Reader HRPT samples Kepler Updater Automating LRPT LRPT Processor LRPT signal Metop LSA Viewer Metop Manager MODIS L1 viewer MSG Data Manager NOAA HDF Viewer SatSignal Sea-Ice & SST Viewer Sentinel-2 Sentinel-3 WXtrack

 

Automating Meteor-M N2 reception

I recently started playing with Meteor-M N2 reception.  The lack of country boundaries was annoying, so I tried writing my own program to overlay boundaries, but it wasn't as accurate as I would like.  Then I mentioned this to Douglas Deans (@GM4VZY on Twitter) who pointed me to this site  http://happysat.nl/Setup_Meteor/Setup.html  where all is explained, including completely automated reception.  However, like others I found the information rather overwhelming at first scan, and it took a little while to get it all working.  And the day after it stopped, after I made one small change.  Arrgh!  Working now, though.  Apply the well-known advice - "If it works, leave it!".

These are my own notes, with my own errors.  Please help me to correct them!

 

Hardware

You need an antenna, a 137 MHz SDR receiver compatible with SDR#, and a PC.  With PCs these days I suggest at least 8 GB memory and a quad-core processor.  All the below is based on Windows 10.

  

Software

SDR#, the Meteor plug-in, the Tracking DDE Client plug-in, tracking software such as WXtrack (or Orbitron), LRPT Decoder, MeteorGIS.  All free (although there are extra facilities in the registered version of WXtrack).  Ensure that you can use your dongle with SDR# to receive on 137.1 MHz.   Set up the DDE plug-in according to the instructions on the HappySat site.

  

Processing operation - the steps involved

I found this one of the more poorly explained aspects.  It's not complicated, and perhaps I simply haven't yet found the best Web site.

  1. WXtrack provides a DDE output which says whether the Meteor-M N2 satellite is visible or not.  You should also update your Keplers at least ever week so that the pass times are reasonably accurate.  
    Note that the Doppler-shifted frequency from the DDE is not used, just the satellite name and elevation.  I think this correct, but I don't see how the decoder computes the Doppler correction otherwise.
     
  2. When the DDE output from WXtrack shows that the elevation threshold (set in the Tracking DDE client plug-in) is exceeded, it starts the receive function in SDR#, and turns on the MeteorGIS program.  This starts a command script (.BAT file) which in turn starts the MeteorGIS program, which looks for a lock indication from the Meteor Demodulator plug-in.  At this point you should see the waterfall start scrolling in SDR#.
     
  3. As the signal level and SNR increases, eventually the Meteor Demodulator plug-in will lock, and communicate this via the TCP link to the  MeteorGIS program.
     
  4. Once MeteorGIS recognises that the Meteor Demodulator is locked, it will start the LRPT Decoder program, with parameters set within the (rather complex) MeteorGISconfigurator program.
     
  5. You will then see the incoming signal decoded in real-time, as it comes in.
      
  6. Once lock is lost, the decoding will continue.
      
  7. When the satellite drops below the elevation threshold, this is communicated to the LRPT Decoder, which the saves its resulting image files.
      
  8. The LRPT Decoder generates a list of Ground Control Points (.gcp files), giving the predicted sub-satellite points for each image line, and for each sensor location along the scan.  To save computation time and file size, only each tenth line and tenth pixel are processed.  Somehow this information is saved, either by the LRPT Decoder program or by MeteorGIS.  It's visible as plain text in the panel there the 125 image has been created, in the Status tab.
     
  9. The MeteorGIS program can then combine multiple images into geo-located data such as the image at the start of this page.  You will see lots of operations in the command window, and this can take several minute.

While waiting for a pass....


 
  

Configuring the software

Nightly restarts

WXtrack must be running, and if your PC runs continuously, you need to stop and restart WXtrack and SDR# over midnight, e.g. at 01;20 UTC.  You can create a script to do this and schedule it to run at a convenient time.  For example:
 

REM Job to restart WXtrack and SDRsharp overnight

TaskKill /IM SDRSharp.exe
waitfor neverhappens /t 15

TaskKill /IM SDRSharp.exe
waitfor neverhappens /t 15

TaskKill /IM WXtrack.exe
waitfor neverhappens /t 10

start "Running WXtrack" /D C:\Tools\SatSignal\WXtrack\ WXtrack.exe
waitfor neverhappens /t 15

start "Running SDR#" /D C:\Tools\sdrsharp-x86-1732\ SDRSharp.exe

EXIT


WXtrack

Set WXtrack so that has just Meteor-M 2 is in the active list, and that orbit prediction is for 7 days ahead.  Tracker set to CX6DD WiSPDDE Client, and check the DDE Uppercase and DDE always options.  I suggest Minimum pass duration be set to 150 seconds and 5 degrees elevation.

In the screen-shot below I have also included NOAA-19, as that transmits on the same 137.1 MHz as Meteor-M N2 and it is useful to know whether there might be a conflict.  As I'm using the registered version of WXtrack the auto-switch and satellite prioritising are active but not used in this application.   I've included a screen-shot while waiting for a pass.  Note the Large Text option designed for reading from a distance, the font and location are adjustable to suit your requirements, and I set the program's map origin to +90 degrees so that my region of interest is to the left of cenrtre.  Mercator projection is used here.

  

 

DDE plug-in

Set up the DDE plug-in according to the instructions on the HappySat site.  THere are two items to set, the Config which defines the DDE comminucation parameters, and the Options which define what satellite to expect, and what happens at start and end of the pass.  The effect of the skinning of SDR# means that the labels may be difficult to read, at least until the plug-in is updated.  Style over substance?


 

DDE Config

First I suggest setting the DDE source - here set to WXtrack:


 

DDE Options

With this extended DDE plug-in there is a scheduling option which requires configuring.  I set the required elevation to 6.9 degrees as I do get a lot of interference (see the SDR# picture!) so my usable passes are shorter than might be expected.  These are command which work.  There's nothing after the "start_program" line it's just an artefact of the scroll-box.  I haven't yet configured for Meteor-M2-2 as the satellite was in a non-operational state at the time, and it was difficult enough to get one satellite working!  I did include a M2_Decoder_ini_Line, although MeteorGIS generates or modifies the .INI file for the LRPT Decoder.  So any changes you make to the .INI file there may, or may not, get overwritten.

The settings above will start the MeteorGIS program, configured as mentions on the HappySat web site.  You could instead start the LRPT Decoder program if you don't need all the processing offered by MeteorGIS, or even start no program if you want to process the .S files yourself.

 

Meteor plug-in

Be sure that the TCP Socket box is checked, without it the decoder won't get the received data from SDR#.  You can check the File button as well if you want to save the .S files for further processing.


 

MeteorGIS program

There are a large number of options to the MeteorGIS program, so many that a special  MeteorGIS_Configurator.exe  program is also supplied.  No different to a Setup tab, I suppose.  There is a zipped copy of the .INI from my own working system here, and it should be renamed default.ini - ensure your Explorer is set to show file extensions, and that after download you right-click, Properties, Unblock the file before use.  Please note that the file is rewritten during use of the program.  

You will see many of the options in the two .INI files I supply are set by the configurator program.  Directory structure will obviously be different.

Aside: With an SSD system disk I would normally recommend a separate HDD data disk, however that's not possible with the system I am using.

After editing the configuration, be sure to save it, otherwise your changes will be lost!
 

LRPT Decoder program

The LRPT decoder .INI file is also rewritten by the MeteorGIS program, so I can supply a zipped copy of my own .INI file for guidance.  Again you will recognise the elements which can be set by the automatic running of the MeteorGIS.exe program.
  

Directory structure

There is nothing fixed about the directory structure, but I've tried to stick to that used on the HappySat web page.  I found the information there a little ambiguous possibly as the result of typos or changes in preferred structure which happened over time.  Remember the Tree command?  And Tree /F?  I've provided a tree listing and an edited tree /F with the files listed.  It may help when studying the .INI files.

C:\Meteor\
├───Images-M2
│   └───2020
│       └───01
├───MeteorGIS
│   └───file_to_put_in_M2_LRPT_Decoder_folder
├───out-images-M2
└───S_files
C:\Meteor\
│   M-N2.2_cfg.jpg
│   M-N2_cfg.jpg
│   M2-2.txt
│   M2.2_tle.txt
│   M2_LRPT_Decoder.exe
│   M2_LRPT_Decoder.ini
│   M2_LRPT_Decoder.txt
│   M2_LRPT_Decoder.zip
│   M2_LRPT_Decoder_for_s.ini
│   M2_LRPT_Decoder_georef.ini
│   M2_LRPT_Decoder_man-m2-2.ini
│   M2_LRPT_Decoder_man-m2.ini
│   M2_LRPT_Decoder_TCP-m2-2.ini
│   M2_LRPT_Decoder_TCP-m2.ini
│   M2_LRPT_Decoder_TCP_80K-m2-2.ini
│   M2_tle.txt
│   run-geo.bat
│   run.bat
│   SGP4.dll
│   V53.jpg
│
├───Images-M2
│   │   comp-UTM-2020-1-19-9-49-45-771_IR.jpg
│   │   comp-UTM-2020-1-19-9-49-45-771_IR_rainfall.jpg
│   │   comp-UTM-2020-1-19-9-49-45-771_RGB.jpg
│   │   comp-UTM-2020-1-19-9-49-45-771_RGB_rainfall.jpg
│   │   comp-UTM-2020-1-19-9-49-45-771_thermal.jpg
│   │   thumb_comp-UTM-2020-1-19-9-49-45-771_IR.jpg
│   │   thumb_comp-UTM-2020-1-19-9-49-45-771_IR_rainfall.jpg
│   │   thumb_comp-UTM-2020-1-19-9-49-45-771_RGB.jpg
│   │   thumb_comp-UTM-2020-1-19-9-49-45-771_RGB_rainfall.jpg
│   │   thumb_comp-UTM-2020-1-19-9-49-45-771_thermal.jpg
│   │   thumb_UTM-2020-1-19-8-10-33-710_IR.jpg
│   │   thumb_UTM-2020-1-19-8-10-33-710_IR_rainfall.jpg
│   │   thumb_UTM-2020-1-19-8-10-33-710_RGB.jpg
│   │   thumb_UTM-2020-1-19-8-10-33-710_RGB_rainfall.jpg
│   │   thumb_UTM-2020-1-19-8-10-33-710_thermal.jpg
│   │   thumb_UTM-2020-1-19-9-49-45-771_IR.jpg
│   │   thumb_UTM-2020-1-19-9-49-45-771_IR_rainfall.jpg
│   │   thumb_UTM-2020-1-19-9-49-45-771_RGB.jpg
│   │   thumb_UTM-2020-1-19-9-49-45-771_RGB_rainfall.jpg
│   │   thumb_UTM-2020-1-19-9-49-45-771_thermal.jpg
│   │   UTM-2020-1-19-8-10-33-710_IR.jpg
│   │   UTM-2020-1-19-8-10-33-710_IR_rainfall.jpg
│   │   UTM-2020-1-19-8-10-33-710_RGB.jpg
│   │   UTM-2020-1-19-8-10-33-710_RGB_rainfall.jpg
│   │   UTM-2020-1-19-8-10-33-710_thermal.jpg
│   │   UTM-2020-1-19-9-49-45-771_IR.jpg
│   │   UTM-2020-1-19-9-49-45-771_IR_rainfall.jpg
│   │   UTM-2020-1-19-9-49-45-771_RGB.jpg
│   │   UTM-2020-1-19-9-49-45-771_RGB_rainfall.jpg
│   │   UTM-2020-1-19-9-49-45-771_thermal.jpg
│   │
│   └───2020
│       └───01
│               2020-1-19-11-30-58-134.70
│               2020-1-19-11-30-58-134.vcdu
│               2020-1-19-11-30-58-134_122.jpg
│               2020-1-19-11-30-58-134_122.jpg.gcp
│               2020-1-19-11-30-58-134_122.jpg.stat
│               2020-1-19-11-30-58-134_64.bmp
│               2020-1-19-11-30-58-134_64.stat
│               2020-1-19-11-30-58-134_65.bmp
│               2020-1-19-11-30-58-134_65.stat
│               2020-1-19-11-30-58-134_68.bmp
│               2020-1-19-11-30-58-134_68.stat
│               2020-1-19-8-10-33-710.70
│               2020-1-19-8-10-33-710.vcdu
│               2020-1-19-8-10-33-710_122.jpg
│               2020-1-19-8-10-33-710_122.jpg.gcp
│               2020-1-19-8-10-33-710_122.jpg.stat
│               2020-1-19-8-10-33-710_64.bmp
│               2020-1-19-8-10-33-710_64.stat
│               2020-1-19-8-10-33-710_65.bmp
│               2020-1-19-8-10-33-710_65.stat
│               2020-1-19-8-10-33-710_68.bmp
│               2020-1-19-8-10-33-710_68.stat
│               2020-1-19-9-49-45-771.70
│               2020-1-19-9-49-45-771.vcdu
│               2020-1-19-9-49-45-771_122.jpg
│               2020-1-19-9-49-45-771_122.jpg.gcp
│               2020-1-19-9-49-45-771_122.jpg.stat
│               2020-1-19-9-49-45-771_64.bmp
│               2020-1-19-9-49-45-771_64.stat
│               2020-1-19-9-49-45-771_65.bmp
│               2020-1-19-9-49-45-771_65.stat
│               2020-1-19-9-49-45-771_68.bmp
│               2020-1-19-9-49-45-771_68.stat
│
├───MeteorGIS
│   │   About_.s.txt
│   │   ChangeLog.txt
│   │   CLUT.png
│   │   default.ini
│   │   default.ini.bak
│   │   defaultENG_configurator.mgis
│   │   EGIS.ShapeFileLib.dll
│   │   geomutil_lib.dll
│   │   geomutil_libx64.dll
│   │   LemonMilk.otf
│   │   logs.txt
│   │   manual.ini
│   │   manual.ini.bak
│   │   Manual_M2_GIS.bat
│   │   MeteorGIS-default.ini.zip
│   │   MeteorGIS.exe
│   │   MeteorGIS_Configurator.exe
│   │   MeteorGIS_x86.exe
│   │   ne_10m_geography_regions_elevation_points.dbf
│   │   ne_10m_geography_regions_elevation_points.shp
│   │   ne_10m_geography_regions_elevation_points.shx
│   │   ne_110m_graticules_10.dbf
│   │   ne_110m_graticules_10.shp
│   │   ne_110m_graticules_10.shx
│   │   ne_50m_admin_0_boundary_lines_land.dbf
│   │   ne_50m_admin_0_boundary_lines_land.shp
│   │   ne_50m_admin_0_boundary_lines_land.shx
│   │   ne_50m_coastline.dbf
│   │   ne_50m_coastline.shp
│   │   ne_50m_coastline.shx
│   │   ne_50m_lakes.dbf
│   │   ne_50m_populated_places.dbf
│   │   ne_50m_populated_places.shp
│   │   ne_50m_populated_places.shx
│   │   ne_50m_rivers_lake_centerlines.dbf
│   │   passList.txt
│   │   RAIN.png
│   │   README.txt
│   │   thermal.ini
│   │   therm_pal.jpg
│   │   watermark.txt
│   │
│   └───file_to_put_in_M2_LRPT_Decoder_folder
│           SGP4.dll
│
├───out-images-M2
├───safe
│       2020-1-18-8-30-5-204_125.bmp
│       2020-1-18-8-30-5-204_125.bmp.stat
│       2020-1-18-8-30-5-204_64.bmp
│       2020-1-18-8-30-5-204_64.stat
│       2020-1-18-8-30-5-204_65.bmp
│       2020-1-18-8-30-5-204_65.stat
│       2020-1-18-8-30-5-204_68.bmp
│       2020-1-18-8-30-5-204_68.stat
│       2020_01_18_LRPT_08-27-01.s
│
└───S_files
        2020_01_17_LRPT_08-46-52.s
        2020_01_17_LRPT_10-27-20.s
        2020_01_17_LRPT_18-37-36.s
        2020_01_17_LRPT_20-17-36.s
        2020_01_18_LRPT_08-27-01.s
        2020_01_18_LRPT_10-07-19.s
        2020_01_18_LRPT_11-48-28.s
        2020_01_18_LRPT_18-18-08.s
        2020_01_18_LRPT_19-57-27.s
        2020_01_18_LRPT_21-40-59.s
        2020_01_19_LRPT_08-07-14.s
        2020_01_19_LRPT_09-43-06.s
        2020_01_19_LRPT_09-47-20.s
        2020_01_19_LRPT_11-28-17.s
 

 
Copyright © David Taylor, Edinburgh   Last modified: 2020 Jan 30 at 08:45