我意思是新建的列表类似于[<POLYGON ((3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05...>, <POLYGON ((3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05...>]
时间: 2023-09-05 10:12:47 浏览: 193
层次列表,这里已三层列表为例
如果你的新建列表中的多边形数据是以字符串的形式表示,类似于`[<POLYGON ((3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05...)>, <POLYGON ((3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05...)>]`,你可以使用GeoPandas库的`WKTReader`来将这些字符串转换为几何数据。下面是一个示例代码:
```python
import geopandas as gpd
from shapely.wkt import loads
# 创建新的多边形数据列表
polygon_strings = [
'POLYGON ((3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05 3.45e+06, 3.46e+05...)',
'POLYGON ((3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05 3.45e+06, 3.45e+05...)'
]
# 将字符串转换为几何数据
polygons = [loads(polygon_string) for polygon_string in polygon_strings]
# 创建新的GeoDataFrame
new_data = {'geometry': polygons}
new_gdf = gpd.GeoDataFrame(new_data)
# 读取原始的GeoJSON数据
file = gpd.read_file('original.geojson')
# 将新建的多边形数据与原始数据合并
merged_gdf = gpd.GeoDataFrame(pd.concat([file, new_gdf], ignore_index=True))
# 将更新后的数据保存到新的GeoJSON文件中
merged_gdf.to_file('updated.geojson', driver='GeoJSON')
```
在上面的示例代码中,我们首先创建了一个包含多边形字符串的列表(`polygon_strings`),你可以根据实际情况修改这些字符串。然后,我们使用`loads()`函数将字符串转换为几何数据,并将其存储在`polygons`列表中。
接下来,我们使用`gpd.GeoDataFrame()`创建一个新的GeoDataFrame(`new_gdf`),其中`geometry`列存储了多边形数据。
然后,我们使用`gpd.read_file()`函数读取原始的GeoJSON数据,将其存储在`file`变量中。
最后,我们使用`pd.concat()`函数将新建的GeoDataFrame与原始的GeoDataFrame合并,并将结果存储在`merged_gdf`中。最后,我们将更新后的数据保存到一个新的GeoJSON文件中(在示例中为`updated.geojson`)。
请确保你已经安装了GeoPandas库,并根据实际需求修改示例代码中的多边形字符串和文件路径。
阅读全文