如何优雅地构造geodataframe

如何构造geodataframe

1 通过经纬度构造

1.1 geopandas.points_from_xy

import pandas as pd
df = pd.DataFrame(
    {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],
     'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],
     'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48],
     'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]})
df

如何优雅地构造geodataframe
import geopandas
gdf = geopandas.GeoDataFrame(
    df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude))
gdf

如何优雅地构造geodataframe
如何优雅地构造geodataframe

1.2 利用apply,shapely构造(更通用)

from shapely import geometry
df['geometry']=df.apply(lambda x: geometry.Point(x.Longitude,x.Latitude),axis=1)
gdf=geopandas.GeoDataFrame(df,geometry='geometry')
gdf

如何优雅地构造geodataframe

shapely.geometry.Point(x, y)用于创建单个 对象
shapely.geometry.MultiPoint([(x1, y1), (x2, y2), …])用于创建 多点集合
shapely.geometry.LineString([(x1, y1), (x2, y2), …])用于创建多点按顺序连接的 线
shapely.geometry.MultiLineString([LineString1, LineString2])用于创建多条 线段的集合
shapely.geometry.Polygon([(x1, y1), (x2,y2),…])用于创建 无孔面

2 通过wkt文本构造

from shapely import wkt
diffs=pd.read_csv(r"C:\Users\fff507\Desktop\南北高架100_diff.csv")
diffs=diffs[pd.notna(diffs['geometry_y'])]
diffs['geometry_y']=diffs['geometry_y'].apply(wkt.loads)
diffs=gpd.GeoDataFrame(diffs,crs="EPSG:32651",geometry='geometry_y')

diffs[‘geometry_y’]=diffs[‘geometry_y’].apply(wkt.loads)
这一句是关键,wkt.loads函数可以解析wkt文本到geometry对象

wkt是一种表达几何图形和空间索引系统的简单文本格式,可以通过shapely.wkt.loads()将wkt格式文本载入为几何图形,而几何图形也可以通过自己的wkt属性将自己转换为原来的wkt格式。

diffs.loc[0,'geometry_y'].wkt

如何优雅地构造geodataframe
import matplotlib as mpl
import matplotlib.pyplot as plt
import plot_map
import seaborn as sns
fig     = plt.figure(1,(8,8),dpi = 100)
ax      = plt.subplot(111)
cmap = mpl.cm.get_cmap('Set3')
norm = mpl.colors.Normalize(min(diffs['nums_diff']), max(diffs['nums_diff']))
fcb = fig.colorbar(mpl.cm.ScalarMappable(norm=norm, cmap=cmap),ax=ax)
diffs.plot(ax=ax,column='nums_diff',cmap=cmap)
plt.axis('off')

如何优雅地构造geodataframe

Original: https://blog.csdn.net/qq_38412868/article/details/112950465
Author: fff2zrx
Title: 如何优雅地构造geodataframe

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/742561/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球