geopandas如何将点要素的geometry列的经纬度提取到属性
时间: 2024-05-05 22:16:41 浏览: 99
可以使用geopandas中的apply方法和shapely.geometry中的xy属性来提取点要素的经纬度并添加到属性中。具体步骤如下:
1. 读取点要素数据,并将geometry列转换为Point类型:
```
import geopandas as gpd
# 读取点要素数据
gdf = gpd.read_file('points.shp')
# 将geometry列转换为Point类型
gdf['geometry'] = gdf['geometry'].apply(lambda x: x.centroid)
```
2. 创建经度和纬度列,并使用apply方法和xy属性提取经纬度:
```
# 创建经度和纬度列
gdf['longitude'] = None
gdf['latitude'] = None
# 提取经纬度
gdf['longitude'], gdf['latitude'] = gdf['geometry'].apply(lambda x: x.xy[0][0]), gdf['geometry'].apply(lambda x: x.xy[1][0])
```
3. 查看添加经纬度后的属性表:
```
print(gdf.head())
```
输出结果:
```
id geometry longitude latitude
0 1 POINT (116.397 39.907) 116.39722 39.90693
1 2 POINT (116.398 39.907) 116.39822 39.90693
2 3 POINT (116.399 39.907) 116.39922 39.90693
3 4 POINT (116.400 39.907) 116.40022 39.90693
4 5 POINT (116.401 39.907) 116.40122 39.90693
```
阅读全文