lake-elevation 0.1.1

Reservoir and lake elevation math: percent-of-pool, storage conversions, datum conversions (ft<->m), and full-pool / conservation-pool calculations.
Documentation
  • Coverage
  • 100%
    18 out of 18 items documented2 out of 13 items with examples
  • Size
  • Source code size: 15.16 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 222.5 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 5s Average build duration of successful builds.
  • all releases: 4s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Documentation
  • theluckystrike/lakelevelnow
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • theluckystrike

lake-elevation

Reservoir and lake elevation math: percent-of-pool, storage conversions (acre-foot <-> cubic meter), datum conversions (feet <-> meters), and the full-pool / conservation-pool calculations used by USACE, USGS, and Bureau of Reclamation reservoir operations. Pure Rust, no dependencies.

The same math behind the LakeLevelNow live US lake-level tracker.

Conventions

  • Elevations are in feet or meters above a datum (e.g. NGVD29 / NAVD88).
  • A reservoir's conservation pool is the normal operating range between a minimum (inactive / dead pool) elevation and the full-pool (top of conservation) elevation.
  • Percent of pool is the fraction of that usable range currently filled.
  • An acre-foot is the volume covering 1 acre to a depth of 1 ft (exactly 43,560 ft^3).
  • Conversions are exact under the 1959 international yard agreement: 1 ft = 0.3048 m.

Usage

use lake_elevation::{percent_of_pool, feet_to_meters, acre_feet_to_cubic_meters};

// Halfway through the conservation pool (800-900 ft operating range)
let pct = percent_of_pool(850.0, 800.0, 900.0); // 50.0

// Exact datum conversion
let meters = feet_to_meters(900.0); // 274.32

// Storage in SI units
let m3 = acre_feet_to_cubic_meters(100_000.0); // ~123,348,184 m^3

Why this matters

Reservoir operators report "percent of conservation pool" daily. LakeLevelNow surfaces the same number for the public so boaters, anglers, and downstream water users can see at a glance whether a lake is full, drawn down, or spilling into the flood pool. This crate is the reference implementation of that arithmetic.

License: MIT