1 stable release

1.0.0 Aug 13, 2024
0.2.2 Jul 15, 2024
0.2.1 May 13, 2024
0.1.1 May 10, 2024

#828 in Parser implementations

MIT license

83KB
824 lines

DTED Reader for Rust

LICENSE Crates.io Version Minimum rustc version

dted2 surface

Refactor of dted, with updated version of nom, improved functionality, added features, fixes, and optimizations!

Usage

use dted2::{ DTEDData, DTEDMetadata };

let data = DTEDData::read("dted_file.dt2").unwrap();
let metadata: DTEDMetadata = data.metadata;
// or can read just the header without the rest of the data
let metadata: DTEDMetadata = DTEDData::read_header("dted_file.dt2").unwrap();

// query elevation, returns None if out of bounds
let elevation: f64 = data.get_elevation(50.0, 10.0).unwrap();

Description

The dted2 crate is a Rust library designed to parse and handle DTED (Digital Terrain Elevation Data) files. DTED files are a standard format used for storing raster elevation data, particularly for military and simulation applications. The data in DTED files is stored in a matrix of elevation points, representing the terrain's height above a given datum. This format supports several military and simulation applications including line-of-sight analysis, 3D visualization, and mission planning.

DTED data is organized into three levels of resolution:

  • Level 0: Approximately 900 meters between data points.
  • Level 1: Approximately 90 meters between data points.
  • Level 2: Approximately 30 meters between data points. Each level of DTED provides different details suitable for various precision requirements in applications.

Features

  • Data Handling: Efficient handling of large datasets with options to process only required sections of data for memory management.
  • Read Functionality: Parse DTED files (.dt0, .dt1, .dt2) into usable data structures. Currently only .dt2 files have been tested. dt1 and dt0 files should in theory work.

TODO

  • Geographic Processing: Convert DTED raster data into geographic coordinates based on the WGS84 datum.
  • Additional DTED Header parsing: Add support for additional header records. Currently both DSI and ACC records are being worked on, and only the standard UHL header is being read alongside the data.

Dependencies

~1.1–1.9MB
~37K SLoC