涉及到空间数据处理的时候,为了比较清晰方便的看出空间数据所处的区域,通常都需要将省市边界线加到地图中。 Python中也提供了大量的shp文件处理方法,有底层的一些库,也有一些封装比较完整的库。...']) type:表示shape子文件的类型 id:shape子文件的序号 geometry:包含shape子文件的类型和经纬度信息(字典类型),包含了 type 和 coordinates 两个关键词...,但fiona返回为字典。...如果想看图的时候可以使用ArcGIS或者QGIS,导入文件即可。或者使用geopandas进行处理,geopandas提供了shape文件的处理和可视化,具有更为简便的API。...geopandas 安装 pip install geopandas 文件处理和可视化 import geopandas shps = geopandas.read_file('CHN_adm1.shp
前言 将近两年前,我写过一篇同名文章(见使用Python实现子区域数据分类统计)。 当时是为了统计县域内的植被覆盖量,折腾了一段时间,解决了这个问题。...简单来说,这个需求是将两个 shp 文件的任意两个对象做相交判断,最后形成一个新的空间对象集合,最后对此集合进行简单统计分析即可。...写了两个循环,先是取出大范围的 shp 中的每一个对象,再读取小范围 shp 的每一个对象,将小范围的 shp 空间对象逐个与大的空间对象进行相交操作。...创建两个 GeoDataFrame 对象 geopandas 可以直接将 shp 文件读为 GeoDataFrame 对象,如下: shpdata = GeoDataFrame.from_file(path...buffer 函数执行缓冲区分析,将点以一定的距离扩展成面。
三、子区域数据分类统计 直接进入正题,现有某省的分类统计数据shp文件以及此省的行政区划数据shp文件。...代码如下: from geopandas import * 3.2 读取此省分类统计数据及行政区划数据 然后从该省的分类统计数据shp文件中读出此数据。...regiondata_crs)): geo = regiondata_crs.geometry[i] name = regiondata_crs.NAME[i] 其中geo就是取到的当前市的空间数据...假设该shp文件还包含了一个NAME属性,那么我们就可以用“.NAME”的方式提取出当前市的name数据,其他属性同理。...可以看出在geopandas中只需要对geometry对象使用area属性即可获取其面积。 最后将面积以id为key保存到area字典当中。
Parquet 和 Feather 文件格式的写入(以及读回): python 写入到 Parquet 文件 ddf.to_parquet("path/to/dir/") 从 Parquet 文件读取...ddf = dask_geopandas.read_parquet("path/to/dir/") 传统的 GIS 文件格式可以读入到分区的 GeoDataFrame 中(需要 pyogrio),但不支持写入...检查最终保存步骤 在保存结果时,如果尝试将整个处理后的数据集写入单个文件,这可能也会导致内存问题。...dask_geopandas目前可能不支持直接写入文件格式如Shapefile,因为这通常涉及将数据集合并到单个分区。你可能需要先将数据写入Parquet等格式,或者手动分批写入。...另外gpkg可以使用geopandas转为为需要的shp In [ ]: import geopandas as gpd import pandas as pd # GeoPackage文件列表 gpkg_files
本文将介绍如何使用 geopandas 和 shapely 来读取、处理、可视化和保存地理Shapefile文件。 1....保存为新的 Shapefile (.shp)文件 最后,我们将删除指定区域内的地理要素保存为一个新的 Shapefile 文件: new_shp_file = "海南省界/海南省界Export_Output.shp..." gdf.to_file(new_shp_file) 通过 to_file 函数,我们可以将 GeoDataFrame 对象保存为一个新的 Shapefile 文件。...Shapefile 文件 new_shp_file = "海南省界/海南省界Export_Output.shp" gdf.to_file(new_shp_file) 分析说明 导入需要使用的库 geopandas...定义一个变量 new_shp_file,指定保存新 Shapefile 文件的路径。 使用 gdf.to_file() 函数将更新后的地理数据保存为新的 Shapefile 文件。
下面将简单介绍击中常用的数据格式: Shapefile文件 使用最普遍的地理空间格式是Esri的Shapefile文件,可以通过arcgis软件或者第三方转换工具包将任意格式的矢量数据转换成Shapefile...ASCII格式 ASCII网格文件就是将栅格数据存放在一个文本文件中,包含数据本身和数据的信息,通过文件头,读取数据。...这种直接操作shp文件的库外,dbfpy3提供了直接处理shp文件中的dbf文件项的功能,更方便快捷。...GeoPandas GeoPandas是由Shapely,Fiona,PyProj,matplotlib以及其他必需的库一同构建的Pandas的地理空间扩展。...plt gdf=geopandas.GeoDataFrame census=gdf.from_file("GIS_CENSUS_poly.shp") census.plot() plot.show()
本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件的名称,从另一个文件夹中找到与这一文件夹中文件同名的文件,并将找到的同名文件复制到第三个文件夹中的方 首先...现有一个文件夹,其中有大量的Excel表格文件(在本文中我们就以csv格式的文件为例)——这一文件夹中的文件其实也就是我们通过文章Python筛选出多个Excel中数据缺失率高的文件筛选得到的文件;如下图所示...此外,我们还有一个文件夹(我们将其称作大文件夹),其中存放了较之上图所示的文件夹中,更多的Excel表格文件;我们希望实现的是,从这个大文件夹中,找到与上图所示文件夹中Excel表格文件同名的文件,并将找到的同名文件复制到另一个新的文件夹中...接下来,我们构建新文件的完整路径new_file_path,其中new_path是新文件夹的路径,file是源文件夹中的文件名。最后,使用shutil.copy函数将目标文件复制到新文件夹中。 ...最后一行代码调用了copy_file_with_name函数,传入了三个文件夹的路径作为参数,从一个文件夹中复制文件到另一个文件夹中。
import geopandas as gpd # 读取中国地图数据 china = gpd.read_file('china-shapefiles-master/china.shp',encoding...得知FCNAME为省,与excel中省字段相同(注意:如果Excel中省,为河北或者北京),必须与字典数据总保持一致。...第三步:合并Excel数据和地图信息,地图信息中的,FCNAME列与Excel数据中的省列相同,作为关键字,将NaN变为0 #合并excel文件与地图文件,将NaN变为0 merged = china.set_index...ax, edgecolor='0.8', legend=True) plt.show() 最后代码 #-*- coding: utf-8 -*- import pandas as pd import geopandas...(subset='FCNAME') #合并excel文件与地图文件,将NaN变为0 merged = china.set_index('FCNAME').join(df.set_index('省')).
8篇中,我们对geopandas开展空间计算的部分内容进行了介绍,涉及到缓冲区分析、矢量数据简化、仿射变换、叠加分析与空间融合等常见空间计算操作,而本文就将针对geopandas中剩余的其他常用空间计算操作进行介绍...本文是基于geopandas的空间数据分析系列文章的第9篇,也是整个系列文章主线部分内容的最后一篇,通过本文,你将学习到geopandas中的更多常用空间计算方法。...Berlin = gpd.read_file('Berlin/Bezirke__Berlin.shp') Berlin.head() # Gemeinde_n代表镇,即Berlin中每个面文件对应的行政区划名称...空间数据分析系列第一篇文章,到今天这篇为止,geopandas中全部实用的主线内容(截至0.7.0版本),都在这断断续续撰写完成的9篇文章中介绍完毕,不敢说是geopandas中文资料里最好的,但穿插了众多例子和举一反三的内容...geopandas是一个非常优秀的工具,它给了我们进行空间计算的多一种选择,我目前所有工作中涉及到的可以用geopandas解决的问题,都会在jupyter中建立顺滑的工作流。
但是真上手用起来会发现,他其实借用了很多geopandas的东西,绘图数据也以GeoDataFrame格式为主。 另外,这个库包的桑基图命令不能修改线条的宽度,所以只能通过颜色来映射数据的流向。...import MultiPoint extent=[108.3,109.35,29.7,30.7] plt.rcParams['font.sans-serif']=['SimHei'] 接下来,读取地图文件...('EPSG:4326') lichuan_center=(108.95,30.29) data=np.random.rand(15) 接下来使用geopandas的bounds命令,获取到每个地区的中心经纬度...as gpd plt.rcParams['font.sans-serif']=['KaiTi'] shp_path=r'E:\家园\利川市地图\利川.shp' fig=plt.figure(figsize...不知道费弗里大佬将来会不会推出这类地图的完全geopandas的绘制方法。 欢迎关注云台书使公众号获取更多资讯
geoplot -i https://pypi.mirrors.ustc.edu.cn/simple/ 数据读取与处理 ## 读取随机生成的数据 import pandas as pd import geopandas...as gpd import numpy as np # 读取shp文件 shp = gpd.read_file('/home/mw/input/china1656/china_map/china_map.../China_Province_2022.shp') random_nums = 1000*np.random.rand(len(shp)) # 将随机数列添加为新的列 shp['Random'] =...None', ax=ax) plt.title("全国压岁钱分布图") # 显示图形 plt.show() 高清版 import geopandas...ax=ax) # 设置标题 plt.title("全国压岁钱分布图") # 显示图形 plt.show() cartogram(变形统计图) import pandas as pd import geopandas
本篇作为postgis数据库的一个前期探索篇,主要简单分享下postgresql+postgis的环境配置,及其与R语言、Python的API接口调用,以及如何通过这些接口来将shp、json空间地理信息数据源导入...文件。...最后指定编码(这里涉及到中文字符串) df = gpd.read_postgis("select * from bou2_4p",engine,crs = 4326) ?...使用geopandas包中提供的postgis接口函数,导入engine连接池mytest库中的bou2_4p表所有数据。...china_map.to_sql( name = "world", #表名 con = engine, #连接池 if_exists= 'replace', #若已存在同名表
目前气象领域流行的是花式利用地图shp文件进行操作,达到白化的目的。...其他四种都是先判别是不是在指定shp文件内部,然后再画,但是geopandas.clip的办法与Masterpiece的办法会改变数据的维度,导致无法还原为2D数组,不能用在contourf绘制等值线图上...这种方法的过程都是如下: 通过地图库包获取当前shp文件信息→将geometry转化为path→绘制等值线→使用得到的path对等值线的collection进行裁剪。...比如我将下载下来的maskout.py文件放在我的桌面上。...你也可以将这个程序放置到当前anaconda下库包安装位置,也是可以找到的。 这个白化方法,有一个问题就是每更换一次shp文件,就必须重新查找record并对maskout中的相关部分修改。
8篇中,我们对geopandas开展空间计算的部分内容进行了介绍,涉及到缓冲区分析、矢量数据简化、仿射变换、叠加分析与空间融合等常见空间计算操作,而本文就将针对geopandas中剩余的其他常用空间计算操作进行介绍...本文是基于geopandas的空间数据分析系列文章的第9篇,也是整个系列文章主线部分内容的最后一篇,通过本文,你将学习到geopandas中的更多常用空间计算方法。...Berlin = gpd.read_file('Berlin/Bezirke__Berlin.shp') Berlin.head() # Gemeinde_n代表镇,即Berlin中每个面文件对应的行政区划名称...图19 3 写在最后 从2020年2月8日发布了geopandas空间数据分析系列第一篇文章,到今天这篇为止,geopandas中全部实用的主线内容(截至0.7.0版本),都在这断断续续撰写完成的9...geopandas是一个非常优秀的工具,它给了我们进行空间计算的多一种选择,我目前所有工作中涉及到的可以用geopandas解决的问题,都会在jupyter中建立顺滑的工作流。
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...坐标系,不需要坐标系可以省略该参数 geojson = gdf.to_crs(epsg=4326).to_json() # 可以选择将GeoJSON保存到文件 with open('output.geojson...读取Shapefile文件 shp_file_path = 'path_to_your_shapefile.shp' # 替换为你的Shapefile路径 gdf = gpd.read_file(shp_file_path
赫尔辛基大学的 AutoGIS 课程有一个很好的例子,将空间索引与 geopandas 一起使用。 在这篇文章中,我想谈谈另一个名为H3 的空间索引系统。...在这篇文章中,我将向你展示如何创建使用点密度图geopandas和h3-py库在Python。 国家地理空间情报局的海事安全信息门户以反航运活动消息的形式提供所有海盗事件的形状文件。...数据以 zip 文件形式提供ASAM_shp.zip。实际的数据层是一个ASAM_events.shp位于文件夹内的shapefile ASAM_data_download。...import geopandas as gpd from h3 import h3 GeoPandas 允许直接从 zip 文件中读取数据层。...由于 GeoPandas 使用 shapely 库来构建几何,我们将坐标列表转换为一个匀称的 Polygon 对象。
geopandas 0.10版本的诸多新特性,而其中介绍到的地图可视化新方法explore()只是一带而过,没有仔细为大家介绍其功能用法。...今天的文章我就将为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法: 2 在geopandas中制作在线地图可视化 explore()方法类似我们熟悉的plot(...zoom_start:int型,分别用于设置地图的最小、最大及初始化缩放层级,默认值分别为0、18、10 location:元组或列表,用于设置地图初始化时的中心坐标,格式为[纬度, 经度] get到这些参数之后...tooltip categorical:bool型,用于设置是否开启类别映射模式,默认为False legend:bool型,设置是否显示图例,默认为True scheme:字符型,同plot()中的同名参数...: m.save('demo.html') 浏览器中查看已保存的html文件: ----
例如,Shapefile文件可以存储井、河流、湖泊等空间对象的几何位置。除了几何位置,shp文件也可以存储这些空间对象的属性,例如一条河流的名字,一个城市的温度等等。...(geopandas.datasets.get_path('naturalearth_lowres')) geopandas的read_file方法可以读取shape文件,转化为GeoSeries和GeoDataFrame...而geopandas.datasets.get_path('naturalearth_lowres')则是从geopandas自带的数据集中获取世界地图的shapefile文件。...GeoDataFrame文件的输出形式 前面讲到将shapefile读成GeoDataFrame格式,反过来你也可以将GeoDataFrame格式输出为shapefile文件。...比如前面的world: world.to_file("countries.shp") 还可以输出为GeoJson、GeoPackage等地理空间文件类型。
geopandas 0.10版本的诸多新特性,而其中介绍到的地图可视化新方法explore()只是一带而过,没有仔细为大家介绍其功能用法。...今天的文章我就将为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法: 2 在geopandas中制作在线地图可视化 explore()方法类似我们熟悉的plot()...zoom_start:int型,分别用于设置地图的最小、最大及初始化缩放层级,默认值分别为0、18、10 location:元组或列表,用于设置地图初始化时的中心坐标,格式为[纬度, 经度] ❞ get到这些参数之后...tooltip categorical:bool型,用于设置是否开启类别映射模式,默认为False legend:bool型,设置是否显示图例,默认为True scheme:字符型,同plot()中的同名参数...: m.save('demo.html') 浏览器中查看已保存的html文件:
创建mask文件 创建mask文件主要利用的是 regionmask 库,示例如下: 这里采用的是全球海岸线数据创建陆地和海洋mask文件,shape文件可以直接利用 cartopy 进行下载。...import numpy import geopandas as gpd import regionmask as rm cnm = gpd.read_file('natural_earth/physical.../ne_10m_land.shp') lon = np.arange(80, 140, 0.05) lat = np.arange(10, 60.05, 0.05) lm = rm.mask_geopandas...比如,这里我们将降水之类的站点数据读取到 ds 变量之中,其中包含了经纬度信息,那么我们就可以按照如下方式进行筛选了,下图是筛选站点分布: import xarray as xr mask = xr.open_dataset...mask文件筛选数据,比如江苏省shapefile文件。