我正在尝试使用geopandas
在一组流线上复制ArcGIS溶解的输出。基本上,df/stream_0层是使用^{ArcPy
来解决这一问题
#streams_0.geojson = df.shp = streams_0.shp from Dissolve Setting image
#~~~~~~~~~~~~~~~~~~~~
import geopandas as gpd
df = gpd.read_file('streams_0.geojson')
df.head()
Out[3]:
geometry
0 LINESTRING (400017.781 3000019.250, 400017.781...
1 LINESTRING (400027.781 3000039.250, 400027.781...
2 LINESTRING (400027.781 3000039.250, 400037.781...
3 LINESTRING (400027.781 3000029.250, 400037.781...
4 LINESTRING (400047.781 3000079.250, 400047.781...
我尝试过使用填充列使用gpd.dissole(),但没有成功
df['dissolvefield'] = 1;
df2 = df.dissolve(by='dissolvefield')
df3 = gpd.geoseries.GeoSeries([geom for geom in df2.geometry.iloc[0].geoms])
同样地,在没有运气的情况下,尝试在中匀称地使用一元联合
import fiona
shape1 = fiona.open("df.shp")
first = shape1.next()
from shapely.geometry import shape
shp_geom = shape(first['geometry'])
from shapely.ops import unary_union
shape2 = unary_union(shp_geom)
这似乎是一个简单的解决方案,我想知道为什么我会遇到这么多问题。我的GeoDataFrame仅由线条几何体组成,所以不一定有另一个可以聚合的属性。我基本上只是尝试保持线条的几何图形不变,但删除可能存在的任何重叠特征。我不想拆分这些行,也不想将它们聚合为多部分功能
我使用一元联合体,但无需将其视为形状特征
读取文件并将其放入GPD后(可以直接从*.shp文件执行此操作):
尝试绘制它,以查看输出是否正确
然后像这样使用一元联合,并再次绘图:
最后一步(如有必要)是再次设置为geopandas:
相关问题 更多 >
编程相关推荐