VIIRS Cloud Mask Science Processing Algorithm (Cloudmask - Spa) User's Guide
VIIRS Cloud Mask Science Processing Algorithm (Cloudmask - Spa) User's Guide
VIIRS Cloud Mask Science Processing Algorithm (Cloudmask - Spa) User's Guide
Processing Algorithm
(CLOUDMASK_SPA)
User's Guide
Version 1.5.08.04
April 2015
Users must agree to all terms and conditions in the Software Usage Agreement on the DRL
Web Portal before downloading this software.
Software and documentation published on the DRL Web Portal may occasionally be updated
or modified. The most current versions of DRL software are available at the DRL Web Portal:
http://directreadout.sci.gsfc.nasa.gov/?id=software
Questions relating to the contents or status of this software and its documentation should be
addressed to the DRL via the Contact DRL mechanism at the DRL Web Portal:
http://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=66
A Science Processing Algorithm (SPA) is defined as a wrapper and its contained algorithm.
SPAs will function in a standalone, cross-platform environment to serve the needs of the broad
Direct Readout community. Detailed information about SPAs and other DRL technologies is
available at the DRL Web Portal.
Software Description
This software package contains the Visible Infrared Imaging Radiometer Suite (VIIRS) Cloud
Mask Science Processing Algorithm (CLOUDMASK_SPA). The VIIRS Cloud Mask algorithm
takes as input VIIRS I1, I2, I4, I5, M1, M4, M5, M7, M8, M9, M10, M11, M12, M13, M14, M15,
and M16 band Sensor Data Record (SDR) products; the VIIRS M-Band Terrain-corrected
Geolocation product; the VIIRS Active Fires Application Related Product (ARP); and
meteorological ancillaries. The SPA produces the mission-compliant VIIRS Cloud Mask IP
HDF5 product. The SPA functions in two modes: Standalone, or as an IPOPP plug-in.
Copyright 1999-2007, United States Government as represented by the Administrator for the
National Aeronautics and Space Administration. All Rights Reserved.
Credits
The VIIRS Cloud Mask algorithm was provided to the DRL by the JPSS Mission. This
algorithm was ported to run outside of the IDPS by the DRL in collaboration with the Land
Product Evaluation and Algorithm Test Element (LPEATE).
Prerequisites
To run this package, you must have the Java Development Kit (JDK) or Java Runtime
Engine (JRE) (Java 1.6.0_25 or higher) installed on your computer, and have the Java
installation bin/ subdirectory in your PATH environment variable. This package contains 64-
bit binaries statically pre-compiled on an x86-compatible 64-bit computer running under
Fedora 14, using gcc 4.5.1.
a) VIIRS I1, I2, I4, I5, M1, M4, M5, M7, M8, M9, M10, M11, M12, M13, M14, M15, and
M16 band Sensor Data Record (SDR) products;
d) meteorological ancillaries.
The SPA produces the mission-compliant VIIRS Cloud Mask Intermediate Product (IP) HDF5
product as output.
Installing into an IPOPP Framework: This SPA can also be installed dynamically into an
IPOPP framework to automate production of VIIRS Cloud Mask IP data products. The SPA
installation process will install SPA service(s) into IPOPP. An SPA service is an IPOPP agent
that provides the mechanism necessary for running an SPA automatically within the IPOPP
framework. Once this SPA is installed, users must enable the service(s) corresponding to this
SPA along with any other Prerequisite service(s). Instructions for installing an SPA and
enabling its services are contained in the IPOPP User’s Guide (available on the DRL Web
Portal). The SPA services associated with this SPA are listed in Appendix A.
$ ./run-vcm
You can cd to the output directory to verify that the science products exist. Test output
product(s) are available for comparison in the testdata/output directory. These test output
product(s) were generated on a 64-bit PC architecture computer running Fedora 14. The
output products serve as an indicator of expected program output. Use a comparison utility
(such as diff, h5diff, etc.) to compare your output product(s) to those provided in the
testdata/output directory. Locally generated files may differ slightly from the provided output
files because of differences in machine architecture or operating systems.
If there is a problem and the code terminates abnormally, the problem can be identified using
the log files. Log files are automatically generated within the directory used for execution.
They start with stdfile* and errfile*. Other log and intermediate files may be generated
automatically within the directory used for execution. They are useful for traceability and
debugging purposes. However it is strongly recommended that users clean up log files and
intermediate files left behind in the run directory before initiating a fresh execution of the SPA.
Intermediate files from a previous run may affect a successive run and produce ambiguous
results. Please report any errors that cannot be fixed to the DRL.
Program Operation
In order to run the package using your own input data, you can either use the run scripts within
the wrapper subdirectories, or modify the test scripts within the testscripts subdirectory.
Specify input parameters using <label value> pairs: To execute the 'run' scripts, you must
supply the required input and output parameters. Input and output parameters are usually file
paths or other values (e.g., an automatic search flag). Each parameter is specified on the
command line by a <label value> pair. Labels are simply predefined names for parameters.
Each label must be followed by its actual value. Each process has its own set of <label value>
pairs that must be specified in order for it to execute. Some of these pairs are optional,
meaning the process would still be able to execute even if that parameter is not supplied. The
three types of <label value> pairs that the CLOUDMASK_SPA uses are:
a) Input file label/values. These are input file paths. Values are absolute or relative paths
to the corresponding input file.
b) Output file label/values. These are output files that are produced by the SPA. Values
are absolute or relative paths of the files you want to generate.
The following tables contain labels, and their descriptions, required by the
CLOUDMASK_SPA.
ssmi_nise National Snow and Ice Data For recent files go to:
Center (NSIDC) Near-real time Ice ftp://is.sci.gsfc.nasa.gov/ancillary/temporal/global/nis
and Snow Extent (NISE) (1 e/NISE_SSMIF13_yyyymmdd.HDFEOS
degree, global, daily)
For archived files go to:
ftp://is.sci.gsfc.nasa.gov/ArchivedAncillary/temporal/
global/nise/NISE_SSMIF13_yyyymmdd.HDFEOS
Parameters Description
scantime Parameter representing the inputs’ scan start time in yyyymmdd format (e.g. 20140901)
Execute the 'run': The following script shows an example of a command line to run the VIIRS
Cloud Mask algorithm from the testscripts directory:
$ ../wrapper/CloudMask/run \
ncep_met ../testdata/input/gdas1.PGrbF00.140901.18z \
ssmi_nise ../testdata/input/NISE_SSMIF13_20140901.HDFEOS \
scantime 20140901 \
viirs.gmtco ../testdata/input/GMTCO_npp_d20140901_t1738560_e1740201_b14746_c20140908200702642321_noaa_ops.h5 \
viirs.svm01 ../testdata/input/SVM01_npp_d20140901_t1738560_e1740201_b14746_c20140908200638045758_noaa_ops.h5 \
viirs.svm04 ../testdata/input/SVM04_npp_d20140901_t1738560_e1740201_b14746_c20140908200714715029_noaa_ops.h5 \
viirs.svm05 ../testdata/input/SVM05_npp_d20140901_t1738560_e1740201_b14746_c20140908200735223402_noaa_ops.h5 \
viirs.svm07 ../testdata/input/SVM07_npp_d20140901_t1738560_e1740201_b14746_c20140908200729256422_noaa_ops.h5 \
viirs.svm08 ../testdata/input/SVM08_npp_d20140901_t1738560_e1740201_b14746_c20140908200803979409_noaa_ops.h5 \
viirs.svm09 ../testdata/input/SVM09_npp_d20140901_t1738560_e1740201_b14746_c20140908200743076006_noaa_ops.h5 \
viirs.svm10 ../testdata/input/SVM10_npp_d20140901_t1738560_e1740201_b14746_c20140908200925075349_noaa_ops.h5 \
viirs.svm11 ../testdata/input/SVM11_npp_d20140901_t1738560_e1740201_b14746_c20140908200858348915_noaa_ops.h5 \
viirs.svm12 ../testdata/input/SVM12_npp_d20140901_t1738560_e1740201_b14746_c20140908200844775167_noaa_ops.h5 \
viirs.svm13 ../testdata/input/SVM13_npp_d20140901_t1738560_e1740201_b14746_c20140908200931364181_noaa_ops.h5 \
viirs.svm14 ../testdata/input/SVM14_npp_d20140901_t1738560_e1740201_b14746_c20140908200652259426_noaa_ops.h5 \
viirs.svm15 ../testdata/input/SVM15_npp_d20140901_t1738560_e1740201_b14746_c20140908200911898965_noaa_ops.h5 \
viirs.svm16 ../testdata/input/SVM16_npp_d20140901_t1738560_e1740201_b14746_c20140908200729274370_noaa_ops.h5 \
viirs.svi01 ../testdata/input/SVI01_npp_d20140901_t1738560_e1740201_b14746_c20140908200814185302_noaa_ops.h5 \
viirs.svi02 ../testdata/input/SVI02_npp_d20140901_t1738560_e1740201_b14746_c20140908200817203819_noaa_ops.h5 \
viirs.svi04 ../testdata/input/SVI04_npp_d20140901_t1738560_e1740201_b14746_c20140908200756074531_noaa_ops.h5 \
viirs.svi05 ../testdata/input/SVI05_npp_d20140901_t1738560_e1740201_b14746_c20140908200946032012_noaa_ops.h5 \
viirs.vafip ../testdata/input/AVAFO_npp_d20140901_t1738560_e1740201_b14746_c20140908200729274370_all-_dev.h5 \
viirs.cmip ../testdata/output/IICMO.h5
NOTES:
1. ncep_met: Either GDAS or Global Model Forecast Fields (GFS) files may be used for
the ncep_met label. Try to use a GDAS file that is within ±3 hours of the SDR
observation time. If that file is not available (as is often the case for real-time
processing), use a GFS file instead. The naming convention for grib1 gfs files is
gfs.thh.yymmdd.pgrbfxx (here yymmddd and hh represent analysis time, and xx
represents forecast time step). Thus a file named gfs.t12.100201.pgrbf03 corresponds
to 1500 hours (12+3) UTC on February 1, 2010. If you have to choose GFS data as
input, you should attempt to use a file that is within ±1.5 hours of the SDR file. If there
is more than one such GFS file, use the one with the smaller forecast time step. For
example, if your data time is 15 UTC, you should try to use the 3 hour forecast field
from the 1200 UTC model run, instead of the 9 hour forecast field from the 0600 UTC
run. If no GDAS or GFS file is available using the above logic, use a GDAS file that is
closest in time but within ±7 days of the granule time.
2. ssmi_nise: The dates for the NSIDC Near-real time Ice and Snow Extent (NISE)
datasets should be as close as possible to the dates of the L1B granules. It is
recommended to use an ancillary file that is within ±14 days of the granule time. The
dates for the NISE ancillary files are encoded in the filenames as
NISE_SSMIF13_yyyymmdd.HDFEOS. The ssmi_nise files are required for all
products.
3. viirs.vafip: If used, the VIIRS Active Fires ARP input data product must be generated
using the ACTIVEFIRES_SPA. This is because the VIIRS Cloud Mask algorithm
expects the VIIRS Active Fires ARP input to contain the “fireMask” dataset in it.
4. The data products generated by this SPA may be visualized with the DRL's H2G_SPA
(Hierarchical Data Format [HDF] to Georeferenced Tagged Image File Format
[GeoTIFF] Converter Science Processing Algorithm). H2G is designed specifically for
Direct Readout applications to create geolocated GeoTIFF images, jpeg browse
images, and png browse images for parameter datasets in SNPP products and EOS
products. H2G_SPA and its User Guide are available for download from the DRL Web
* Where yyyy, mm, dd, hh represents the year, month and day of month for start of swath; the
first hh, mm, ss, S represents the hour, minutes, seconds and 10th of a second for the start
of swath and the second hh, mm, ss, S represents the end time of the swath.
NOTE: The services VIIRS-SDR and VIIRS_C-SDR must never be run simultaneously.