如何优雅地构造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/755418/

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

(0)

大家都在看

  • SSTI模板注入

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月2日
    065
  • Lumerical—文件名后缀的含义

    Lumerical—文件名后缀的含义 引言 后缀名含义 作者说明 引言 在 Lumerical中,我们会遇到很多不同的文件类型,它们拥有着不同的后缀名,那么这些后缀名是…

    Python 2023年9月7日
    022
  • pandas填充空数组_pandas缺失值处理

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2022年12月30日
    067
  • “百度杯”CTF比赛 十一月场Fuzz

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月4日
    098
  • 听说你还在不停的粘贴复制?Python用1秒实现excel列合并

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月7日
    076
  • NLP:《ChatGPT: Optimizing Language Models for Dialogue一种优化的对话语言模型》翻译与解读

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年2月4日
    0115
  • 【面试题】JS 如何跨域获取数据

    文章目录 * – JSONP – document.domain – window.name – 参考文献 当两个网址之间域名、端口…

    Python 2023年8月11日
    022
  • Pandas库学习

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月8日
    083
  • Pandas系列基础知识以及DataFrame常用操作

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2022年12月31日
    0114
  • pytest中参数化方法,并且根据执行的命令进行动态参数化

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月17日
    097
  • Python中各模块循环引用的问题

    当项目中的模块太多,或者功能划分不够清晰时,会出现循环引用的问题,具体如下 [En] The problem of circular reference occurs when t…

    Python 2023年5月25日
    022
  • 机器学习的分类

    机器学习的一般分类为: 监督学习、 无监督学习、 半监督学习和 强化学习。下面分别对其进行简要的介绍。 监督学习 监督学习是从有标签的数据中学习统计规律,即找到一个映射函数来映射输…

    Python 2023年10月9日
    021
  • 人脸检测5种方法

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月28日
    0107
  • 某在线商店电子产品销售数据可视化分析

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Python 2023年1月7日
    098
  • 太空射击第11课: Sound and Music

    Sound and Music 在本课中,我们将为游戏添加音效和音乐。在这里可以下载太空射击游戏素材 视频 您可以在此处观看本课程的视频: 声音的力量 良好的音频是为游戏添加&#8…

    Python 2023年9月25日
    016
  • pygame 二次 hello world 项目感知

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

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