在其0.11版本中为我们带来的一些重要新特性,其中提到过新的矢量读写后端,使得我们在read_file()以及to_file()中添加参数engine='pyogrio'即可获得500%的性能提升。 ...图片 2 详解geopandas中的pyogrio读写引擎 geopandas0.11版本之后新增的pyogrio引擎,基于geopandas团队开发的同名Python库,其基于OGR,而OGR则是著名的开源栅格空间数据转换框架...文件时,不能正常的解析内容,而针对GeoJSON、gpkg等其他格式矢量文件时则一切正常: GeoJSON文件正常 gpkg文件正常 shapefile文件乱码,亲测即使指定encoding也无效... 所以现阶段建议读取shapefile文件时,可以使用columns+where的组合方式代替sql以实现同样的效果。...2.2 基于pyogrio的矢量文件写出 相较于文件的读取,新引擎中涉及文件写出的功能参数就寡淡很多,只发现一个比较特别的promote_to_multi参数,用于强制将单部件要素转换为多部件要素:
如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal. 由于geopandas涉及到许多第三方依赖,pip安装起来非常麻烦。...因此在本教程中,我只推荐使用conda安装geopandas: conda install geopandas 一行语句即可完成安装。...2.基本使用 设定坐标绘制简单的图形: import geopandas from shapely.geometry import Polygon p1 = Polygon([(0, 0), (1, 0...>>> g.plot() 通过matplot的pyplot,可以将图片保存下来: import matplotlib.pyplot as plt g.plot() plt.savefig("test.png...3.绘制并算出每个省的面积 此外,它最大的亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式)。
2 geopandas 0.11版本重要新特性一览 你可以在旧版本geopandas的基础上进行升级,也可以新建虚拟环境直接安装0.11.0版本,本着谨慎尝鲜的原则,我们可以使用下面的命令一口气完成新虚拟环境的创建...,默认为原先的'fiona',可选'pyogrio',这是由geopandas开发团队维护的另一个库,可大幅度提升对常见矢量文件格式如shapefile的读写速度,以读取具有数百万个多边形的广州市全量建筑物轮廓数据为例...返回的结果与原始矢量记录数量一致,其中呈现GEOMETRYCOLLECTION EMPTY的记录说明其与目标矩形没有交集,我们利用is_empty来反向筛选出发生裁切的矢量记录: 除此之外,你还可以直接将[...在面对日期时间型字段时,无论是写出到GIS文件还是从GIS文件读入,都可以保证正确解析为日期时间型: 你可以在https://github.com/geopandas/geopandas/releases.../tag/v0.11.0查看完整的版本更新说明,总体而言,这次新版本更新带来的重要更新并不太多,但都颇为实用,你可以在自己的数据上使用一番。
图1 本文是基于geopandas的空间数据分析系列文章的第7篇,通过本文你将学习geoplot中的高级绘图API。...2.1 Choropleth Choropleth图又称作地区分布图或面量图,我们在系列之前的深入浅出分层设色篇中详细介绍过其原理及geopandas实现,可以通过将指标值映射到面数据上,以实现对指标值地区分布的可视化.../csse_covid_19_daily_reports_us;使用到的美国本土各州矢量面数据contiguous-usa.geojson已上传到文章开头对应的Github仓库中: 图2 图3 首先我们将两张表中各自对应的州名数据作为键进行连接...因为geopandas基于pyproj管理坐标参考系,而geoplot中的crs子模块来源于cartopy,这一点我跟geoplot的主要开发者聊过,他表示geoplot暂时不支持geopandas中那样自定义任意投影或使用...譬如我们上文中绘制美国区域时频繁使用到的AlbersEqualArea()即之前我们在geopandas中通过proj4自定义的阿尔伯斯等面积投影。
本文将介绍如何使用 geopandas 和 shapely 来读取、处理、可视化和保存地理Shapefile文件。 1....通过下面代码,我们可以使用 geopandas 库中的 read_file 函数来读取 Shapefile 文件,并将其保存为一个 GeoDataFrame 对象: import geopandas...使用 gpd.read_file() 函数读取 Shapefile 文件,并将其保存为 GeoDataFrame 对象 gdf。 创建一个图形窗口,大小为 10x10 英寸。...使用 gdf.difference() 函数,从原始地理数据中删除 bbox 区域内的地理要素,并将结果保存到 gdf 中。10. 创建一个新的图形窗口,大小为 10x10 英寸。...定义一个变量 new_shp_file,指定保存新 Shapefile 文件的路径。 使用 gdf.to_file() 函数将更新后的地理数据保存为新的 Shapefile 文件。
图1 本文是基于geopandas的空间数据分析系列文章的第6篇,通过本文你将学习geoplot中的基础绘图API。...首先我们从一个简单的例子来了解geoplot的基础使用流程: 2.1 从一个简单的例子出发 我们下面所使用到的数据:nyc-boroughs.geojson,记录了纽约的行政区域面文件: import...geopandas as gpd %matplotlib inline # 读入纽约行政区域面文件 nyc_boroughs = gpd.read_file('geometry/nyc-boroughs.geojson...= gpd.read_file('geometry/nyc-collision-factors.geojson') nyc_collision_factors.head() 图3 首先我们使用geoplot...映射房源价格到色彩上 将房源价格列作为色彩映射列,使用mapclassify中的分位数法将价格区间等分成五段,并使用其他的视觉参数和自定义图例参数: import mapclassify as mc
本文将介绍如何使用Python和Geopandas进行地理数据可视化,并提供实用的代码示例。1. 准备工作在开始之前,确保已经安装了Python和Geopandas库。...Geopandas支持多种地理数据格式,包括Shapefile、GeoJSON、Geopackage等。在本示例中,我们将使用一个Shapefile格式的地图数据。...加载地理数据:Geopandas支持多种地理数据格式,包括Shapefile、GeoJSON、Geopackage等,可以使用gpd.read_file()函数加载数据。...数据保存与导出:可以使用Geopandas将地理数据保存为Shapefile、GeoJSON等格式的文件。数据投影与坐标转换:Geopandas支持数据投影和坐标转换,可以将地图投影为不同的投影方式。...通过本文的学习,读者可以掌握使用Python和Geopandas处理和可视化地理数据的基本方法,为实际应用提供支持和指导。
2 geopandas&geoplot近期重要更新内容 2.1 geopandas近期重要更新 2.1.1 新增高性能文件格式 从geopandas0.8.0版本开始,在矢量文件读写方面,新增了.feather...图1 在将geopandas更新到0.8.0版本后,便新增了read_feather()、to_feather()、read_parquet()以及to_parquet()这四个API,但要注意,这些新功能依赖于...pyarrow,首先请确保pyarrow被正确安装,推荐使用conda install -c conda-forge pyarrow来安装。 ...shapefile 325秒 96秒 619MB feather 50秒 25.7秒 128MB parquet 52.4秒 26秒 81.2MB 所以当你要存储的矢量数据规模较大时,可以尝试使用...,其传入格式为: { 'url': 地图源url, 'attribution': 自定义字符串,必填 } 譬如我们可以在一个神奇的网站 http://openwhatevermap.xyz
2 文件IO 2.1 矢量文件的读入 geopandas将fiona作为操纵矢量数据读写功能的后端。...使用到的示例数据为中国地图,CRS为EPSG:4326。...下面分为不同情况来介绍: 完整的shapefile 如图2,这是一个完整的shapefile: 图2 使用geopandas来读取这种形式的shapefile很简单: import geopandas...()来将GeoDataFrame或GeoSeries写出为矢量文件,主要支持shapefile、GeoJSON以及GeoPackage。...GeoDataFrame写出为ESRI Shapefile,设置driver参数为ESRI Shapefile。
写shp文件 构建shp文件的操作很少使用,但有时候可能需要从已有的shp文件中提取一个子区域。...pyshp 安装 pip install pyshp 文件读取 import shapefile shps = shapefile.Reader('CHN_adm2.shp') 读取后返回的 shps...Anqing', '', 0, '', 'Dìjíshì', 'Prefecture City', '安庆市', 'Ānqìng'] 类似 fiona 中获取shape子文件的属性信息,但fiona返回为字典...如果想看图的时候可以使用ArcGIS或者QGIS,导入文件即可。或者使用geopandas进行处理,geopandas提供了shape文件的处理和可视化,具有更为简便的API。...geopandas 安装 pip install geopandas 文件处理和可视化 import geopandas shps = geopandas.read_file('CHN_adm1.shp
2 geopandas&geoplot近期重要更新内容 2.1 geopandas近期重要更新 2.1.1 新增高性能文件格式 从geopandas0.8.0版本开始,在矢量文件读写方面,新增了.feather...parquet两种崭新的数据格式,他们都是Apache Arrow项目下的重要数据格式,提供高性能文件存储服务,使得我们可以既可以快速读写文件,又可以显著减少文件大小,做到了“多快好省”: 图1 在将geopandas...读写shapefile、feather以及parquet三种数据格式的耗时及文件占硬盘空间大小: 图2 图3 具体的性能比较结果如下,可以看到与原始的shapefile相比,feather与parquet...52.4秒 26秒 81.2MB 所以当你要存储的矢量数据规模较大时,可以尝试使用feather和parquet来代替传统的文件格式。...那样自由切换底图,其传入格式为: { 'url': 地图源url, 'attribution': 自定义字符串,必填 } 譬如我们可以在一个神奇的网站 http://openwhatevermap.xyz
本文是基于geopandas的空间数据分析系列文章的第6篇,通过本文你将学习geoplot中的基础绘图API。...geopandas as gpd %matplotlib inline # 读入纽约行政区域面文件 nyc_boroughs = gpd.read_file('geometry/nyc-boroughs.geojson...接着我们使用geoplot中的pointplot将点叠加到图4上: ax = gplt.polyplot(df=nyc_boroughs, projection=gcrs.AlbersEqualArea...映射房源价格到色彩上 将房源价格列作为色彩映射列,使用mapclassify中的分位数法将价格区间等分成五段,并使用其他的视觉参数和自定义图例参数: import mapclassify as mc...映射房源价格到尺寸上 看完了如何映射颜色,下面我们来看看如何将值映射到散点大小上,使用scale='price'来将房源价格映射到散点大小上,再配合一些相关参数进行绘图: import numpy
,具体包括将栅格数据转换为点数据、为这些点数据添加XY坐标、通过空间连接给这些点添加行政区属性、以及计算指定行政区的质心。...代码审查:仔细检查实现代码,尤其是dask-geopandas的部分,确认是否正确使用了并行计算和数据分区功能。 批处理:如果可能,尝试将数据分成更小的批次进行处理,而不是一次性处理所有点。...然后,将其转换为 Dask-GeoPandas DataFrame: python import dask_geopandas 将 GeoPandas DataFrame 分区为 Dask-GeoPandas...相反,你应该直接使用dask_geopandas.read_file来避免将整个数据集一次性加载到内存: python target_dgdf = dask_geopandas.read_file...dask_geopandas目前可能不支持直接写入文件格式如Shapefile,因为这通常涉及将数据集合并到单个分区。你可能需要先将数据写入Parquet等格式,或者手动分批写入。
最近在处理数据,需要筛选陆地、海洋还有特定区域的信息进行分析,主要还是利用shapefile文件创建mask文件,然后进行筛选。...import numpy import geopandas as gpd import regionmask as rm cnm = gpd.read_file('natural_earth/physical...(cnm, lon, lat) lm.data[lm.data >= 0] = 1 # 陆地为 1,海洋为 0 lm.to_netcdf('mask_land_ocean.nc', engine='...比如,这里我们将降水之类的站点数据读取到 ds 变量之中,其中包含了经纬度信息,那么我们就可以按照如下方式进行筛选了,下图是筛选站点分布: import xarray as xr mask = xr.open_dataset...文件创建mask文件筛选数据,比如江苏省shapefile文件。
3.2、使用python将Shapefile转化为GeoJSON 3.2.1、安装geopandas库 pip install geopandas 3.2.2、使用geopandas读取Shapefile...文件,并转换为GeoJSON格式 import geopandas as gpd # 读取Shapefile文件 shp_file_path = 'path_to_your_shapefile.shp...' # 替换为你的Shapefile路径 gdf = gpd.read_file(shp_file_path) # 将GeoDataFrame转换为GeoJSON格式 # epsg=4326代表WGS84...', 'w') as f: f.write(geojson) 3.2.3、使用geopandas库提供的simplify()方法来控制精度 import geopandas as gpd #...# 将GeoJSON保存到文件 with open('output_simplified.geojson', 'w') as f: f.write(geojson) 四、总结 在使用
你可以把这两个数据结构当作地理空间数据的存储器,shapefile文件的pandas呈现。 Shapefile文件用于描述几何体对象:点,折线与多边形。...而geopandas.datasets.get_path('naturalearth_lowres')则是从geopandas自带的数据集中获取世界地图的shapefile文件。...'] = world.centroid # 将新增列设置为几何列 world = world.set_geometry('centroid_column') world.plot() plt.show....set_geometry函数则是将新增列设置为几何列,这样就会按照新的几何列显示地图。...GeoDataFrame文件的输出形式 前面讲到将shapefile读成GeoDataFrame格式,反过来你也可以将GeoDataFrame格式输出为shapefile文件。
图5 Step3: 渲染路网: 图6 了解了上述步骤之后,我们利用requests、geopandas等库仅用不到100行代码就可以参考上述过程,提取所需的shapefile或GeoJSON文件保存到本地...具体的代码部分本文不做详细说明,我将这部分功能封装到文章开头对应Github仓库下的OsmDownloader.py[5]中,可以自行去下载并使用。 下面我们来学习如何在Python中使用它。...2.2 使用方式 提示:请提前安装完成requests、geopandas、pandas以及tqdm这几个三方库。...以成都市为例: # 单个地区路网下载 downloader = OsmDownloader(area='成都市') # area参数控制检索的行政区,请尽量准确填写 downloader.download_shapefile...以上就是本文全部内容,对脚本获取或使用有疑问的可以留言告诉我。 -END-
2 文件IO 2.1 矢量文件的读入 geopandas将fiona作为操纵矢量数据读写功能的后端,使用geopandas.read_file()读取对应类型文件,而在后端实际上是使用fiona.open...,使用到的示例数据为中国地图,CRS为EPSG:4326,本文使用到的所有数据都可以在文章开头提及的Github仓库对应本文路径下找到: ?...图17 2.2 矢量文件的写出 在geopandas中使用to_file()来将GeoDataFrame或GeoSeries写出为矢量文件,主要支持shapefile、GeoJSON以及GeoPackage...GeoDataFrame写出为ESRI Shapefile,设置driver参数为ESRI Shapefile,如果你对文件编码有要求,这里可以使用encoding参数来指定,譬如这里我们指定为utf-...,只需要将driver参数设置为GPKG即可,这里需要注意一个bug:在使用geopandas导出GeoPackage文件时,可能会出现图21所示错误: ?
因此在本教程中,我只推荐使用conda安装geopandas: conda install geopandas 一行语句即可完成安装。...2.基本使用 设定坐标绘制简单的图形: 这些变量所形成的图形如下: 这里有一个重要且强大的用法,通过area属性,geopandas能直接返回这些图形的面积: >>> print(g.area) 0...>>> g.plot() 通过matplot的pyplot,可以将图片保存下来: import matplotlib.pyplot as plt g.plot() plt.savefig("test.png...3.绘制并算出每个省的面积 此外,它最大的亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式)。...读取出来的图形如下: 同样,这个shapefile是省级行政区的,每一个省级行政区都被划分为一个区块,因此可以一行语句算出每个省级行政区所占面积: print(maps.area) # 0 4.156054e
用户通过输入指定城市的名称并检索,等待数据资源加载完成之后就可以在网页中看到渲染好的城市路网,以重庆为例: ? ...了解了上述步骤之后,我们利用requests、geopandas等库仅用不到100行代码就可以参考上述过程,提取所需的shapefile或GeoJSON文件保存到本地,具体的代码部分本文不做详细说明,我将这部分功能封装到文章开头对应...,下面我们来学习如何在Python中使用它。...2.2 使用方式 按照上文所述的地址下载对应脚本之后(请提前安装完成requests、geopandas、pandas以及tqdm这几个三方库),记住其所在路径,接着在其他脚本开头导入模块部分添加:...以上就是本文全部内容,对脚本获取或使用有疑问的可以留言告诉我。
领取专属 10元无门槛券
手把手带您无忧上云