             SatSignal - Weather Satellite Decoder for Windows

Purpose:

This program is designed to decode weather satellite files saved in wave file 
or image format.  The program takes a satellite recording, and produces a 
corresponding image in BMP or JPEG format.  Advanced options are only 
available in the registered version.  For registration details please see 
this Web address: http://www.uksharereg.com/satsign.html

It was orignally designed to overcome the problem that WXSat has with decoding 
Meteor and Resurs images, in particular the bent verticals due to doppler 
shift.  As opposed to either the phase-locked or free-running oscillator used 
in WXSat, the program triggers on each line, thus ensuring correct alignment 
of all lines.  (In fact the program triggers at the nearest sampling point to 
the same point on each line, introducing a maximum of about a quarter of one 
pixel error.)

Additionally, the program tries to produce the best possible picture by 
interpolating addition lines between those produced by the satellite.  In this 
way, approximately 50% more scan lines can be obtained.  The horizontal 
resolution has been adjusted to produce approximately square pixels, however, 
I do not have definitive information on the precise scan format of Resurs and 
Meteor, and have been unable to determine the precise number of pixels per 
line.


Installation & Usage:

Extract SatSignal.exe, SatSignal.hlp and SatSignal.cnt from the zip file to a 
suitable folder and run SatSignal.exe.

If you wish a Spanish language help file, please see Ferran Alegret's Web 
site at: http://www.qsl.net/ea3dlv.  I am very grateful to Ferran for making
this available as his time permits.

You will need four other libraries:

1 - If you don't already have Borland's run-time library, you will also need 
to download the file VCL40.zip from any site offering it.  For example:

  http://www.davidtaylor.freeserve.co.uk/software/runtime.html

Extract the file VCL40.BPL from this archive and copy to your Windows System
folder (e.g. \Windows\System or \WinNT\System32).  

2 - If you don't already have the PNG LPng.dll library, you will also need 
to download the file lpng.zip from any site offering it.  For example:

  http://www.davidtaylor.freeserve.co.uk/software/runtime.html

Extract the file LPng.dll and copy to your Windows System folder (e.g. 
\Windows\System or \WinNT\System32).  Do not overwrite newer versions.

3 - Intel Image processing library

  See: http://www.davidtaylor.freeserve.co.uk/software/runtime.html (limited)
  You need my release IPL07.zip or higher

  or:  http://developer.intel.com/vtune/perflibst/ipl/index.htm     (full)

4 - Intel Signal Processing library

  See: http://www.davidtaylor.freeserve.co.uk/software/runtime.html (limited)
  You need my release NSP10.zip or higher

  or:  http://developer.intel.com/vtune/perflibst/SPL/              (full)

Although the Intel libraries are quite large downloads, they may also be 
obtained from Intel on CD-ROM.  If you use the restricted libraries I provide, 
you should copy them into the same folder as the program.  Whilst the Intel 
libraries are supposed to work on other processors, there is some evidence 
that AMD processors are not properly supported, and may cause crashes.  If 
this happens to you, I suggest you look at the notes on my Web site.

  http://www.davidtaylor.freeserve.co.uk/software/runtime.html#MSVCRT

If you have a Pentium III processor, and experience an external exception 
C000001D crash, please check you have the latest Windows NT Service Pack 
installed or upgrade from Windows 95 to Windows 98.  If you don't want to do 
this, or the problem persists, please see instructions for using the Pentium 
II libraries on a Pentium III system at:

  http://www.davidtaylor.freeserve.co.uk/software/runtime.html#PentiumIII

It is important that you remove all old versions of all the libraries when
installing new versions, otherwise the program may continue to use the older
files making your problem solving task more difficult.


Analysing "missing DLL" messages

If Windows reports a missing library, you can find which is missing from the
error message reported by Windows:

  LPNG.DLL  - PNG runtime library is missing
  IPL??.DLL - Intel image processing is missing
  NSP??.DLL - Intel signal processing is missing
  VCL40.BPL - Delphi runtime library is missing

If you get an error message saying that "This control requires version 
4.70 or greater of COMCTI 32.DLL" then you will need Microsoft's Common 
Control Library update from: 
  http://www.microsoft.com/msdownload/ieplatform/ie/comctrl.asp  


Notes:

The program is written for Borland's Delphi 4.03.  You do not need access to 
Delphi to run SatSignal.  The program has been developed on Windows NT 4, and 
runs on Windows NT4, 2000, 95 and 98.

Additional image processing functions can be enabled, and are on by default.  

- The program can automatically derive the black level for the scene from the 
incoming signal.  If the signal is corrupt this value may be in error, 
resulting in a picture that is too dark.  

- Visible channel signals typically show land as having a low albedo, 
conversely, snow looks brighter than you would expect.  To compensate for 
this, the output image can be gamma corrected to compensate.

- You can sharpen the output image

- You can choose whether or not to make a large image by interpolation of 
the received signal.

- The sampling rate can be set to best suit the combination of incoming 
signal and sound card characteristics.

- If an overlay file for the current pass is present in your WXtrack folder,
a grid of country boundaries and latitude & longitude will be overlaid onto
the colour image.  The pass MUST be generated as south-bound in WXtrack.  
(Overlays currently for NOAA only).  Please see: "Using map overlays" in 
the Help, Index for more information.


