Skip to content

Digital Elevation model library in C#. 3D terrain models, line/point Elevations, intervisibility reports

License

Notifications You must be signed in to change notification settings

dem-net/DEM.Net

Repository files navigation

Maintenance Twitter Follow

DEM.Net.Core NuGet Version

DEM.Net.glTF NuGet Version

This library is licensed for personal use or for smal companies generating less than $100,000 annually, for any other cases, please get in touch with us.

DEM.Net

Digital Elevation Model library in C#

  • Elevation queries (point, polylines, heightmap, GPX)
  • 3D export (glTF, STL)
  • Imagery (MapBox, OSM, Stamen) : textured 3D models and normal maps
  • No setup
  • Automatic DEM file download from openTopography.org
  • Fast and optimized queries

See samples here

Check article on Sketchfab API Spotlight : Elevation API

3D model

Supported formats and datasets

Input

  • GeoTIFF (JAXA AW3D, and any GeoTIFF)
  • HGT (Nasa SRTM)
  • netCDF

Output

  • glTF
  • STL

Current dev status

SampleApp

(Work in progress) SampleApp is a Console App used for test purposes, full of samples. It's pretty messy and lacks documentation but names are self explanatory.

How do I use the API ?

Raster operations

  • Use elevationService.DownloadMissingFiles(DEMDataSet.AW3D30, <bbox>) to download and generate metadata for a given dataset.
  • Supported datasets : SRTM GL1 and GL3 (HGT files), AWD30 (GeoTIFF)
  • Use new RasterService().GenerateReport(DEMDataSet.AW3D30, <bounding box>) to download only necessary tiles using remote VRT file.
  • Use rasterService.GenerateFileMetadata(<path to file>, DEMFileFormat.GEOTIFF, false, false) to generate metada for an arbitrary file.
  • Use RasterService.GenerateDirectoryMetadata(samplePath);to generate metadata files for your raster tiles. These metadata files will be used as an index when querying Digital Elevation Model data.

Elevation operations

  • GetLineGeometryElevation
  • GetPointElevation

glTF export

  • glTFService can generate triangulated MeshPrimitives from height maps
  • Export to .gtlf or .glb

Sample data

Acknowledgements / Sources

Third party code and librairies