2 releases
0.4.1 | Aug 14, 2024 |
---|---|
0.4.0 | Jan 21, 2024 |
0.3.2 |
|
0.2.1 |
|
#59 in Geospatial
41 downloads per month
385KB
353 lines
japan-geoid
A library for calculating geoid heights in Japan using GSI's geoid model. It is implemented in Rust and additionally supports Python and JavaScript. The library contains geoid data based on GSIGEO2011 (gsigeo2011_ver2_2.asc
), created with the permission: 「測量法に基づく国土地理院長承認(使用)R 5JHs 560」.
日本のジオイド高を計算するためライブラリです。Rust で実装されており、Python と JavaScript (Wasm) でも利用できます。国土地理院のジオイドモデル「日本のジオイド2011」を用いて、国土地理院による C++ のサンプルコードに準拠した補間計算を行います。本ライブラリには、日本のジオイド2011 v.2.2 (gsigeo2011_ver2_2.asc
) を元にしたジオイドデータが同梱されています(測量法に基づく国土地理院長承認(使用)R 5JHs 560)。
License: MIT
本ライブラリは、国土地理院が提供するものではありません。
Python
Installation
pip install japan-geoid -U
Usage
from japan_geoid import load_embedded_gsigeo2011
# Load the embedded GSIGEO2011 model.
geoid = load_embedded_gsigeo2011()
# Calculate the geoid height.
(lng, lat) = (138.2839817085188, 37.12378643088312)
height = geoid.get_height(lng, lat)
print(f"{lng=} {lat=} {height=}")
# Returns NaN if the input is outside the domain.
geoid.get_height(10.0, 10.0)) # => nan
# The library also works with Numpy.
import numpy as np
geoid.get_heights(
np.array([138.2839817085188, 141.36199967724426]),
np.array([37.12378643088312, 43.06539278249951]),
)
Rust
Installation
cargo add japan-geoid
Usage
use japan_geoid::gsi::load_embedded_gsigeo2011;
use japan_geoid::Geoid;
fn main() {
// Load the embedded GSIGEO2011 model.
let geoid = load_embedded_gsigeo2011();
// Calculate the geoid height.
let (lng, lat) = (138.2839817085188, 37.12378643088312);
let height = geoid.get_height(lng, lat);
println!("Input: (lng: {lng}, lat: {lat}) -> Geoid height: {height}");
// Returns NaN if the input is outside the domain.
assert!(f64::is_nan(geoid.get_height(10.0, 10.0)))
}
JavaScript (Wasm) - Experimental
Installation
npm add japan-geoid
Usage
import init, { loadEmbeddedGSIGEO2011 } from "japan-geoid";
await init(); // load .wasm
const geoid = loadEmbeddedGSIGEO2011();
console.log(
geoid.getHeight(138.2839817085188, 37.12378643088312)
); // => 39.47387115961899
console.log(
geoid.getHeights(
[138.2839817085188, 141.36199967724426],
[37.12378643088312, 43.06539278249951]
)
); // => Float64Array(2) [ 39.47387115961899, 31.90071200378531 ]
Build
wasm-pack build -t web
python patch_esm.py
License
MIT License
測量法に基づく国土地理院長承認(使用)R 5JHs 560
Authors
- Taku Fukada
- MIERUNE Inc.