Products and Software

Directory of Direct Broadcast software packages – level 0 to level 2 and visualization

Contents

Original authors: Nathalie Selbach and Nigel Atkinson
Page update by: Anna Booton and Graeme Martin


Direct Broadcast packages, level 0 to level 1

NameCapabilitiesOutput formatReference
RT-STPSCCSDS data processing package, Java application. Outputs Raw Data Records (RDRs). Supports Aqua, Terra, NPP, JPSS serieshdf5NASA Direct Readout Laboratory
metopizerThe Metopizer is a collection of tools for manipulating CCSDS Instrument Source Packets and other related data types (CADU, t-VCDU packets, Metop L0 products).EPS Level 0EUMETSAT – support software
MODISL1DB_SPA
(no longer supported, see IMAPP MODIS level 1 processor)
Level 1 processing (Science Processing Algorithm) for Aqua/Terra MODIS from NASA DRL. Uses the v6.1 series LUTs but note that these do not reflect the latest Terra calibration.hdf-eosNASA Direct Readout Laboratory
ocssw_7.5 (part of SeaDAS)
(no longer supported, see IMAPP MODIS level 1 processor)
Level 1 processing for Aqua/Terra MODIS from SeaDAS.

A couple of issues: (i) the supplied version fails to download the LUTs through some proxy servers; see Appendix A for a fix, (ii) Land sea mask is empty in the MOD03. A workaround for (ii) is to use MODISL1DB to generate the L1A and ocssw_7.5 to process to L1B.
hdf-eosNASA SeaDAS
IMAPP: Aqua AIRS/AMSU/HSB Processing Package for Direct BroadcastLevel 1 processing for Aqua AIRS and AMSUhdf-eos or BUFRCIMSS – IMAPP
IMAPP: MODIS Processing Package for Direct BroadcastLevel 1 processor for MODIS, on FY3DL0pp, FY3EL0pp, FY3DL1pp, FY3EL1pp. (Can be run via Apptainer)hdf-eosCIMSS – IMAPP
IMAPP: Aqua AMSR-E Calibrated and Geolocated Antenna TemperaturesProcesses Aqua direct broadcast AMSR-E data from raw packets in PDS (Production Data Set) format into Level 2A calibrated data. No longer applicable to real-time DB, due to failure of instrumenthdf-eosCIMSS – IMAPP
Community Satellite Processing Package (CSPP) – SDR softwareLevel 1 processing for Suomi NPP and JPSS series: ATMS, CrIS, VIIRS. Based on Raytheon’s ADL software, with python and bash wrappers.hdf5CIMSS – CSPP
International Polar Orbiter Processing Package (IPOPP)Level 1 processing for Suomi NPP and JPSS series: ATMS, CrIS, VIIRS, OMPS, and Aqua/Terra MODIS. NPP/JPSS processing is based on Raytheon’s ADL softwarehdf5NASA Direct Readout Laboratory
ATOVS and AVHRR Pre-processing Package (AAPP)Level 0 to level 1 processing for NOAA POES and Metop: AMSU, MHS, HIRS, AVHRR, IASI. Also provides re-mapping and pre-processing for S-NPP/JPSS and FY-3 sounders, and VIIRS/AVHRR cloud masks.Binary fixed length records (1b formats are similar to NOAA’s) or BUFR or hdf5NWP SAF – AAPP
FY3L0pp
FY3CL0pp
CADU to level 0 processing for FY-3 MWTS, MWHS, IRAS, MWRI, VIRR, MERSI. Note: assumes that the incoming CADU data have been de-randomised. See Appendix B below.hdf5CMA Portal >Tools>Softwares
FY3L1pp
FY3CL1pp
level 0 to level 1 processing for FY-3 MWTS, MWHS, IRAS, MWRI, VIRR, MERSIhdf5As for FY3L0pp
Table last updated: 02 July 2024

Other level 1 processing packages (not DB)

