MODIS: Difference between revisions

From MRC Centre for Outbreak Analysis and Modelling
Jump to navigation Jump to search
Line 32: Line 32:
=== C ===
=== C ===


Two versions of HDF seem to be common: HDF4 and HDF5. I'm not clear yet which MODIS uses when they call theirs "HDF-EOS". But anyway. There are some ready-built binary libraries for both [https://support.hdfgroup.org/release4/obtain.html HDF4] and [https://support.hdfgroup.org/HDF5/release/obtain518.html HDF5] which look promising. Some linux builds, and also Windows builds in release mode, both 32-bit and 64-bit, built with Visual Studio 2013 and 2015. That's more helpful than most.
Two versions of HDF seem to be common: HDF4 and HDF5. I'm not clear yet which MODIS uses when they call theirs "HDF-EOS". But anyway. There are some ready-built binary libraries for both [https://support.hdfgroup.org/release4/obtain.html HDF4] and [https://support.hdfgroup.org/HDF5/release/obtain518.html HDF5] which look promising. Some linux builds, and also Windows builds in release mode, both 32-bit and 64-bit, built with Visual Studio 2013 and 2015. That's more helpful than most. So.... Here are windows instructions. If you do this for linux, tell me how and I'll add instructions.


Working out how to use them....
* Download the Library above, 64-bit, and the Visual Studio you're using, extract it, and run the installer, which unzips the library to a place of your choice. I recommend a place without spaces in the directory names - it usually makes things simpler somewhere along the lines. For this example, suppose you install it in C:\Lib\HDF.
* Get your project open in Visual Studio, and get into Release x64 bit mode. Open a C file, so you get the right project preferences, and then...
* Open Project Preferences - check it's still configuring 64-bit Release mode.
* In C/C++, General, Additional Include Directories, insert '''C:\Lib\HDF\include;''' (for example)
* In Linker, Input, Additional Dependencies, insert '''libxdr.lib;libszip.lib;libjpeg.lib;libzlib.lib;libmfhdf.lib;libhdf.lib;''' - which is a bit eye-boggling.
* In Linker, General, Additional Library Directories, insert (for example) '''C:\Lib\HDF\lib;'''


== Citation ==
== Citation ==

Revision as of 17:01, 17 March 2017

About

MODIS data is collected by two satellites called Aqua (MOLA/MYD) and Terra (MOLT/MOD). Each satellite uses a 16 day period, and they are in antiphase, giving 8-day resolution. Some products are already combined into single datasets (MCD). A variety of fields are available. This document will describe the generic things about the dataset.

Getting Access

You need to sign up for a password, but after that, downloads are free. The download process is a bit tedious too, so scripting is the way. The source folders we've had reason to use are:

https://e4ftl01.cr.usgs.gov/MOLA/MYD11A2.006/ MODIS/Aqua Land Surface Temperature and Emissivity 8-Day L3 Global 1 km Grid SIN V006
https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.006/ MODIS/Terra Land Surface Temperature and Emissivity 8-Day L3 Global 1 km Grid SIN V006
https://e4ftl01.cr.usgs.gov/MOLA/MYD13A2.006/ MODIS/Aqua Vegetation Indices 16-Day L3 Global 1km Grid SIN V006
https://e4ftl01.cr.usgs.gov/MOLT/MOD13A2.006/ MODIS/Terra Vegetation Indices 16-Day L3 Global 1km Grid SIN V006
https://e4ftl01.cr.usgs.gov/MOTA/MCD12Q1.051/ MODIS Combined Land Cover Type Yearly L3 Global 500 m SIN Grid

File Format

The file format is the HDF format. More details to follow, as I discover what exactly it is and how to interpet it.


Example Code

C

Two versions of HDF seem to be common: HDF4 and HDF5. I'm not clear yet which MODIS uses when they call theirs "HDF-EOS". But anyway. There are some ready-built binary libraries for both HDF4 and HDF5 which look promising. Some linux builds, and also Windows builds in release mode, both 32-bit and 64-bit, built with Visual Studio 2013 and 2015. That's more helpful than most. So.... Here are windows instructions. If you do this for linux, tell me how and I'll add instructions.

  • Download the Library above, 64-bit, and the Visual Studio you're using, extract it, and run the installer, which unzips the library to a place of your choice. I recommend a place without spaces in the directory names - it usually makes things simpler somewhere along the lines. For this example, suppose you install it in C:\Lib\HDF.
  • Get your project open in Visual Studio, and get into Release x64 bit mode. Open a C file, so you get the right project preferences, and then...
  • Open Project Preferences - check it's still configuring 64-bit Release mode.
  • In C/C++, General, Additional Include Directories, insert C:\Lib\HDF\include; (for example)
  • In Linker, Input, Additional Dependencies, insert libxdr.lib;libszip.lib;libjpeg.lib;libzlib.lib;libmfhdf.lib;libhdf.lib; - which is a bit eye-boggling.
  • In Linker, General, Additional Library Directories, insert (for example) C:\Lib\HDF\lib;

Citation

For the datasets we used above:-

Z. Wan, S. H., G.Hulley. (2015). MYD11A2 MODIS/Aqua Land Surface Temperature/Emissivity 8-Day L3 Global 1km SIN Grid V006. NASA EOSDIS Land Processes DAAC. https://doi.org/10.5067/MODIS/MYD11A2.006

Z. Wan, S. H., G.Hulley. (2015). MOD11A2 MODIS/Terra Land Surface Temperature/Emissivity 8-Day L3 Global 1km SIN Grid V006. NASA EOSDIS Land Processes DAAC. https://doi.org/10.5067/MODIS/MOD11A2.006

K. Didan. (2015). MYD13A2 MODIS/Aqua Vegetation Indices 16-Day L3 Global 1km SIN Grid V006. NASA EOSDIS Land Processes DAAC. https://doi.org/10.5067/MODIS/MYD13A2.006

K. Didan. (2015). MOD13A2 MODIS/Terra Vegetation Indices 16-Day L3 Global 1km SIN Grid V006. NASA EOSDIS Land Processes DAAC. https://doi.org/10.5067/MODIS/MOD13A2.006

(No specific citation for the MCD dataset)