如何存储cascaded_union

时间:2016-02-28 17:29:10

标签: python arrays shapely

我有一个代码,它在python中使用函数cascaded_union()执行一组三角形的并集。

print cascaded_union(triangle)

当我打印它时,它给出以下输出: -

POLYGON ((211 55, 0 0, 150 204, 185 216, 215 159, 224 132, 211 55))

如何将这些点存储在具有xy坐标的二维数组中?

1 个答案:

答案 0 :(得分:1)

您是否特别需要将几何图形存储为二维数组?例如,是否可以使用标准文本(WKT)格式存储几何图形,该格式可以通过形状容易地生成,例如: my_polygon.wkt,然后以文本或CSV格式存储此输出?您可以稍后使用shapely的wkt.loads()方法重新加载此几何体。虽然您也可以将WKT存储在Redis等键值存储中。

如果首选二进制文件,则可以类似地使用WKB功能。但是如果你要做很多这样的事情,那就考虑使用一个完整的GIS数据库,比如PostGIS,它可以原生地使用这些几何类型。

但是,如果您特别需要2d数组,那么首先需要以形状方式访问多边形的外部linearRing组件,然后将其转换为numpy数组。换句话说:

from shapely import geometry
import numpy as np
my_poly = cascaded_union(triangle)
my_2d_array = np.array(my_poly.exterior)
print(my_2d_array)

如果存在,您需要对多边形内的任何内部组件/孔重复此操作。

相关问题