首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(数据科学学习手札77)基于geopandas空间数据分析——文件IO

作为基于geopandas空间数据分析系列文章第三篇,通过本文你将会学习geopandas中文件IO。...图3 缺少投影shapefile   当shapefile中缺失.prj文件时,使用geopandas读入后形成GeoDataFrame会缺失crs属性: ?...图17 2.2 矢量文件写出   在geopandas中使用to_file()来将GeoDataFrame或GeoSeries写出为矢量文件,主要支持shapefile、GeoJSON以及GeoPackage...GeoDataFrame写出为ESRI Shapefile,设置driver参数为ESRI Shapefile,如果你对文件编码有要求,这里可以使用encoding参数来指定,譬如这里我们指定为utf-...图21   但我观察即使出现了上述错误,GeoPackage文件也是成功保存到路径下且整个程序并未被打断,因此可以无视上述错误: ?

2K31
您找到你想要的搜索结果了吗?
是的
没有找到

geopandas&geoplot近期重要更新

07-10)geopandas与geoplot两个常用GISPython库都进行了一系列较为重大内容更新,新增了一些特性,本文就将针对其中比较实际新特性进行介绍。...import Point import pandas as pd from tqdm.notebook import tqdm # 创建虚拟表,其中字段名为了导出shapefile不报错加上非数字前缀...(base, crs='EPSG:4326') # 转换为GeoDataFrame 最终得到一个较为庞大GeoDataFrame,接着我们分别测试geopandas读写shapefile、feather...以及parquet三种数据格式耗时及文件占硬盘空间大小: 图2 图3 具体性能比较结果如下,可以看到与原始shapefile相比,feather与parquet取得了非常卓越性能提升,且parquet...文件体积非常小: 类型 写出耗时 读入耗时 写出文件大小 shapefile 325秒 96秒 619MB feather 50秒 25.7秒 128MB parquet 52.4秒 26秒 81.2MB

76030

(数据科学学习手札89)geopandas&geoplot近期重要更新

-10)geopandas与geoplot两个常用GISPython库都进行了一系列较为重大内容更新,新增了一些特性,本文就将针对其中比较实际新特性进行介绍。...import Point import pandas as pd from tqdm.notebook import tqdm # 创建虚拟表,其中字段名为了导出shapefile不报错加上非数字前缀...(base, crs='EPSG:4326') # 转换为GeoDataFrame   最终得到一个较为庞大GeoDataFrame,接着我们分别测试geopandas读写shapefile、feather...图3   具体性能比较结果如下,可以看到与原始shapefile相比,feather与parquet取得了非常卓越性能提升,且parquet文件体积非常小: 类型 写出耗时 读入耗时 写出文件大小...shapefile 325秒 96秒 619MB feather 50秒 25.7秒 128MB parquet 52.4秒 26秒 81.2MB   所以当你要存储矢量数据规模较大时,可以尝试使用

83320

Geopandas 一行代码算出每个省面积

它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame,使得其操纵和分析平面几何对象非常方便。...由于geopandas涉及许多第三方依赖,pip安装起来非常麻烦。...2.基本使用 设定坐标绘制简单图形: 这些变量所形成图形如下: 这里有一个重要且强大用法,通过area属性,geopandas能直接返回这些图形面积: >>> print(g.area) 0...3.绘制并算出每个省面积 此外,它最大亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素几何位置和属性信息非拓扑简单格式)。...读取出来图形如下: 同样,这个shapefile是省级行政区,每一个省级行政区都被划分为一个区块,因此可以一行语句算出每个省级行政区所占面积: print(maps.area) # 0 4.156054e

1.3K20

#Python实战#神器Geopandas一行代码算出每个省面积

它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame,使得其操纵和分析平面几何对象非常方便。...如果你用是 VSCode编辑器 或 Pycharm,可以直接使用界面下方Terminal. 由于geopandas涉及许多第三方依赖,pip安装起来非常麻烦。...") 学会上面的基本用法, 我们就可以进行简单地图绘制及面积计算了。...3.绘制并算出每个省面积 此外,它最大亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素几何位置和属性信息非拓扑简单格式)。...读取出来图形如下: [b8eb596aa6574ef5bfddbc4393ea803f~tplv-k3u1fbpfcp-zoom-1.image] 同样,这个shapefile是省级行政区,每一个省级行政区都被划分为一个区块

55420

python与地理空间分析(一)

下面将简单介绍击中常用数据格式: Shapefile文件 使用最普遍地理空间格式是EsriShapefile文件,可以通过arcgis软件或者第三方转换工具包将任意格式矢量数据转换成Shapefile...Shapefile文件是一个整体,重命名文件和编辑文件时,需要相关文件保持一致,否则很容易导致数据错误无效。...BeautifulSoup模块主要用来处理格式错误XML文件,也可以解析HTML文件 from bs4 import BeautifulSoup gpx=open("broken_data.gpx")...plt gdf=geopandas.GeoDataFrame census=gdf.from_file("GIS_CENSUS_poly.shp") census.plot() plot.show()...总结 这篇文章是python地理空间分析一个开头,简单介绍了地理空间分析对于数据分析和气象重要作用,介绍了地理空间分析对象,常用到数据以及python中对这些数据处理设计常用包。

7.9K52

气象绘图——白化杂谈

这里只简单讲解一下白化原理: 平流层萝卜程序与气象家园上程序都是使用set_clip_path功能来进行白化,进入官网查询本命令,可知set_clip_path主要对collection作白化...不过大佬为了丰富白化功能,增添了一个region参数,使得我们能够凭关键词筛选要白化省份,并且不使用cartopy中geos_to_path命令,而是使用shapefile库包来读取边界。...: 上述只是通过普通子图白化推广地图子图白化,所以默认PlateCarree投影。...随后进入下一步,构造用于裁剪GeoDataFrame。...这种方法其实十分似geopandas方法,最终生成mask数组都被降维,难以恢复原来维度,如果直接contourf会报出错误 但是我们可以用scatter映射方法达到类似的结果。

