MISR

File Type Storage Location Transformation Required
NetCDF 4 Mounted Disk No

Note*

This workflow used ArcGIS Server 10.8 and an NETCDF 4 File.ample 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.
  • <Index File>
    • Location on the ArcGIS Server where the cache file will be created and stored.
  • <Cached Source> <Source>
    • Add the variable to be filtered out of the HDF5 into the source location.
    • ETCDF:"Path\To\File\MISR_AM1_CGAS_FIRSTLOOK_APR_2020_F15_0032.nc":/Aerosol_Parameter_Average/Aerosol_Optical_Depth
  

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:

<Bounding Box minx='80.00000000" miny="-90.00000000" maxx="180.00000000" maxy=" 90.00000000"/>

Replacement:

<Bounding Box minx='80.00000000" miny="-90.00000000" maxx="180.00000000" maxy=" 90.00000000"/>

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