Caution:

1 - The program has only been tested with the 11.025 KHz 8- or 16-bit audio 
files produced by WXSat.  Other wave file sampling frequencies will not work, 
except that small errors of the sound card sampling frequency can be 
accomodated.  See the options menu.

2 - The program is designed for good quality signals.  If your signals are 
noisy, decoding with WXSat may produce better results, and could easily 
cause my simple program to crash.  You may need to edit such wave files.

3 - There is an option to filter the input more strongly.  This has little 
effect on the picture quality, but the synchronisation works better, at least 
with the sort of pager interfence which I get.  This filtering can increase 
the processing time.

4 - The program deals with large images.  Sufficient virtual memory is 
essential, and although the program was developed on a 128MB Pentium II PC, 
it has been used sucessfully by others on a variety of configurations.  You 
will benefit from a fast processor - but the program does operate at about 20 
times real-time (a 10 minute pass takes about 30 seconds to process).  This 
will be longer if the input filtering option is enabled, or if a lower speed 
processor is in use.  Floating point processing is used extensively, so 
doubtless a Pentium will probably be faster than competing processors.  The 
Intel libraries mentioned above include Pentium III optimised code.

5 - Wave files lasting less than 30 seconds will not be processed.  SatSignal
uses the initial signal to try and sort out the exact satellite type.

6 - The program is designed for NOAA APT, Meteor, Resurs, Okean, SICH & WEFAX 
(Meteosat) signals.

7 - The first time the program loads, there may be a delay of up to 20 
seconds, please be patient.

8 - If you don't like the way the program automatically updates the image 
after you change a menu option, uncheck the Auto Update option.

9 - You can interrupt processing an image with the Escape key.

10 - If you enter a file extension other than BMP or JPG in the Save As
dialog box, e.g. PIC.ABC, your file will actually be saved as PIC.ABC.JPG
or PIC.ABC.BMP according to your currently selected preference.

11 - When processing a NOAA file, four output files will be produced:

  - <filename>.bmp - the composite two channel signal
  - <filename>-a.jpg - visible, processed for best viewing
  - <filename>-b.jpg - thermal, processed for best viewing
  - <filename>-c.jpg - visible, coloured by the thermal

12 - The program will not work with signals received through a narrow
bandwidth receiver - such signals will sound to have alternating periods
of tone and noise, rather than two alternating tones.


Automated processing (registered version only):

The program can take command-line parameters for automated processing:

 SatSignal.exe <input file>  <output file> 
   parameters:  [S|N] [F=11025] [I] [G=2.2] [K] [H] [2B] [2F] [M} [W]

 Eg. SatSignal 05121234.wav  05121234.jpg  S  F=11025  I

You would need to set up the other options such as image size, type and gamma 
correction first, and don't try saving a BMP output image as a JPG otherwise 
everyone becomes very confused!  

The Help file contains full details of batch operation.

Note that the program will not overwrite existing files, but will halt with a 
dialog box.  Please ensure the output image file does not already exist for 
hands-off automated processing.


Recent release information:

V3.3.4  2000 Feb 25  Single-click overlay on/off

(Earlier updates are listed in the Help file.)


Program Status & Distribution:

This program is copyrighted software from David J Taylor, Edinburgh and is 
provided "as is", without any support.  Whilst I cannot answer queries 
relating to the use of this program, I would value any comments or 
suggestions for improvements you may have.
There is a registered version of this program available from the Web which
includes image input, temperature display and command-line input.  The 
registered version also includes technical support.


Acknowledgements:

Milan Konecny, VE3NZK, provided much useful input during development.
  http://ourworld.compuserve.com/homepages/Milan_Konecny

Les Hamilton has provided many useful suggestions and a CD of wave files
for me to decode, in addition to looking after the RIG shareware library.

Nigel Evans kindly provided a CD of Meteosat signals for me to decode.

Max Hadley reminded me of the signal processing algorithm I should be using 
for amplitude demodulation.
  e-mail: max@susato.demon.co.uk

The PNG support is from Edmund H Hand's interface to LPng.dll
  e-mail:  edhand@worldnet.att.net

The library LPng.dll is freeware I believe, but the source is:
  Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  Copyright (c) 1996, 1997 Andreas Dilger
  Copyright (c) 1998 Glenn Randers-Pehrson

Saving to PNG files is based on Jack Goman's freeware PNGUnit:
  http://SharePower.VirtualAve.net/png.html
  jack@SharePower.VirtualAve.net

TVersionInfoResource is from Brad Stowers
  http://www.pobox.com/~bstowers/delphi/
  Copyright bstowers@pobox.com (CompuServe 72733,3374)

The NSP interface for Delphi was written by Robert Rossmair
  e-mail: Robert.Rossmair@t-online.de

The Spanish language help file was provided by:
  Ferran Alegret, EA3DLV, e-mail: aalegret@iies.es

Many thanks to Les, Lincoln and Peter who waited while I matched the Intel
libraries I built with the program I built!


Contacting the author:

Web site:  http://www.davidtaylor.freeserve.co.uk
E-mail:    davidtaylor@writeme.com
2000 February 25
