Hot answers tagged

15

If you look at the product page at LPDAAC, under Layers there is a table that lists each of the bands in the dataset and their characteristics. For the NDVI layer, it is a 16-bit signed integer with a fill value of -3000, and a valid range from -2000 to 10000. However, there is also a scale factor of 0.0001, or 1/10,000. This means that a value of 10000 in ...


11

The project website hosts the MOD16 dataset on an FTP server. As FTPs allow directory listings you can easily download complete folders without having to click individual links. This can be done with most FTP clients - a popular one would be FileZilla. Just right click the folder you want and select download. edit: The question now specifies that only one ...


10

You need the subdataset full name from the query on the file: gdalinfo MOD04_L2.A2003001.0005.051.2010313005421.hdf >2003.txt With the subdataset name, you get the GCP coordinates in pixel and lon/lat: gdalinfo HDF4_EOS:EOS_SWATH:"MOD04_L2.A2003001.0005.051.2010313005421.hdf":mod04:Image_Optical_Depth_Land_And_Ocean >>2003a.txt With the ...


7

I think you almost have it. Be sure to add single quotes around the entire input name with double quotes around the hdf file name. gdal_translate -of GTiff 'HDF4_EOS:EOS_GRID:"MOD13C2.A2001001.005.2007078152825.hdf":MOD_Grid_monthly_CMG_VI:CMG 0.05 Deg Monthly NDVI' Hope that helps


7

HDF4 support is not available in GDAL by default. If you're using the GDAL binaries and python libraries from GISInternals, these do not have HDF4 support compiled in (at the time this answer was originally posted in July 2013, however HDF4 support was added to the GISInternal GDAL build in Nov. 2013). HDF4 support is compiled in the OSGeo4W GDAL binaries. ...


7

If you know R, you can use the package "gdalUtils" and run gdal_translate to do that. If you are on Linux make sure to install GDAL. If you are on Windows, you're good to go. These are the basic commands to handle the conversion to .tiff and the reprojection to WGS84. out.files <- list.files(getwd(), pattern="hdf$", full.names=FALSE) #create a list with ...


7

you can find the H and V index in all MODIS product file name. These indices refer to the grid below (from the MODIS Website). For instance you have H8V6 (MOD17A3.A2000001.h08v06.055.2011276103801.hdf).


7

Landsat and Modis are optical sensors, which means that they provide digital numbers of reflected materials that are within the electromagnetic spectrum. These values correspond to the wave length of the corresponding satellite band. To get elevation from just the raw values would be impossible. The only potential means to collect elevation information would ...


7

This is a good question, naturally isn't obvious how to handle this kind of data. For example, the product State QA has 16 bits and there are single, double and triple bit flags combinations: For example, a bit flag combination as 0-0-0-0-0-0-00-01-001-0-00 means: 00 cloud state: clear 0 cloud shadow: no 001 land/water flag: land 01 aerosol quality: low 00 ...


6

All of the detailed information about MOD12 data can be found in the Algorithm Theoretical Basis Document (ATBD). On page 23, it says that the forest classes require >60% coverage of the pixel.


6

Information on how to convert the digital values ("digital numbers" or DN) in satellite remote sensing data that is operationally produced and distributed into physical quantities of interest is generally found in the data user guide. In this case, you need the user guide for the MODIS 11 Level 2 product. Under "scientific data sets (SDS" there is a table ...


6

