#japan #gsi #model #python #geodesy #calculating #geoid

japan-geoid

使用GSI的地理水准模型计算日本的地理水准高度

2个版本

0.4.1 2024年8月14日
0.4.0 2024年1月21日
0.3.2 2024年1月20日
0.2.1 2024年1月19日

#62 in 地理空间

Download history 38/week @ 2024-05-03 92/week @ 2024-05-10 102/week @ 2024-05-17 54/week @ 2024-05-24 68/week @ 2024-05-31 83/week @ 2024-06-07 84/week @ 2024-06-14 60/week @ 2024-06-21 69/week @ 2024-06-28 25/week @ 2024-07-05 8/week @ 2024-07-12 6/week @ 2024-07-19 25/week @ 2024-07-26 20/week @ 2024-08-02 126/week @ 2024-08-09 52/week @ 2024-08-16

每月 223 次下载

MIT 协议

385KB
353

japan-geoid

Test Maturin codecov Crates.io Version PyPI - Version NPM Version

使用GSI的地理水准模型计算日本地理水准高度的库。它用Rust编写,还支持Python和JavaScript。该库包含基于GSIGEO2011(gsigeo2011_ver2_2.asc)的地理水准数据,经授权创建:「依据测量法获得国土地理院院长的批准(使用)R 5JHs 560」。

这是一个用于计算日本地理水准高度的库。它用Rust实现,还可以使用Python和JavaScript(Wasm)。它使用国土地理院的地理水准模型「日本地理水准2011」,按照国土地理院提供的C++示例代码进行插值计算。该库包含基于日本地理水准2011 v.2.2(gsigeo2011_ver2_2.asc)的地理水准数据(依据测量法获得国土地理院院长的批准(使用)R 5JHs 560)。

许可证:MIT

本库不是国土地理院提供的。

Python

安装

pip install japan-geoid -U

使用

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

安装

cargo add japan-geoid

使用

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) - 实验

安装

npm add japan-geoid

使用

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 ]

构建

wasm-pack build -t web
python patch_esm.py

许可证

MIT许可证

依据测量法获得国土地理院院长的批准(使用)R 5JHs 560

作者

依赖项