geopandas.GeoSeries.set_precision#
- GeoSeries.set_precision(grid_size, mode='valid_output')[来源]#
返回一个
GeoSeries,其精度设置为精度网格大小。默认情况下,几何体使用双精度坐标 (
grid_size=0)。如果精度网格的精度低于输入几何体,坐标将被四舍五入。在网格大小大于0的情况下,线段和多边形中的重复顶点将被删除。如果所有顶点之间的距离都比
grid_size更近,线段和多边形几何体可能会合并为空几何体。在顶点四舍五入后,宽度小于grid_size的多边形中的尖峰或部分将被移除,这可能导致多重多边形或空几何体。如果存在Z值,将不会被修改。- Parameters:
- grid_sizefloat
精度网格大小。如果为0,将使用双精度(如果之前未设置精度网格大小,将不会修改几何形状)。如果该值比输入几何形状更精确,则输入几何形状将不会被修改。
- mode{‘valid_output’, ‘pointwise’, ‘keep_collapsed’}, default ‘valid_output’
该参数确定如何在几何上应用精度减少。共有三种模式:
'valid_output'(默认): 输出始终有效。折叠的几何元素(包括多边形和线条)被移除。重复的顶点被移除。'pointwise': 精度降低是逐点进行的。输出几何形状可能由于折叠或自交而无效。重复的顶点不会被移除。'keep_collapsed': 像默认模式一样,只是保留了折叠的线性几何元素。折叠的多边形输入元素被移除。重复的顶点被移除。
笔记
后续操作将始终在具有更高精度(更小的
grid_size)的几何体精度下进行。相同的精度将附加到操作输出上。输入几何体应该是几何有效的;如果输入几何体无效,可能会出现意外的结果。您可以使用
is_valid()检查有效性,并使用make_valid()方法修复无效的几何体。示例
>>> from shapely import LineString, Point >>> s = geopandas.GeoSeries( ... [ ... Point(0.9, 0.9), ... Point(0.9, 0.9, 0.9), ... LineString([(0, 0), (0, 0.1), (0, 1), (1, 1)]), ... LineString([(0, 0), (0, 0.1), (0.1, 0.1)]) ... ], ... ) >>> s 0 POINT (0.9 0.9) 1 POINT Z (0.9 0.9 0.9) 2 LINESTRING (0 0, 0 0.1, 0 1, 1 1) 3 LINESTRING (0 0, 0 0.1, 0.1 0.1) dtype: geometry
>>> s.set_precision(1) 0 POINT (1 1) 1 POINT Z (1 1 0.9) 2 LINESTRING (0 0, 0 1, 1 1) 3 LINESTRING EMPTY dtype: geometry
>>> s.set_precision(1, mode="pointwise") 0 POINT (1 1) 1 POINT Z (1 1 0.9) 2 LINESTRING (0 0, 0 0, 0 1, 1 1) 3 LINESTRING (0 0, 0 0, 0 0) dtype: geometry
>>> s.set_precision(1, mode="keep_collapsed") 0 POINT (1 1) 1 POINT Z (1 1 0.9) 2 LINESTRING (0 0, 0 1, 1 1) 3 LINESTRING (0 0, 0 0) dtype: geometry