20 likes | 179 Views
Tools and Examples that Improve the Interoperability of NASA HDF-EOS Data. HDF4 Mapping File (XML document). hmap linked with HDF4 library. http://hdfeos.org. Text file Interface. Object Data. NetCDF-4 file. MuQun Yang, Hyo -Kyung Lee, and Mike Folk The HDF Group
E N D
Tools and Examples that Improve the Interoperability of NASA HDF-EOS Data HDF4 Mapping File (XML document) hmap linked with HDF4 library http://hdfeos.org Text file Interface Object Data NetCDF-4 file MuQun Yang, Hyo-Kyung Lee, and Mike Folk The HDF Group The HDF Group has developed and maintained the following tools for the interoperability of NASA HDF and HDF-EOS data. Some tools are still under active development. HDF SDS Interface Groups, Data Objects, Structural and Application Metadata; Locations of Object Data Augmentation HDF-EOS5 file Use netCDF tools to access HDF-EOS via OPeNDAP HDF-EOS5 Augmented HDF-EOS5 file NetCDF4 HDF5 HDF5 Users Terra/Aqua/Aura Translation Layers HDF4/5 Handlers libnc-dap DAP netCDF Visualization Tools OPeNDAP Clients OPeNDAP Servers HDF4/5 Files Use NetCDF-4 to access HDF-EOS5 Use HDF-EOS2 Dumper to help the access of HDF-EOS2 using IDL and MATLAB Example Usage: %eos2dump –a1m MYD02HKM.A2010031.0035.005.2010031183706.hdf HDF-EOS2 File Latitude Longitude in ASCII file Example Latitude Output: -61.0802, -61.0949, -61.1096, -61.1241, -61.1387, -61.1531, -61.1675, -61.1818,-61.196, … HDF-EOS2 Dumper Extract geo-location information Use cases: HDF-EOS2 files with non-geographic projections, like SINSOID and SOM, and swath dimension maps. MATLABIDL Use HDF4 XML Map Writer to access HDF4 using generic file readers HDF4 File Readerprogram This work was supported by cooperative agreement number NNX08AO77A from the National Aeronautics and Space Administration (NASA). Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author[s] and do not necessarily reflect the views of the National Aeronautics and Space Administration.
OPeNDAP Examples MATLAB and IDL examples that use the HDF-EOS2 Dumper outputs HDF-EOS5 Augmentation Tool Example HDF4 XML Map Writer Example http://hdfeos.org CloudFractionAndPressure Data Fields GRIDS HDFEOS [nLevels][nTimes] XDim YDim CloudPressure[XDim][YDim] CloudFraction[XDim][YDim] • GES DISC AIRS IDV • NSIDC AMSR_E IDV • NSIDC AMSR_E Panoply • LaRC MISR Panoply • GES DISC OMI IDV • LP DAAC MODIS IDV • LAADS MODIS Panoply • GES DISC MLS Panoply Products supported: NASA Aura HIRDLS, MLS,OMI, TES, and MEaSUREs GSSAP • Provide coordinates • required by netCDF-4. • Provide the connections between • dimension and dimension scales. • LAADS MODIS Aqua IDL • (Swath) • LP DAAC MODIS Terra MATLAB • (Grid) • NSIDC AMSR_E IDL • (Polar Grid) def __init__(self,hdf_fileName): try: #it opens the HDF creating a file object file_path=path.normpath(hdf_fileName) self.file_handler=file(file_path,"rb") … self.file_handler.seek(int(chunk.attrib["offset"]),0) #if chunk.attrib["compression"] in ("zlib","szip","DEFLATE"): tmp_buffer_object.write(self.file_handler.read(int(chunk.attrib["nBytes"]))) /* Open the hdf file for reading. */ infile = fopen(hdfname, "rb"); if(infile == NULL) { printf("Error opening file: %s\n", hdfname); exit(EXIT_FAILURE); } /* Read the dataset into the buffer. */ buffer = malloc(nBytes); fseek(infile, offset, 0); fread(buffer, 1, nBytes, infile); • Provide offset and bytes • of HDF4 objects in XML. • Read binary data • with fseek() and fread() in C. • Read binary data • with seek() and read() in Python. Acknowledgements: We thank Dan Marinelli, Carol Boquist and Rama Ramapriyan of the NASA ESDIS project; Christopher Lynnes, James Johnson and Fan Fang from NASA GES DISC; Ruth Duerr from NSIDC; James Gallagher from OPeNDAP, Inc.; Cheryl Craig from HIRDLS team; UCAR's NCL User Group and John Evans from MathWorks for their valuable suggestions and help.