So MODIS is a complex instrument and it has been a while since I worked with the data. So bear that in mind. If we look at band 1, the data is pretty good: But as you point out with band 7 the data does not line up. I had to check it myself because I was certain it had to do with the different channels per band (which is why the raw RSR file have from 20-...


6

The Readme.docx inside the zip file gives some hints on the projection, but maybe misleading. The raster is in an interrupted Goode Homolosine projection, based on the MODIS sphere. So I created the following custom CRS: +proj=igh +R=6371007 +no_defs reprojected a Natural Earth shapefile into it, and it fits to the raster data with the same CRS assigned (...


6

Here is my code I use to convert all HDFs in a folder to GeoTIFF via GDAL (OSGEO4w) in Windows when working with SST data. Remember to use the OSGEO4W version to get hdf support. for %A in ("C:\temp\*.hdf") do gdal_translate -of GTiff -a_srs "+init=epsg:4326" -a_ullr -180 90 180 -90 -co "COMPRESS=PACKBITS" -sds "%A" "%A.tiff for %A in ("C:\temp\*.hdf") do ...


6

I have used a robust regression approach, for downscaling of climate data, with consistent success. The idea is that you treat the lower-resolution data as the dependent variable, as a sample or population, and sample the higher-resolution data, treating it as the independent variable, to build a bivariate (or even multivariate) regression model. You then ...


6

Per https://lpdaac.usgs.gov/dataset_discovery/modis, the viewing swath width of MODIS is 2,330 km, thus a large portion of the image is off-nadir in some way. https://modis.gsfc.nasa.gov/about/specifications.php The following forum post gives an explanation of how to calculate pixel size based on viewing position. (Note: still an estimate due to factors ...


5

Most MODIS QA data (including the Cloud Mask data) are not stored as separate raster bands, where each band is a grid where each cell is one value of one QA data field. Instead, the QA data are concatenated into strings of bits. So instead of having Band 1 be 00 and Band 2 be 11, they just concatenated them (right-to-left) as 1100 which is a completely ...


5

Just a tiny error, as far as I can see. Your substrings are incorrect. This can be seen by comparing the result from a 'which(df$bits="0000100001000100")' with a number of observed unique values, which can be seen in ArcGIS when colouring the tif-file by unique values. 00001000 01000100 = 2116, and there are 3891233 of that number in both ArcGIS and R. This ...


5

I think you're misunderstanding the bit packing in the QA flags as your example with 32 is incorrect. 32 is 00100000 in binary so can only mean bad data in the 6th input (bits are numbered from right to left). As another example, 11 is 0001011 in binary, so means there was bad data in the 1st, 2nd and 4th inputs. The quality flags for MOD44B are: Bit Input ...


5

As mentioned in the files metadata, the modis source data has a scale factor of 0.02. QGIS applies it on-the-fly. But the reprojection with gdalwarp destroys the scale factor information, hence the result is unscaled. You have to apply it manually to get the correct results.


5

It represent from January 1st to January 16th. Here you got some information: From Agricultural and Forest Meteorology 161 (2012) 15–25 The day of year (DOY) for each MODIS image represents the first day of the period of the 8- or 16-day composite. The day during the composite period when the best observation is recorded is called the day of pixel ...


5

My guess is you are trying to combine the two 16-day composites into a synthethic 8-day composite containing data from both Aqua and Terra (as has been proposed in many research papers). You can do this by simply merging both collections and then sorting according to the central acquisition date. https://code.earthengine.google.com/...


5

MODIS data is produced and distributed as a large number of products, and occasionally it can happen that the same product is produced by various agencies, or even tools available from one single data archive, in different data formats, projections, subsetted versions, gridded & swath etc. So it is customary to refer to a particular product, the source ...


5

var sst = ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI') .select('sst') .filterDate(ee.Date('2013-01-01'), ee.Date('2017-12-31')) var months = ee.List.sequence(1, 12); var years = ee.List.sequence(2013, 2017); var byMonthYear = ee.ImageCollection.fromImages( years.map(function(y) { return months.map(function (m) { return sst ...


5

var mergeBands = function(image, previous) { return ee.Image(previous).addBands(image); }; var merged = MOD1.iterate(mergeBands, ee.Image([]));


5

You just need the function 'toBands()' and apply that on the image collection. Unfortunately, the function cannot deal with similar band names (at least, for your MODIS collection: it works fine for landsat and Sentinel), so you will need to change the band names. For simplicity, I changed the band names to the date the image was acquired. Update: bandnames ...


4

I got your email. Sadly I don't have experience creating MODIS cloud masks. I've used the MOD35 cloud mask data, but I've never done the calculations myself. That being said, I believe that MOD09 reflectance data are already corrected for cloudcover. There is a 2-bit word in the MOD09 QA layer for "Cloud state" that can be either Clear, Cloudy, Mixed, or ...


4

The PRISM Climate Group's data is exceptional. Their raster products include precipitation, max temp, min temp, dewpoint and historic data. NASA's MODIS site has a wealth of data as does this USGS site. You will find a wide range of products there from vegetation indices to emissivity and burn data.


4

The WorldClim dataset has a lot of the data you want. It is free for non-commercial use and has interpolated 1 km resolution data on: average monthly mean temperature (°C * 10) average monthly minimum temperature (°C * 10) average monthly maximum temperature (°C * 10) average monthly precipitation (mm)


4

for rainfall you can download the TRMM datasets: http://trmm.gsfc.nasa.gov/


Only top voted, non community-wiki answers of a minimum length are eligible