Detailed evapotranspiration raster

Hi everybody!
I’m trying to use the Urban cooling model on the metropolitan area of Milan and Brusells. The model requires a raster of the reference evapotranspiration. I only found raster with 500m precision but I’m looking for something more precise. I’ve found NASA data, with resolution of 70m, (here https://search.earthdata.nasa.gov/search/granules?p=C1534730469-LPDAAC_ECS&pg[0][gsk]=-start_date&q=ecostress&m=51.7587890625!2.091796875!5!1!0!0%2C2&ac=true&tl=1586264418!4!!) but they are stored as .hdf5 (or .h5) and I can’t open them.

Do you have any advice? My landuse has a precision of 10m and I would like to obtain something quite precise from the model.

Thank you,

Sebastian

Hi Sebastian -

That’s a rather cool dataset - thanks for bringing it to our attention! Global datasets are generally rather coarse, even more so for climate data, so 70m is impressive, I’ll have to check it out.

Which GIS software are you using? I was able to at least bring one of these files into ArcGIS, it lets you select different subsets within the h5 file. The pixel values were wrong, but when I exported one of the subsets to a .tif it had more reasonable values (which seem to be in W/m2, according to the data’s user guide.) Taking a quick scan of the docs, I haven’t seen any info about what coordinate system they’re in, and none is set, so when in doubt I try WGS84 and see how it looks.

I would expect QGIS to have similar functionality, but haven’t tried it out.

You can also create your own ET layer. There are a variety of equations available, which generally use data like precipitation, temperature and solar radiation, if you have these at the finer scale you’re looking for. Some direction for making these is in the Annual Water Yield User Guide Appendix.

~ Stacie

1 Like

Thank you Stacie! I was trying, with no success, on QGIS. I’ve just tried on ArcGIS and it works better: the only problem is that everything is displayed as ‘no data’ (orange):

I don’t know if this is the most appropriate context to talk about it, but do you have any idea of how should I proceed on ArcGIS?

Thank you!

Hi Sebastian -

Honestly, I do not know how to proceed, I haven’t worked with these data before, and obviously it’s not straightforward in either Arc or Q (although both claim to support HDF5.) There may be tutorials or something out there that would help, and if you find one that does, please post it here, it will surely help others. (And I’ll do the same when I have time to investigate this cool dataset further…) Sorry I can’t be of more help at the moment.

~ Stacie

Hi @SebastianBr,

I found this HDF5 viewer tool that might be helpful. It looks like those .h5 files from the Earthdata website each contain multiple subdatasets, along with metadata. I’m not sure why ArcGIS isn’t showing it correctly, but GDAL does have a HDF5 driver, so you can access the contents via the command line.

The data appears to have no defined projection, but the HDF5 file contains a NorthBoundingCoordinate, SouthBoundingCoordinate, EastBoundingCoordinate, and WestBoundingCoordinate under StandardMetadata/. I’m not sure which corner it’s indexed from…

Here’s an example of how you could access the file and convert it to a more typical raster format using Python and GDAL:

Python 3.7.9 (default, Aug 31 2020, 07:22:35) 
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import gdal
>>> import numpy
>>> 
>>> h5_path = '/Users/emily/Downloads/ECOSTRESS_L3_ET_PT-JPL_12208_008_20200831T055358_0601_01.h5'
>>> dataset = gdal.OpenEx(h5_path, gdal.OF_RASTER)
>>> dataset
<osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x7f8c981e0ed0> >
>>> subdatasets = dataset.GetSubDatasets()
>>> subdataset_path = subdatasets[0][0]
>>> subdataset_path
'HDF5:"/Users/emily/Downloads/ECOSTRESS_L3_ET_PT-JPL_12208_008_20200831T055358_0601_01.h5"://EVAPOTRANSPIRATION_PT-JPL/ETcanopy'
>>> 
>>> array = gdal.Open(subdataset_path).ReadAsArray()
>>> raster_driver = gdal.GetDriverByName('GTIFF')  # export to GeoTIFF format
>>> y, x = array.shape    
>>> new_raster = raster_driver.Create('/Users/emily/Documents/out.tif', x, y, 1, gdal.GDT_Float64)
>>> new_band = new_raster.GetRasterBand(1)
>>> new_band.WriteArray(base_array)
>>> new_raster.FlushCache()

You would still need to figure out how to set the origin, projection and nodata value appropriately. Hope that helps!

3 Likes

Thank you @esoth and @swolny ,
I found this python script created in order to open ECOSTRESS data: https://git.earthdata.nasa.gov/projects/LPDUR/repos/ecostress_swath2grid/browse

I’m not able to use python so I’m proceeding quite slowly, I hope this could be a solution!

Again, thank you: I’ll post here any news.

Sebastian

1 Like

Hi @swolny @esoth,
I found this online tool https://lpdaacsvc.cr.usgs.gov/appeears/, really useful that allows to download elaborated data such as the 70m map: I managed to download the evapotranspiration raster I needed! The only problem is that not all rasters are complete so you have to further develop it and convert from W/m2 to mm. My advice is to download the heaviest ones (don’t worry, they are something like 10-20Mb) because they are less fragmented.

1 Like

Very interesting, and very useful, @SebastianBr! Thanks so much for letting us know. I’m doing a test area now, it was easy enough to go through the process, but somehow the result I got didn’t have valid ET values, so I’ll have to play with it more. But it’s very useful to be able to export to TIFF etc, so hopefully I’ll get it to work.

~ Stacie

1 Like