Service Recipe For:

FiletypeStorage LocationTransformation Required

NETCDF 4

MOUNTED DISK

NO

Note

This workflow used ArcGIS Server 10.8 and an NETCDF 4 File.

Sample File Available Here: https://asdc.larc.nasa.gov/data/MISR/MI3MAENF.002/2020.04.01/MISR_AM1_CGAS_FIRSTLOOK_APR_2020_F15_0032.nc

Step 1:

  • Convert a sample NETCDF 4 to an MRF to get the MRF XML structure
  • This command is pulling out one variable from the NETCDF4 file.


gdal_translate.exe -of MRF -co NOCOPY=TRUE -co COMPRESS=LERC -co CACHEDSOURCE=NETCDF:"Path\To\File\MISR_AM1_CGAS_FIRSTLOOK_APR_2020_F15_0032.nc":/Aerosol_Parameter_Average/Aerosol_Optical_Depth NETCDF:"Path\To\File\MISR_AM1_CGAS_FIRSTLOOK_APR_2020_F15_0032.nc":/Aerosol_Parameter_Average/Aerosol_Optical_Depth:0 C:\tmp\misr\misraod.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 NetCDF 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>

CONTINUE FROM HERE


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" />



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. 

  • EDIT:Add in link to create GeoDB table AND note the variable that is not the same past Oct 2017
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 8:

  • Set Time and other mosaic properties (LERC, number of mosaics, etc)

Step 9:

  • Publish Service (Using MDCS or API)








  • No labels