NameCapabilitiesOutput formatReference
SSMIS Unified Pre-processor (UPP)SSMIS re-mapping to common field of view, and removal of instrument biases due to solar intrusions and antenna emmisivity. Joint Met Office/NRL development. Run operationally by NRL, Monterey.BUFR
SSMIS_PP
(deprecated, see MWIPP)
The original Met Office processor for SSMIS. Supported DMSP F16 only. Now largely superseded by the UPP.BUFRNWP SAF – SSMIS_PP
SSMIS_PP UPP averaging moduleSuper-obbing module for SSMIS. Supports DMSP F16, 17, 18, 19. Intended to be run by users of the unaveraged UPP dataBUFRNWP SAF – SSMIS_PP
MWIPPMicrowave Imager Pre-Processor from the NWP SAF, currently supporting SSMIS, AMSR-2, GMI, MWRI. With averaging and format conversion capabilities. Initial release in early 2019.BUFR, hdf5NWP SAF – MWIPP
IRSPPInfrared Sounder Pre-Processor from NWP SAF, currently supporting MTG-S1, MTG-S2 instruments. With conversion to reconstructed radiances using sets of eigenvectors that accompany the spectra, and apodising specta.BUFR, netCDFNWP SAF – IRSPP
Table last updated: 02 July 2024

Level 2 processing packages

NameCapabilitiesReference
International ATOVS Processing Package (IAPP)Temperature and humidity retrievals from ATOVS. Uses HIRS level 1d (from AAPP) as input. Released as part of CSPP.CIMSS – CSPP
CrIS, AIRS and IASI Hyperspectral Retrieval SoftwareDual-regression retrieval algorithm developed at CIMSS. Released as part of CSPP.CIMSS – CSPP
NOAA/NESDIS/STAR Microwave Integrated Retrieval System (MIRS)Retrievals from AMSU, MHS and ATMS. Released as part of CSPP.CIMSS – CSPP
NOAA Unique CrIS ATMS Processing System (NUCAPS)Retrievals from CrIS/ATMS, IASI/AMSU, AIRS. Released as part of CSPP.CIMSS – CSPP
VIIRS EDRsVIIRS SDR to EDR. Released as part of CSPP.CIMSS – CSPP
NOAA Clouds from AVHRR Extended (CLAVR-x) Retrieval Software Package in Support of VIIRS, MODIS and AHVRRCLAVRx software produces single Field-of-View (FOV) cloud retrievals in HDF4 format from input AVHRR, MODIS, and VIIRS Imager calibrated/geolocated data files. Released as part of CSPP.CIMSS – CSPP
NOAA/STAR Advanced Clear-Sky Processor for Oceans (ACSPO)For retrieving sea surface temperature from direct broadcast (DB) AVHRR, MODIS and VIIRS sensor data records. Released as part of CSPP.CIMSS – CSPP
CSPP NOAA JPSS VIIRS Active Fire SoftwareNOAA operational version of the Active Fire software ported for application to direct broadcast inputs. Released as part of CSPP.CIMSS – CSPP
CSPP VIIRS Flood Detection SoftwareAutomatic flood detection using Suomi-NPP and NOAA-20 VIIRS Sensor Data Record (SDR) inputs, as well as the S-NPP VIIRS Cloud Mask Environmental Data Record (EDR) if it is available.CIMSS – CSPP
International MODIS/AIRS Processing Package (IMAPP)Produces a range of MODIS, AIRS and AMSU products. Available as Linux binaries or as a Virtual Appliance for Windows, OS X, and Linux. Note that the IMAPP project ended in 2017 but the web site will remain available.CIMSS – IMAPP
Scatterometer wind processors: AWDP, PenWPWind processors for ASCAT, OSCAT, HSCAT, RapidScat and SeaWinds. Input is the level 1b Normalized Radar Cross Section.NWP SAF – Scatterometer
1D-Var schemesThe NWPSAF 1D-Var package is a stand-alone system for doing 1D-Var retrievals with user-provided files of observation and background error covariances. The package is configured to support ATOVS, AIRS, IASI, ATMS, CrIS and SSMIS sensors, and is capable of supporting any nadir-sounding sensor for which a suitable radiative transfer model is available.NWP SAF – 1DVAR
Inversion Coupled with Imager (ICI)Temperature and humidity retrievals, making use of AVHRR cloud mask. Package was developed by Meteo-France, and was distributed by EUMETSAT prior to 2004, but no longer supported.See ITWG description
Improved Initialization Inversion system (3I)HIRS and MSU retrieval system, developed by LMD. The 3I Algorithm is available as a freeware product, for academic use or scientific research.LMD – 3I
International TOVS Processing Package (ITPP)Predecessor of IAPP – for TOVS.No longer available
Table last updated: 02 July 2024

