#python #geospatial #arc-gis #geoprocessing

arcrs

使用Rust实现地理处理工具的Python薄包装

8个版本

0.1.1-alpha.72021年1月19日
0.1.1-alpha.62021年1月11日
0.1.1-alpha.42021年1月8日
0.1.1-alpha.32021年1月7日
0.1.0 2021年1月4日

567科学

每月33次下载

LGPL-3.0-or-later

40KB
797

arc-rs

表示使用Rust实现地理处理工具的Python薄包装。地理处理工具在地理空间数据上执行特定任务。这些工具可以集成到复杂的地理空间工作流程中。这些工作流程通常由地理空间分析师在“模型优先”环境中设计。

可以使用Python实现自定义地理处理工具。但是,需要使用稳定的运行时环境、库和框架来实施高级地理空间分析。作为工程师,我不希望错过以下功能:

  • 高效代码生成(编译器伙伴)
  • 快速失败(编译器说:“不!”)
  • 只为你使用的付费(#YAGNI)

如今,最佳选择似乎是Rust。

功能

  • 使用Rust创建自定义地理处理工具
pub trait GpTool {

    fn label(&self) -> &str;

    fn description(&self) -> &str;

    fn parameters(&self) -> Vec<GpParameter>;

    fn execute(&self, py: Python, parameters: Vec<PyParameterValue>, messages: PyGpMessages) -> PyResult<()>;
}
  • 使用Rust执行任何已注册的地理处理工具
let pyresult = gp::tools::execute_tool(py, "arcpy", "ListFeatureClasses", ())?;
let results_as_text = pyresult.as_vecstr();
for result_as_text in results_as_text {
    messages.add_message(&result_as_text)?;
}

说明

使用cargo build release构建源代码。有一个使用提供的Rust实现的自定义地理处理工具的Python工具箱示例。

需求

  • Rust v1.44.1
  • pyo3 v0.12.3

运行时需求

  • Windows 10上的ArcGIS Pro v2.6或更高版本

资源

依赖项

~2.5MB
~46K SLoC