David Shean edited this page Nov 22, 2016 · 68 revisions

IceFlow wiki

Quick Links

[Google Drive]

Original project page

Original subproject page

What do we call it?

IceFlow, gmbflow, GMBflow

Overall idea

Develop a workflow to derive glacier mass balance from a set of remote-sensing derived DEMs.

Steps for Development

  • Set up and organize repository - David & David

    • Research and add better notes for properly working with submodules
  1. Research and develop tools to download freely available data (SRTM, ASTER, landcover, ...) Iliyana, David S

  2. DEM co-registration - Ellie, Salvatore

    • Need mask of exposed rock surfaces for each input DEM, see demcoreg/dem_mask.py skipping this to save time.
    • Run ASP's pc_align (see Section A.17 of Official ASP documentation
    • OR run one of the functions in demcoreg/coreglib.py to determine appropriate translation
    • Compute elevation difference stats before and after co-registration

    • (1) run glacierhack_WV_coreg_all.sh in the folder with the un corrected DEMS

    • (2) run glacier hack_32_translate.sh in the folder with the corrected DEMS

  3. Elevation change difference/trends - Salvatore, Amaury

  4. Interpolation, filtering, and gap filling - Salvatore, Iliyana, Jessica

    • David S will dig up some existings Python scripts for filling nodata using several methods (GDAL, inpainting)
    • See [iceflow/dem_fill.py]
    • See [pygeotools/lib/filtlib.py] - some filters
    • Do latest versions of OpenCV inpainting support Float32 inputs?

    • Continuous space-time?

      • Create DEMStack from arbitrary list of DEM inputs using make_stack.py
      • Run ndinterp.py with an input mask defining desired spatial extent for interpolation (or comment out for full stack extent)
      • Currently stuck with hardcoded values for desired output timestamp, etc.
  5. Density assumptions/model

    • Compute mass change - Amaury, David L.

    • David S added vol_stats.py for reference and quick analysis

    • Assumes constant density for ice and prints stats of total volume change for unmasked pixels
  6. Visualization

  7. Documentation/packaging - All

Git beginners project

Create a set of tools to read and display rasters and vectors, preferably using Python classes:

  • read/save rasters using GDAL - see georaster/georaster.py and the GeoHackWeek course

  • display the raster with coordinates, with different colorbar options (e.g. grey level for Byte type, RdBu for positive/negative values, viridis for only one sign...) using matplotlib/basemap - see visualization tools

  • read RGI outlines and display - see geoutils/geovector.py and GeoHackWeek course that uses GeoPanda

  • create a quick raster/vector visualization tool that can be run from command-line using argparse - see pygeotools/pygeotools/warptool.py and argparse website


The workflow is composed of a set of 5 independent scripts, detailed below.

  1. Original DEMs => || warptool.py || => warped DEMs

  2. warped DEMs + RGI mask + landcover => || demcoreg.py || => coregistered DEMs

  3. coregistered DEMs => || elevation_change.py || => dhdt

  4. dhdt => || gap_filling.py || => filled dhdt

  5. filled dhdt + RGI outlines => || mass_balance.py || => individual glacier MB

We will work with the 32 m WV DEMs. Two that have similar geographic coverage (and align with the ASTER DEMs) are: WV01_20141022 and WV01_20150607, both in the Khumbu_ASP directory.

In order for the scripts to interact, we need to agree on some specifications:

  • format: the common format is GeoTIFF

  • no data value: store the GTiff with no data value = -9999

  • filename: the individuals DEMs will have a prefix to identify the DEM source (e.g. WV_, ASTER_...), the acquisition date written in the format YYYYMMDD, followed by a suffix depending on the processing step: ID_YYYYMMDD_warped.TIF , ID_YYYYMMDD_coreg.TIF...


We will start with the WV DEMs provided by David Shean. They cover 2 regions, we will start with the Ngozumpa glacier. The DEMs at 32 m resolution are all in the data/WV_Ngozumpa folder on the Google drive.

Later, we can try to apply the processing chain to WV_Everest and to the ASTER DEMs.


Amaury Dehecq (adehecq)

David Shean (dshean)

David Lilien (dlilien)

Salvatore G. Candela (scandelaOSU)

Ellie Bash (ellie-b)

Jessica Scheick (JessicaS11)

Iliyana Dobreva (iliyanadobreva)


whiteboard 11/15/16