Service Recipe For:

FormatStorage LocationAccessTransformation Required

HDF5

DMZ DATAPOOL

RASTER PROXY

YES

Note

This workflow used ArcGIS Server 10.8 and an HDF5 File.

Sample File Available Here: https://asdc.larc.nasa.gov/data/MOPITT/MOP03J.008/2020.03.21/MOP03J-20200321-L3V5.6.3.he5

Step 1:

  • Convert a sample HDF_EOS to a MRF to get the MRF XML structure
  • This command is pulling out one variable from the HDF EOS file.
gdal_translate.exe -of MRF -co NOCOPY=TRUE -co COMPRESS=LERC -co CACHEDSOURCE=HDF5_EOS:EOS_GRID:"Path\To\File\MOP03J-20200321-L3V5.6.3.he5":MOP03:APrioriCOTotalColumnDay HDF5_EOS:EOS_GRID:"Path\To\File\2020.03.21\MOP03J-20200321-L3V5.6.3.he5":MOP03:APrioriCOTotalColumnDay Path\To\new\file\location\tmp\mopapriori.mrf

Step 2:

  • Open .MRF and add in <DataFile>, <IndexFile>, and <CachedSource> to MRF file. This will make it a Raster Proxy pointing to the real HDF5 file.
    • <DataFile> 
      • Location on the ArcGIS Server where the cache file will be created and stored
    • <IndexFile>
      • Location on the ArcGIS Server where the cache file will be created and stored
    • <CachedSource><Source>
      • Add the variable to be filtered out of the HDF5 into the source location.
        • HDF5_EOS:EOS_GRID:Path\to\the\file\MOP03J-20200321-L3V5.6.3.he5:MOP03:APrioriCOTotalColumnDay


NOTE

It is recommended that if you are using a Raster Proxy and CSV that you replace the <Projection> tag with the simplified projection as to not have to have comma/character conflicts later in the process.

Original:

<Projection>GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,

AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]</Projection>

Replacement:

<Projection>EPSG:4326</Projection>

NOTE

MOP03 Product displays Upside Down - Near term fix is to reverse Y in raster proxy.

Original
<BoundingBox minx="-180.00000000" miny="-90.00000000" maxx="180.00000000" maxy=" 90.00000000" />

Replacement
<BoundingBox minx="-180.00000000" miny="90.00000000" maxx="180.00000000" maxy=" -90.00000000" />

NOTE

The path to file must be local and files should reside locally, not in S3. Neither vsis3 nor .acs connection file works.
MRF with Added Tags
<MRF_META>
  <CachedSource>
    <Source>HDF5_EOS:EOS_GRID:"Path\To\The\File\MOP03J-20200321-L3V5.6.3.he5:MOP03:APrioriCOTotalColumnDay</Source>
  </CachedSource>
  <Raster>
    <Size x="360" y="180" c="1" />
    <PageSize x="512" y="512" c="1" />
    <Compression>LERC</Compression>
    <DataType>Float32</DataType>
    <DataValues NoData="-9999" />
    <DataFile>Path\To\Your\Cache\Location\APrioriCOTotalColumnDay_1.mrfcache</DataFile>
    <IndexFile>Path\To\Your\Cache\Location\APrioriCOTotalColumnDay_1.mrfcache</IndexFile>
  </Raster>
  <GeoTags>
    <BoundingBox minx="-180.00000000" miny="-90.00000000" maxx="180.00000000" maxy=" 90.00000000" />
    <Projection>EPSG:4326</Projection>
  </GeoTags>
</MRF_META>

Step 3:

  • Create a Database Table or CSV with the following headings:

    OBJECTID,Variable,Dimensions,StdTime,StdTime_Max,Name,Long_Name,Raster

Note

More table headings can be added. Minimum required are Variable, Dimensions, StdTime, and Raster if using a multidimensional dataset.

Step 4:

  • Add the Raster Proxy to CSV Table under the "Raster" column. 

OBJECTID,Variable,Dimensions,StdTime,StdTime_Max,Name,Long_Name,Raster
0,APrioriCOTotalColumnDay,"StdTime",03-21-2020 0:00:00,03-21-2020 11:59:59,MOP03J-20200321-L3V5.6.3.APrioriCOTotalColumnDay,A Priori CO Total Column Day,<MRF_META><CachedSource><Source>HDF5_EOS:EOS_GRID:"Path\To\File\MOP03J-20200321-L3V5.6.3.he5":MOP03:APrioriCOTotalColumnDay</Source></CachedSource><Raster><Size x="360" y="180" c="1" /><PageSize x="512" y="512" c="1" /><Compression>LERC</Compression><DataType>Float32</DataType><DataValues NoData="-9999" /><DataFile>Path\To\Cache\Location\APrioriCOTotalColumnDay_1.mrfcache</DataFile><IndexFile>Path\To\Cache\Location\APrioriCOTotalColumnDay_1.mrfcache</IndexFile></Raster><GeoTags><BoundingBox minx="-180.00000000" miny="-90.00000000" maxx="180.00000000" maxy=" 90.00000000" /><Projection>EPSG:4326</Projection></GeoTags></MRF_META>

Step 5:

  • Create Mosaic Dataset
  • Use the AddRasters to Mosaic tool. Raster Type = Table and point to the CSV

Step 6:

  • Right click on Mosaic Dataset
  • Modify > Build Multidimensional Info (using because we used raster proxy)
    Build Multidimensional Information since using a Raster Proxy and Table

Step 7:

  • Set Raster Properties

Step 6:

  • Publish Service (Using MDCS or API)








  • No labels