2 个版本
0.1.1 | 2024年2月22日 |
---|---|
0.1.0 | 2024年2月2日 |
107 在 地理空间 中
每月 33 次下载
39KB
733 行
OSM_graph
快速为Python和Rust生成等时区!
该库提供了一套从地理坐标生成等时区和逆等时区的工具。它利用OpenStreetMap数据构建道路网络,并计算在指定时间限制内可到达的区域。该库为Rust和Python设计,提供高性能和易于集成到数据科学工作流程中。
特性
- 图构建:解析OpenStreetMap数据以构建表示道路网络的图。
- 等时区计算:使用Dijkstra算法生成等时区,即在给定点出发在指定时间段内可到达的区域。
- 逆等时区计算:确定在指定时间段内可以到达的点所在区域。
- 凹凸包:支持生成等时区周围的凹凸包,以获得更准确或简化的地理形状。
- 缓存:实现缓存机制以存储和检索预先计算的图,以便更快地访问。
- Python集成:提供Python绑定,以便在Python脚本、笔记本和应用中直接使用库的功能。
- 并发支持:利用Rust的并发功能,在大型数据集上高效地计算等时区。
GeoJSON输出:将等时区转换为GeoJSON格式,以便轻松可视化和集成到地图工具中。
安装
[dependencies]
osm-graph = "0.1.0"
要在Rust中使用库,将其添加到您的Cargo.toml中
pip install pysochrone
对于Python,
maturin develop
或者,确保您已安装Rust和maturin,然后构建和安装Python包
使用方法
use osm_graph::{calculate_isochrones_from_point, HullType};
async fn main() {
let isochrone = isochrone::calculate_isochrones_from_point(
48.123456,
11.123456,
10_000.0,
vec![300.0, 600.0, 900.0, 1_200.0, 1_500.0, 1_800.0],
overpass::NetworkType::Drive,
isochrone::HullType::Convex,
)
.await
.unwrap();
}
Rust
import pysochrone
isochrones = pysochrone.calc_isochrones(
48.123456,
11.123456,
5000,
[600, 1200, 1800],
"Drive",
"Convex"
)
Python
[ ] 测试和基准测试。 [ ] 可自定义速度限制:允许用户为不同类型的道路指定自定义速度限制。 [x] 支持行人及自行车网络:扩展图构建以支持行人及自行车网络类型。 [ ] OSM图的拓扑简化,以提高下游分析的效率。 [ ] 附加道路网络分析。 [ ] 路由引擎。 [ ] 高级缓存策略:实施更复杂的缓存机制以处理动态查询参数。 [ ] 交互式可视化工具:开发一套用于在Web应用程序中交互式可视化等时线的工具。 [ ] API集成:提供与第三方API的集成选项,以增强数据准确性和功能。 [ ] 优化和并行计算:进一步优化图算法并探索大规模数据的并行计算选项。
贡献
欢迎贡献力量!请提交pull请求,提出讨论性问题,并提出新功能或改进建议。
许可证
此库采用MIT许可证。
依赖项
~18–31MB
~480K SLoC