The topic definition is a Java package that allows identifying CryoSat-2 products by applying regular expressions-like file name matching rules. The central element of this package is the ontology definition file (cortex-index.owl) located in the META-INF folder inside the resources directory.
The topic is currently designed to support the following product types from the CryoSat-2 satellite mission:
- SIR_FDM_2_
- SIR_GOPM_2
- SIR_SAR_2_
- SIR_GOPR_2
- SIR_LRM_2_
- SIR_GOP_2_
- SIR_SIN_2_
- SIR_GDR_2_
- SIR_GOPN_2
For decoding the binary datasets, which is necessary for extracting the footprint coordinates, product-specific XML schema definitions are contained in the (xsd) folder inside the resources directory. The metadata information is extracted from the XML header files provided within the product package.
The file name matching patterns and the XSD files were created based on the official product specification and format definition documents:
- CryoSat Product Handbook
- CryoSat Product Handbook Baseline D
- Earth Explorer Ground Segment File Format Standard
- Standard Archive Format for Europe
Apache Maven is used for building the Java project. The Project Object Model XML file (pom.xml) specifies the overall package configuration.
The SIR_FDM_2_ product is created using a special Level-2 processor to produce a Fast Delivery Marine (FDM) product. The format of the record structure and the product file types differ from the other Level-2 products.
The SIR_FDM_2_ product is comprised of two physical files, which are delivered separately:
- an ASCII-based XML header file having the extension .HDR
- a mixed ASCII/BINARY data file having the extension .DBL
Metadata is extracted from the XML header, footprints are created based on the records contained within the DBL file.
In order for the DHuS ingest to work, these two individual files need to be combined into one gzipped archive (tarball) first. The filename of the tarball needs to be exactly the same as for the HDR/DBL files, with the obvious difference of having the file extension ".TGZ".
The following is an example illustrating the structure for the SIR_FDM_2_ product, after the previous step of tarball creation:
- CS_OFFL_SIR_FDM_2__20200325T212713_20200325T212805_C001.TGZ
- CS_OFFL_SIR_FDM_2__20200325T212713_20200325T212805_C001.HDR
- CS_OFFL_SIR_FDM_2__20200325T212713_20200325T212805_C001.DBL
Note that the file that will be ingested in DHuS is the CS_OFFL_SIR_FDM_2__20200325T212713_20200325T212805_C001.TGZ.
The format structure for the other CryoSat-2 Level-2 products (those not having the product type SIR_FDM_2_) is consistent. The products are again comprised of two physical files, which are again delivered separately:
- an ASCII-based XML header file having the extension .HDR
- a netCDF data file having the extension .nc
Metadata is extracted from the XML header, footprints are created based on the coordinate axes contained within the netCDF file.
As for the SIR_FDM_2_ product, the two individual files need to combined into one gzipped archive (tarball), e.g.:
- CS_LTA__SIR_GOP_2__20110517T085332_20110517T094311_C001.TGZ
- CS_LTA__SIR_GOP_2__20110517T085332_20110517T094311_C001.HDR
- CS_LTA__SIR_GOP_2__20110517T085332_20110517T094311_C001.nc
This is true for all products and to be done analogously.
The &cryosat2;product class identifies the gzipped tarballs based on file name matching rules. It represents the base class for all CryoSat-2 products. This class must match the class name referenced by the metadata extractor in the CryoSat-2 addon (separate Java package).
The &cryosat2;productXmlHeader class identifies the XML header. This is an auxiliary class not directly required for ingesting the product, but for enabling the exploration of the XML header when using the visual product viewer in DHuS (lower right panel).
The &cryosat2;productNetCDF class identifies the netCDF files. Like for the XML file, this class enables navigating the netCDF file.
By using the SDF (Structured Data File) implementation for the the DRB (Data Request Broker) it is possible to break down binary files into a tree of nodes on the basis of XML schema definitions. The &cryosat2;productFdmDbl class identifies the SIR_FDM_2_ DBL file and uses SDF to decode the binary file. The location of the XSD needs to be specified for this to work.