Skip to main content

Road Grade Inference Tool (GradeIT) appends elevation and road grade to a sequence of GPS points.

Project description

GradeIT

Road Grade Inference Tool (GradeIT) - a python package, developed by the National Renewable Energy Laboratory, to append elevation and road grade to a sequence of GPS points.

Overview

GradeIT looks up and filters elevation and derives road grade from the USGS Digital Elevation Model to append to GPS points, typically for vehicles traveling on paved roads. The python package offers options to use either the the freely accessible USGS Elevation Point Query Service or a locally available raster database of the elevation model, which provides much faster results.

Setup

Clone or download the git repository.

git clone https://github.com/NREL/gradeit.git

gradeit depends on python 3.8 and up. One way to satisfy this is to use conda:

conda create -n gradeit python=3.8
conda activate gradeit

This will create a new conda environment that uses python 3.8.

Then, you can install the gradeit library

pip install gradeit

or if you're already in the gradeit root directory then:

pip install .

Getting Started

In this repository, docs/demo.py will demonstrate the most basic application of the gradeit package. Additionally, the gradeit-notebooks repo contains various Jupyter notebooks that demonstrate gradeit applications and explore potential improvements.

USGS Elevation Data

The United States Geological Survey offers a variety of products as a part of the National Map project, including bare-earth elevation datasets. The 1/3 arc-second elevation dataset is continuous for the coterminous United States and is therefore used in GradeIT. As shown in docs/demo.ipynb appending elevation and grade to 1000+ points benefits significantly from having a local or network copy of the required USGS elevation data.

NREL has the 1/3 arc-second raster data downloaded to on-site compute resources for large scale needs. Individual users can access the same raster data here.

Download Script

This repository comes with a script you can use to download all of the tiles. You can use the script like this:

export OUTPUT_DIR=path/to/output/
python scripts/get_usgs_tiles.py

The script will then proceed to download all tiles into path/to/output/ which can be used when running gradeit:

results = gradeit(
    df=df,
    source="usgs-local",
    usgs_db_path="path/to/output/",
)

Filters

Given the spatial noise that can be present in GPS data and the 1/3 arc-second resolution of the digital elevation model being employed, outliers and unrealistic topographical features can be present in the raw elevation profiles. Therefore, a series of filtering procedures can be applied to the elevation data, if desired by the user. The primary filter procedure is summarized in the figure below from Wood et al in 2014.

Wood, Eric, E. Burton, A. Duran, and J. Gonder. Appending High-Resolution Elevation Data to GPS Speed Traces for Vehicle Energy Modeling and Simulation. No. NREL/TP-5400-61109. National Renewable Energy Lab.(NREL), Golden, CO (United States), 2014.

Additionally, since the USGS Digital Elevation Model is a "bare earth" model, road infrastructure features (i.e. bridges and overpasses) are often not represented in the data. Rather, the "bare earth" model represents the valley or body of water that is being spanned. GradeIT has optional filtering routines to explicitly handle this by "building" a bridge to span the river, valley, etc where necessary.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gradeit-0.1.2.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

gradeit-0.1.2-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file gradeit-0.1.2.tar.gz.

File metadata

  • Download URL: gradeit-0.1.2.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for gradeit-0.1.2.tar.gz
Algorithm Hash digest
SHA256 76a2c70db5fcd3a9903b94bfdea3c88d46f5c7a22b0d61415c3ad4d78e087243
MD5 1ed8ab927a50b63dcfba89ffa49daa42
BLAKE2b-256 22ba7fad0a01cbdfe2dfa4622bfbdd917e516547bd947751b26664a60d1f44c1

See more details on using hashes here.

File details

Details for the file gradeit-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: gradeit-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for gradeit-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d5e9ea8233ef5d39d6d23c7450b90adb8c2635e38a6f86d544bcdaaa031b66cb
MD5 5ef237c53192bb7c5986a3b1aeb51dda
BLAKE2b-256 665cf93267248add86012f7d345896a7da61674e27ccdcfb2472960c32a042d4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page