Visualization and analysis tools

NameCapabilitiesSupported formats and sensorsReference
McIDAS (Man computer Interactive Data Access System)
McIDAS (McIDAS-V and McIDAS-X) displays weather satellite (including hyperspectral) and other geophysical data in 2- and 3-dimensions, and can be used to analyze and manipulate the data with its powerful mathematical functionsList of supported data formats and products in the User Guide : section Data Formats and SourcesSSEC – McIDAS
OpenADDEThis software is discontinuedSSEC
VisAD (“Visualization for Algorithm Development” )Java component library for interactive and collaborative visualization and analysis of numerical data:
A general mathematical data model that can be adapted to virtually any numerical data, that supports data sharing among different users, different data sources and different scientific disciplines, and that provides transparent access to data independent of storage format and location (i.e., memory, disk or remote).
A general display model that supports interactive 3-D, data fusion, multiple data views, direct manipulation, collaboration, and virtual reality. The display model has been adapted to Java3D and Java2D and used in an ImmersaDesk virtual reality display.
Data analysis and computation integrated with visualization to support computational steering and other complex interaction modes.
netCDF, HDF-5, FITS, HDF-EOS, McIDAS, Vis5D, GIF, JPEG, TIFF, QuickTime, ASCII and many other file formatsSSEC – VisAD
Hydra2HYDRA2 Multispectral Data Analysis Toolkit for the visualization and analysis of Suomi-NPP, JPSS and NASA EOS Aqua and Terra instrument data. This package is in support of Direct Broadcast users, and is co-sponsored by the NOAA Community Satellite Processing Package (CSPP) and the NASA International MODIS/AIRS Processing Package (IMAPP).

HYDRA2 is based on VisAD. Written in Java/Jython.
S-NPP/NOAA-20: VIIRS, CrIS and ATMS
Aqua: MODIS and AIRS
Terra: MODIS
Metop-A and B: IASI
SSEC- CIMSS – CSPP wep pages
polar2gridsoftware package providing scripts, utilities, and a series of functions and classes for reading polar-orbiting satellite data, remapping or gridding that data, and writing it to a file format to be used by other softwareVIIRS (SDR, hdf5), MODIS (Level 1, hdf), corrected reflectance (corrected reflectance files created from above two)SSEC – polar2grid
CSPP Sounder QuickLook (QL) SoftwarePlots for level 2 products of the following CSPP packages: NUCAPS, HSRTV, MIRS, IAPPSSEC – sounder_ql
IDV (Integrated Data Viewer)IDV is a freely available, multiplatform visualization and analysis tool for interdisciplinary geoscience data. The IDV brings together the ability to display and work with a wide range of data including satellite imagery, gridded data, observations and radar datalist available hereUnidata – IDV
GEMPAKThe GEneral Meteorology PAcKage, is an analysis, display, and product generation package for meteorological data.Unidata – GEMPAK
AWIPS-IIAWIPS II is a weather forecasting, display and analysis package currently being developed by the National Weather Service. AWIPS II is a Java application consisting of a data rendering client and a backend data server, and incorporates open source technologies such as HDF5, Qpid,Postgres and PyPIES..Unidata – AWIPS-II
AAPPAAPP is intended for the ingestion and the pre-processing tasks of direct readout HRPT data up to the pre-processed, calibrated and navigated data. The AAPP distribution includes scripts for visualization with GMT. Additionally, the NWP SAF can provide IDL and PV-Wave code for visualization of AAPP output (not an official NWP SAF deliverable)Following satellites are supported: TIROS-N to NOAA-14 (HIRS/2, MSU, AVHRR/2), NOAA-KLM (HIRS/3, AMSU-A, AMSU-B, AVHRR/3), NOAA-NN’ (HIRS/4, AMSU-A, MHS, AVHRR/3), METOP (HIRS/4, AMSU-A, MHS, AVHRR/3, IASI), NPP/JPSS (ATMS, CrIS, VIIRS), FY3 (MWTS, MWHS, IRAS)NWP SAF – AAPP – Visualisation
SeaDASThe SeaWiFS Data Analysis System (SeaDAS) is a comprehensive image analysis package for the processing, display, analysis, and quality control of ocean color datasupported sensors: MODIS, SeaWiFS, MERIS, OCTS, and CZCS, VIIRS. HICO, Aquarius, OCM, OCM-2, OSMI, MOSNASA – SeaDAS
CDO (Climate Data Operators)CDO is a collection of command line operators to manipulate and analyze climate and forecast model data from different sources. There are more than 600 different operators available in this software package (e.g. for file operations, simple statistics, arithmetics, interpolation, etc) GRIB 1/2, netCDF 3/4, SERVICE, EXTRA and IEG, interface for binary files, CM SAF hdf5-filesZMAW – CDO

