I need icesat2 elevation data for DEM validation process. I have been trying to extract elevation data only from icesat-2 dataset that i downloaded from earthdata but unable to successfully extract it in arcgis, global mapper, qgis or erdas imagine as it is in hdf. / h5 format. I have downloaded couple of tools eg hdf data viewer but still couldn’t successfully extract elevation values in .xsls format. If someone can please guide about the porcess, would be highly appreciated.

  • $\begingroup$ You'll need to add a lot more details to your question, right now it's probably very hard to answer because people will not know what you tried, what failed, what you read already, what you didn't understand, etc. Just for example, "I have downloaded couple of tools eg hdf data viewer but still couldn’t successfully extract elevation values..." What tools, what went wrong, what didn't work, what documentation did you read, etc. Thanks, and Welcome to Space! $\endgroup$
    – uhoh
    Commented Dec 31, 2019 at 14:35
  • $\begingroup$ if you found either answer helpful and you haven't considered it yet, please consider accepting one of the answers by clicking the checkmark icon below the up/down voting arrows next to the answer of your choice. Thanks! $\endgroup$
    – uhoh
    Commented Jun 7, 2020 at 0:03

2 Answers 2


You could also check out icepyx, a Python library that was created specifically for obtaining and working with ICESat-2 data in a straightforward and easy way. It's still in development to expand the available features (one of which will be reading the hdf5 files into other data formats), but it works to download data from the NSIDC. During the download process you can select which variables you want, your spatial and temporal extent, and have the data delivered in a few different file types (such as a GeoTIFF, ASCII, or other geospatial file that is easily opened with one of the software programs you mentioned). This might be an option if you're still needing help opening ICESat-2 data in the short term. Please check out our example Jupyter Notebooks for getting and subsetting data.

Information/tutorials available from the University of Washington eScience Institute's ICESat-2 Hackweeks also contain examples for opening and working with ICESat-2 data (both in hdf5 and other geospatial formats). Here are last year's tutorials (they're currently being updated for this year's event).

Full Disclosure: I am the lead developer for icepyx. The effort was motivated by questions similar to yours at a live event in June 2019.


Read the file using Python

Python has a library, py5 that can read and write these types of files. There are good introductions and instructions in

Sample code

import h5py
import pandas as pd

f = h5py.File(filename, 'r')
print('{}'.format(f.keys()) # there may be multiple datasets within

selected_dataset = '' #name your dataset here

data = pd.DataFrame(data=f[selected_dataset].value) # select max of 2 dimensions



  1. You should know basics of Python and Pandas. The code above works when I tested with a sample h5 file. However, I don't use this data format.
  2. Your datasets must be 2-d. If they are of higher dimension, you should pick the two dimensions that make the most sense.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.