fio_planet:来自Planet Labs的Fiona CLI插件。
项目描述
fio-planet
来自Planet Labs的Fiona CLI插件包。
这些CLI命令用于创建Unix管道,用于操作GeoJSON特征流。此类管道提供了比GeoPandas、PostGIS或QGIS等更复杂工具的部分功能,适用于处理数百个特征流,其中管道各部分之间的JSON序列化的开销是可以容忍的。
安装
python -m pip install --user fio-planet
用法
fio-planet为Fiona的fio
程序添加了filter
、map
和reduce
命令。这些命令提供了空间SQL的一些功能,但作用于GeoJSON特征序列中的特征,而不是空间RDBMS表中的行。fio-filter减少特征序列,fio-map乘以并转换特征,fio-reduce将许多特征的序列转换为恰好一个序列。结合使用,可以实现许多转换。
表达式采用括号列表的形式,可能包含其他表达式。列表中的第一个项目是函数或方法的名称,或者评估为函数的表达式。第二个项目是函数的第一个参数或方法绑定到的对象。其余列表项是命名函数或方法的定位和关键字参数。表达式中的函数和可调用项包括
- Python运算符,如
+
、/
和<=
以及truth
、not
和is
- Python内置函数,如
dict
、list
和map
- itertools的所有公共函数,例如
islice
和repeat
- 所有可从Shapely 2.0导入的功能,例如
Point
和unary_union
- Shapely几何类的所有方法
- 仅fio-planet特有的函数
以下是一个求值结果为Shapely Point实例的表达式。
(Point 0 0)
Point
是一个可调用的实例构造函数,成对的 0
值是位置参数。注意,表达式最外层的括号是可选的。
以下是一个使用 buffer
求值结果为多边形的表达式。
buffer (Point 0 0) :distance 1.0
内部表达式 (Point 0 0)
求值结果为一个Shapely Point实例,buffer
求值结果为 shapely.buffer()
,而 :distance 1.0
将 1.0 赋值给该方法 distance
关键字参数。
在 fio-planet 表达式中,所有坐标和几何对象都在 OGC:CRS84
参考系中,就像GeoJSON。然而,与长度或面积相关的函数参数,如buffer的距离参数,被认为是米为单位。
fio-filter 和 fio-map 在GeoJSON特征及其几何属性上下文中评估表达式。这些分别命名为 f
和 g
。例如,以下是一个测试输入特征是否在给定点50米范围内的表达式。
<= (distance g (Point -105.0 39.753056)) 50.0
fio-reduce 在所有输入几何形状的序列上下文中评估表达式,该序列命名为 c
。例如,此表达式使用Shapely的 unary_union
溶解输入几何形状。
unary_union c
支持
文档托管在Read the Docs上:https://fio-planet.readthedocs.io/en/latest/。
如有使用帮助,请使用项目讨论论坛或发送电子邮件至 developers@planet.com。
如果您认为您找到了一个错误,请使用项目问题跟踪器。
路线图
1.0版本向Fiona的 fio
CLI添加了 filter
、map
和 reduce
。
请注意,1.0版本的表达式中没有条件形式。项目可能会在1.0之后添加 cond
。
贡献
在1.0之前,项目更关注对现有命令的反馈,而不是新的命令。
项目使用 black、flake8、mypy 和 tox 进行静态检查和测试。
black src tests && flake8 && mypy && tox
作者和致谢
此项目的贡献者是
- Sean Gillies sean.gillies@planet.com
许可证
Apache License,版本2.0。
项目详细信息
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解更多关于 安装软件包 的信息。