![]() |
|
CoastWatch HDF |
Caribbean Regional Node |
Information | Data | Software | Sites | Education | Feedback | News
Binary CoastWatch HDF (Hierarchical Data Format) is designed as a compact alternative to the standard CoastWatch format. HDF is a scientific data format supported by a large number of display and analysis packages. The HDF conversion creates an HDF file that conforms to the CoastWatch HDF Metadata Specification (see below) -- that is, a standard HDF scientific dataset with information describing the date, time, and geolocation of the satellite data. CoastWatch HDF datasets contain 16-bit signed integer image data and 8-bit graphics data.
CoastWatch HDF Metadata Specification ------------------------------------- CoastWatch HDF files created by cwftohdf follow a number of conventions for storing CoastWatch satellite data in HDF format: 1) Multiple channels and derived varibles can be stored in one HDF file. A standard CoastWatch product file contains data from one time (ie: satellite pass) and CoastWatch region only. 2) A standard set of global attributes is encoded with the data, describing the time, location, satellite, sensor, etc. from which the data originated. 3) A standard set of variable attributes is encoded with each variable, describing the variable units, scaling factor, etc. as well as any other important information such as the equations and corrections used in data processing. The following table lists the standard set of global attributes for CoastWatch HDF. Since all map projection calculations in the HCWF library are performed using the General Cartographic Transformation Package (GCTP) from the USGS National Mapping Division, a number of global attributes are dedicated to storing GCTP-related parameters. See the GCTP documentation for details on the values of GCTP parameters. NAME TYPE DESCRIPTION -------------------------------------------------------------------- satellite CHAR8 Satellite name, eg: noaa-12, noaa-14, noaa-15, goes-8, orbview-2. sensor CHAR8 Sensor name, eg: avhrr, seawifs. pass_date INT32 Date of satellite pass in days since January 1, 1970. start_time FLOAT64 Start time of satellite pass in seconds since 00:00:00 UTC. pass_type CHAR8 Satellite pass time: day, night. projection CHAR8 Descriptive projection name, eg: mercator, geographic, polar stereographic. gctp_sys INT32 GCTP projection system code. gctp_zone INT32 GCTP zone for UTM projections. gctp_parm FLOAT64 GCTP projection parameters (15). gctp_datum INT32 GCTP spheroid code. et_affine FLOAT64 Earth transform affine parameters (6) - see below for details. rows INT32 Number of data rows. cols INT32 Number of data columns. origin CHAR8 Original data source, eg: USDOC/NOAA/NESDIS CoastWatch. history CHAR8 Newline separated list of utilities and command line parameters used to create the file and perform subsequent processing. The et_affine attribute is used to calculate projection (x,y) coordinates from image (i,j). GCTP is then used to calculate (latitude,longitude) from (x,y). Given the six affine transform parameters as follows: a = et_affine[0] e = et_affine[4] b = et_affine[1] f = et_affine[5] c = et_affine[2] d = et_affine[3] the following vector calculation is performed: |x| |a b| |i| |e| | | = | | | | + | | ( or Y = AX + B ) |y| |c d| |j| |f| where (x,y), (i,j), and (e,f) are column vectors, (a,b,c,d) is a 2x2 matrix, and: x = easting y = northing i = column (1-relative) j = row (1-relative) The inverse operation may be performed by inverting the affine transform: det(A) = ad - bc a' = d / det(A) b' = -b / det(A) c' = -c / det(A) d' = a / det(A) e' = -(a'e + b'f) f' = -(c'e + d'f) so that: |i| |a' b'| |x| |e'| | | = | | | | + | | ( or X = A'Y + B' ) |j| |c' d'| |y| |f'| The following table shows the standard set of variable attributes for CoastWatch HDF. Some attribute groups are created by HDF SD convenience functions, denoted in brackets (), in order to make data more readable and usable by generic HDF viewing programs. A <var> in the TYPE field indicates that the attribute type is the same as the variable data type. NAME TYPE DESCRIPTION -------------------------------------------------------------------- (SDsetdatastrs) long_name CHAR8 Descriptive variable name, eg: AVHRR channel 4, sea surface temperature. units CHAR8 Descriptive units name, eg: celsius, albedo*100%, degrees. format CHAR8 FORTRAN-77 notation for data value printing, eg: F7.2. coordsys CHAR8 Coordinate system - same as global projection attribute. (SDsetfillvalue) _FillValue <var> Value used to fill in for unwritten data. (SDsetcal) scale_factor FLOAT64 Calibration scale factor. scale_factor_err FLOAT64 Calibration scale error. add_offset FLOAT64 Calibration offset. scale_factor FLOAT64 Calibration offset error. calibrated_nt INT32 Code for HDF data type of uncalibrated data. C_format CHAR8 C notation for data value printing, eg: %7.2f. missing_value <var> Value used for missing data, same as _FillValue attribute. solar_corr CHAR8 For AVHRR channel 1 and 2 data, whether the solar zenith angle correction was performed: yes, no. limb_corr CHAR8 For AVHRR channel 4 and 5 data, whether the limb correction was performed: yes, no. nonlinear_corr CHAR8 For AVHRR channel 4 and 5 data, whether the nonlinearity correction was performed: yes, no. sst_equation CHAR8 For sea surface temperature, the SST equation used, eg: nonlinear split-window. percent_good INT16 Good pixels / total pixels * 100%. The calibration attributes are used to read and write channel and ancillary data as follows: float = scale_factor*(int - add_offset) ( on read ) int = float/scale_factor + add_offset ( on write ) where float and int are the floating-point and integer values respectively. See the HDF User's Guide for more details on data calibration. Note that not all variable attributes are required for any given CoastWatch variable; for example the calibration attributes are not needed for graphics data since graphics planes are encoded as 8-bit bytes and require no calibration. Also some attributes such as solar_corr, limb_corr, nonlinear_corr, and sst_equation only have meaning with certain variables.
![]() |
Back to main page | USDOC | NOAA | NESDIS | CoastWatch |