digital-elevation-model icon indicating copy to clipboard operation
digital-elevation-model copied to clipboard

To transform, project, visualize, and read Digital Elevation Models (ASTERGDEMv2.0 and EUDEMv1.1). [简单实用] 数字高程模型的变换、投影、可视化和读取。

Python for Processing Digital Elevation Models

image image image image

English Version | 中文版

This is a Python implementation of transforming, projecting, converting, and visualizing Digital Elevation Models as well as reading their elevation of given locations.

Table of Contents

  • Terms and Abbreviations
  • Functions
  • DEM Data
    • ASTERGDEM
    • EUDEM
  • Dependencies
  • Pipeline of Processing ASTERGDEM
  • Usage
    • Usage of ASTERGDEM
    • Usage of EUDEM
  • Results
    • DEM Images of London
    • Elevation of London
  • References

Terms and Abbreviations

Term Abbreviation Remark
Digital Elevation Model DEM -
Geographic Coordinate System GCS [Longitude, Latitude, Elevation] on 3D ellipsoid
Projected Coordinate System PCS [X-coor, Y-coor, Elevation] on 2D plane
Georeferenced Tagged Image File Format GeoTIFF Data Format of DEM (e.g., .tif)
European Petroleum Survey Group EPSG EPSG codes identify different GCSs and PCSs
1984 World Geodetic System WGS-84 GCS, EPSG-4326, approx. the ellipsoid of Earth
Pseudo Mercator (Web Mercator) - PCS of WGS-84, EPSG-3857
1936 Ordnance Survey Great Britain OSGB-36 GCS, EPSG-4277, approx. the ellipsoid of Britain
British National Grid BNG PCS of OSGB-36, EPSG-27700
1989 European Terrestrial Reference System ETRS-89 GCS, EPSG-4258, approx. the ellipsoid of Europe
Lambert Azimuthal Equal-Area LAEA PCS of ETRS-89, EPSG-3035

Functions

  • Transforming DEM from one GCS (e.g., WGS-84) to another GCS (e.g., OSGB-36).

  • Projecting DEM from one GCS (e.g., OSGB-36) to the related PCS (e.g., BNG).

  • Converting DEM from one PCS (e.g., LAEA) to the related GCS (e.g., ETRS-89).

  • Visualizing DEM in PCS as a 2D image.

  • Reading the elevation of given locations from DEM in GCS.

DEM Data

ASTERGDEM

  • Update To access and download ASTERGDEM data set, see link.

  • ~~ASTERGDEMv2.0 download link: https://earthexplorer.usgs.gov/~~

  • ~~See Introduction of ASTGDEMv20.pdf for detailed introduction and user guide (recommended).~~

EUDEM

  • EUDEMv1.1 download link: https://land.copernicus.eu/imagery-in-situ/eu-dem/eu-dem-v1.1

  • See here for detailed introduction and user guide.

Dependencies

  • gdal (osgeo) 1.11.3
  • matplotlib 3.0.2
  • numpy 1.15.4
  • pandas 0.23.4

The following procedures (1-2) for installing GDAL are recapitulated from mothergeo.

  1. Install GDAL Development Libraries and export environment variables for the compiler in Terminal.
$ sudo apt-get install libgdal-dev

$ export CPLUS_INCLUDE_PATH=/usr/include/gdal
$ export C_INCLUDE_PATH=/usr/include/gdal
  1. Install GDAL Python Libraries in Terminal.
$ pip install GDAL

If it comes with the error: cpl_vsi_error.h: No such file or directory, please try the following procedures.

  1. Check the required version of GDAL Python Libraries in Terminal.
$ gdal-config --version
  1. Download the source file (e.g., gdal-1.11.3.tar.gz) of the related GDAL version (e.g., 1.11.3) from here.

  2. Manually install GDAL Python Libraries in Terminal.

$ cd path/of/downloaded/gdal/package

~$ tar -xvzf gdal-{VERSION}.tar.gz
# E.g., ~$ tar -xvzf gdal-1.11.3.tar.gz

~$ cd extracted/gdal/folder
# E.g., ~$ cd gdal-1.11.3

~$ cd swig
~$ cd python
# The setup.py exists in this directory.

~$ python setup.py build_ext --include-dirs=/usr/include/gdal/
~$ python setup.py install
  1. Run >>> from osgeo import gdal in Python. If no error occurs, the installation is accomplished.

Pipeline of Processing ASTERGDEM

Usage

The directory of source DEMs is shown as below.


└── Data/
    ├── DATA_ASTGDEMv20/
    │   └── EPSG4326_s/
    │       ├── ASTGTM2_N51W001_dem.tif
    │       └── ASTGTM2_N51E000_dem.tif
    └── DATA_EUDEMv11/
        └── EUDEMv11_EPSG3035.tif

Usage of ASTERGDEM

  1. Download DEMs ASTGTM2_N51W001_dem.tif and ASTGTM2_N51E000_dem.tif from here.

  2. Copy DEMs to the folder DATA/DATA_ASTGDEMv20/EPSG4326_s/.

  3. To process ASTREGDEMv2.0 DEMs, run run_DEM_ASTGDEMv20.py or run_DEM_ASTGDEMv20_ipy.ipynb.

  4. The log of running run_DEM_ASTGDEMv20.py can be seen in Log_run_DEM_ASTGDEMv20.txt.

Usage of EUDEM

  1. Download DEM eu_dem_v11_E30N30.tif from here.

  2. Copy DEM to the folder DATA/DATA_EUDEMv11/ and rename it as EUDEMv11_EPSG3035.tif.

  3. To process EUDEMv1.1 DEM, run run_DEM_EUDEMv11.py or run_DEM_EUDEMv11_ipy.ipynb.

  4. The log of running run_DEM_EUDEMv11.py can be seen in Log_run_DEM_EUDEMv11.txt.

Results

DEM Images of London

  • The DEM Image of ASTERGDEMv2.0 in Pseudo Mercator PCS

  • The DEM Image of ASTERGDEMv2.0 in BNG PCS

  • The DEM Image of ASTERGDEMv2.0 in LAEA PCS

Elevation of London

  • The elevation of 24 locations in London (meter)
No. of Location 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
ASTGDEMv20_WD 18 18 38 40 65 26 35 31 17 79 13 41 62 82 9 13 31 31 15 22 24 40 8 40
ASTGDEMv20_UK 14 14 36 25 60 37 33 40 20 68 12 25 62 59 15 18 22 22 15 21 14 33 8 47
ASTGDEMv20_EU 18 18 38 40 65 26 35 31 17 79 13 41 62 82 9 13 31 31 15 22 24 40 8 40
EUDEMv11_WD 12 12 37 30 61 25 29 36 11 66 11 31 64 79 7 27 25 25 14 15 13 32 5 36
EUDEMv11_UK 12 12 37 26 58 30 32 35 11 71 8 30 66 78 8 26 24 24 8 16 13 32 9 35
EUDEMv11_EU 12 12 37 30 61 25 29 36 11 66 11 31 64 79 7 27 25 25 14 15 13 32 5 36

References

[1] EPSG 4326 vs EPSG 3857 (projections, datums, coordinate systems, and more!)

[2] Coordinate systems and projections for beginners

[3] CSDN Blog


Please report an issue if you have any question about this repository, I will respond ASAP.

Please star this repository if you found its content useful. Thank you very much. ^_^