or

CM SAF – Products – Tools – CDO
Giovanni – Interactive Visualization and Analysisweb-based application for visualization, analysis  and accesss if vasta mouts if remote sensing data without having to download the data.List of paramters and used satellite data available via web pageNASA – Giovanni
GDALtranslator library for raster geospatial formats, comes with variety of useful commandline utilities for data translation and processingGeoTIFF, Erdas Imagine, SDTS, ECW, mrSID, JPEG2000, GRIB, etc, full list available for raster formats and vector formatsGDAL
Panoplycross-platform application which plots geo-gridded arrays from netcdf, HDF and GRIB datasetsnetcdf, HDF, GRIBNASA – Panoply
hdfviewvisual tool for browsing and editing HDF-filesHDF4, HDF5HDF Group
ncviewvisual browser for netCDF filesnetcdfUCSD
RR is a free software environment for statistical computing (e.g., linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphicsSeveral data formats. For some, additional packages need to be installed (e.g. netcdf, hdf)R Project
pytrollpytroll provides different free and open source python modules for the reading, interpretation, and writing of weather satellite data.

(includes several modules:
pyresample,
mipp,
mpop,
python-bufr,
py-coast,
pyorbital,
+ several other modules under development)
Meteosat series (tested with 7, 8, 9, 10)
GOES series, in HRIT/LRIT format (tested with 11, 12, 13, 15)
MTSAT series, in HRIT/LRIT format (tested with 1R, 2)
Electro L, in HRIT/LRIT format (tested with N1)
NOAA series, in AAPP, GAC and LAC format (tested with 15, 16, 17, 18, 19)
Metop-A/B, in EPS 1a and 1b format
Aqua and Terra, in hdf-eos format
Suomi NPP and JPSS series, in SDR hdf5 format
TerraSAR-X
Radarsat-2 SAR
COSMO-SkyMed SAR
Sentinel-1 SAR
Pytroll
MeteoExplorer (ME)Cross-platform software for analyzing and rendering atmospheric science and geoscience data.WMO GRIB1/GRIB2, NetCDF, HDF and MICAPS, and basic GIS functionalitiesMeteoExplorer by EastModelSoft
IRIS and CartopyIris and Cartopy are open source Python libraries initially created by the Met Office to enable the visualisation of weather and climate data.SciTools
NASA link for data toolsNASA – Data tools
ESA toolsMiscellaneous tools for manipulating satellite dataESA – command line tools
Table last updated: 02 July 2024


Appendix

Appendix A: Modification to file ProcUtils.py in ocssw_7.5

This is the modified version of function httpinit that is used at the Met Office to set up a tunnel through a proxy server, defined in environment variable https_proxy …

def httpinit(url, timeout=10, urlConn=None):
    """
    initialize HTTP network connection
    """
    import httplib
    import os
    from urlparse import urlparse

    proxy = None
    proxy_set = os.environ.get('https_proxy')
    if proxy_set is None:
        proxy_set = os.environ.get('http_proxy')
    if proxy_set:
        proxy = urlparse(proxy_set)

    if urlConn is None:
        #if proxy is None:
        #    urlConn = httplib.HTTPSConnection(url, timeout=timeout)
        #elif proxy.scheme == 'https':
        #    urlConn = httplib.HTTPSConnection(proxy.hostname,
        #                                      proxy.port, timeout=timeout)
        #else:
        #    urlConn = httplib.HTTPConnection(proxy.hostname,
        #                                     proxy.port, timeout=timeout)

        urlConn = httplib.HTTPSConnection(proxy.hostname,
                                              proxy.port, timeout=timeout)
        urlConn.set_tunnel(url,443)

    return urlConn, proxy

Appendix B: CADU manipulation

Raw data from direct broadcast are typically in CADU (Channel Access Data Unit) format. As an example, see Figure 2.1 of the FY-3A Satellite to Ground Interface Control
Document
. The frame length is typically 1024 bytes, but you can verify this by looking for the first few occurrences of the frame sync:

od -t x1 -A d $infile | grep "1a cf fc 1d" | head -5

Common to all missions is a randomization, or scrambling, step – see Figure 2-3 of the FY-3A document. This, in effect, does an exclusive or of the input stream with a 255-bit pseudo-random sequence. The randomization and de-randomization processes are identical. For DB stations that deliver CADU data, de-randomization may or may not have been applied in the station processing; similarly, some level 0 software packages expect to receive scrambled data (e.g. metopizer tool cadu_to_ccsds) while others expect unscrambled data (e.g. FY3CL0pp).

If you have difficulty processing your CADU data, try converting your files. One option is to use the ESA tool CADU-convert, while another option is to build the short C program listed below.

/* cadu_scramble.c
Scramble or unscramble a CADU file (e.g. Metop or FY-3) Frame length normally 1024 bytes but MEOS files are 1072 bytes. Check your frame length before running. Note that the Metopizer tool cadu_to_ccsds ingests scrambled (randomized) files but fy3cl0db ingests unscrambled files. Build: cc -o cadu_scramble cadu_scramble.c Usage: ./cadu_scramble infile outfile [framelength] Reference: Fig 2-3 of http://mdkenny.customer.netspace.net.au/FY3_HRPT.pdf 04/01/2018 Nigel Atkinson */ #include <stdio.h> #include <stdlib.h> main(int argc, char *argv[]) { #define MAXFRAME 1072 #define MAXMASK MAXFRAME-4 int i,j,k,framelength,masklength; unsigned char sequence[8] = { 1,1,1,1,1,1,1,1 }; unsigned char mask[MAXMASK] = { 0 }; unsigned char tmp1, tmp2, tmp3; unsigned char frame[MAXFRAME]; FILE *fpin, *fpout; /* open the files */ if (argc < 3) { printf("usage: cadu_scramble infile outfile [framelength]\n"); exit (0); } fpin = fopen(argv[1],"r"); fpout = fopen(argv[2],"w+"); if (argc > 3) sscanf(argv[3],"%d",&framelength); else framelength=1024; masklength = framelength - 4; /* set up the scrambling mask */ for (i=0; i<masklength; i++) { for (j=0; j<8; j++) { mask[i] = (mask[i]<<1) + sequence[0]; tmp1 = sequence[3] ^ sequence[0]; /* exclusive or */ tmp2 = sequence[5] ^ tmp1; tmp3 = sequence[7] ^ tmp2; for (k=0; k<7; k++) sequence[k] = sequence[k+1]; sequence[7] = tmp3; } } /* read, modify and write, framelength bytes at a time */ while (fread(frame,1,framelength,fpin) == framelength){ for (i=0; i<masklength; i++) { frame[i+4] = frame[i+4] ^ mask[i]; /* leave first 4 bytes unchanged */ } fwrite(frame,1,framelength,fpout); } fclose(fpin); fclose(fpout); }