81032

Google Earth Engine(GEE)——使用 GeoPandas 和 Uber H3 空间索引进行快速多边形点分析

这是非常有效,并在某些类型空间查询中产生了很大加速。查看我高级 QGIS 课程空间索引部分,我将展示如何在 QGIS 中使用基于 R 树空间索引。...实际数据层是一个ASAM_events.shp位于文件夹内shapefile ASAM_data_download。该数据集包含全球 8000 多个已记录盗版事件点位置。...GeoDataframe 并将其写入地理包。...gdf = gpd.GeoDataFrame(counts, crs='EPSG:4326') output_filename = 'gridcounts.gpkg' gdf.to_file(driver...这是显示生成 hexbin 地图图层,其中显示了世界各地盗版热点。 从读取输入创建聚合网格层整个过程只需 2 秒多一点。将其与使用空间索引 QGIS 模型进行比较,该模型至少需要 5 倍。

17510

空间数据可视化笔记——simple features空间对象基础

---- 当今互联网和大数据发展的如此迅猛,大量运营与业务数据需要通过可视化呈现来给商业分析人员提供有价值决策信息,而地理信息与空间数据可视化则是可视化分析中至关重要而且门槛较高。...以上简单揭示了sf定义、结构和特点,接下来我们深入sfsfc列内部,探索它基础元素生成过程。...Reading layer `nc' from data source `D:\R\R-3.4.1\library\sf\shape\nc.shp' using driver `ESRI Shapefile...GeoDataFrame也同时提供了对于shp、json格式空间地理信息数据源支持。...,同时也可为这些独立对象配备属性值信息,最终形成GeoDataFrame,就是和R语言中sf(simple features)对象一致,含有地理空间信息集合数据框。

1.6K50

Python地信专题 | 基于geopandas空间数据分析—数据结构篇

本系列文章就将围绕geopandas及其使用过程中涉及其他包进行系统性介绍说明,每一篇将尽可能全面具体地介绍geopandas对应方面的知识。...作为基于geopandas空间数据分析系列文章第一篇,通过本文你将会学习geopandas中数据结构。...geopandas安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用pip install geopandas或conda install geopandas,可能会引发依赖包相关错误导致安装失败...,对于有孔多边形,interiors返回所有内部孔洞LinearRing格式边框线集合: 图20 is_valid 在shapely中涉及很多拓扑计算操作时,对几何对象合法性有要求。...方法来取得这两个几何对象相交部分,出现了拓扑逻辑错误: 图22 查看s_.is_valid,可以看出第一个自相交多边形非法: 图23 boundary boundary返回每个几何对象低维简化表示

1.7K20

geopandas 0.10版本重磅新特性一览

而这次新增sjoin_nearest()就可以支持我们开展上述分析计算功能,它主要参数有: 「left_df」:连接对应GeoDataFrame 「right_df」:连接对应GeoDataFrame...# 构造示例点要素表1 gdf1 = gpd.GeoDataFrame( { 'id1': list('abc'), 'geometry': [...( { 'id2': list('def'), 'geometry': [ Point(0.4, 0), Point...folium,而在这次新版本中,geopandas为GeoDataFrame及GeoSeries对象新增交互式地图可视化方法explore(),你可以理解为交互式版本plot()方法。...()中用于设置拓扑关系参数op在这次新版本中被改名为predicate,大家在使用时要留意: ---- 大家在了解这些新功能和变动后,在使用新版geopandas时,如果遇到未知bug,欢迎在https

76620

geotrellis使用(八)矢量数据栅格化

目录 前言 栅格化处理 总结 参考链接 一、前言        首先前几天学习了一下Markdown,今天将博客园编辑器改为Markdown,从编写博客界面美观明显都清爽多了,也能写出各种样式东西了...前几天碰到一个任务,需要将矢量数据导入Accumulo中,然后通过geotrellis进行调用。...首先浏览Geotrellis源代码,发现一个ShapeFileReader,貌似直接能解决问题啊,赶紧写代码如下: geotrellis.shapefile.ShapeFileReader.readSimpleFeatures...(path)        满心欢喜以为一句话就解决问题了,谁知道一直报如下错误: The following locker still has a lock: read on file:..shp...注意最后需要添加shpDataStore.dispose()否则会同样报上述文件锁定错误,所以我猜测此处应该是Geotrellis一个bug。

1.7K70

geopandas overlay 函数报错问题解决方案

前言 这篇文章依旧是基于上一篇文章(使用Python实现子区域数据分类统计)而写,此文章中介绍了使用 geopandas overlay 函数对两个 GeoDataFrame 对象取相交或相异部分...此函数封装非常好,解决了我们主要问题,在我自己 Windows 系统上运行也正常,但是部署 Ubuntu 16.04 后就出了问题,经过层层分析,最终发现是 Rtree 问题。...问题重现 创建两个 GeoDataframe 对象,假定为 data1 和 data2,两个对象均包含一个 Polygon GeoSeries 列,对这两个对象执行 overlay 函数,如下: intersection_data...= geopandas.overlay(data1, data2, how='intersection') 首先需要在 Ubuntu 系统上安装 geopandas 库,可以使用 pip 直接安装,...' 难道 data1 或者 data2 为空了,反复检查不存在这个问题,那应该是 overlay 函数里面出问题了吧,再详细跟踪、查看日志发现另一个错误: TypeError: incompatible

68910
领券