首页 > 其他分享 >(数据科学学习手札154)geopandas 0.14版本新特性一览

(数据科学学习手札154)geopandas 0.14版本新特性一览

时间:2023-09-17 18:56:25浏览次数:42  
标签:要素 154 geopandas 新增 0.14 版本 hull 2.3

本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes

1 简介

  大家好我是费老师,就在前两天,Python生态中的GIS运算神器geopandas发布了其0.14.0新版本,在这次新版本更新中,不仅是新增了许多矢量计算API,还开始为日后正式发布1.0版本做准备,对一些底层依赖版本进行改动。今天的文章中,我就将为大家一一介绍相关的更新内容:

2 geopandas 0.14版本更新内容

2.1 安装新版本geopandas

  需要注意的是,从0.14版本开始,geopandas将最低支持的python版本提升至3.9

  因此,推荐大家以3.9版本作为建立GIS运算Python环境的基础,这里我们以conda为例,直接建立新的虚拟环境来做演示(下面的命令中为了加速下载过程使用到相关国内conda资源镜像):

conda create -n geopandas-demo python=3.9 -c https://mirrors.sustech.edu.cn/anaconda/pkgs/main/ -y
    
conda activate geopandas-demo

conda install geopandas pyogrio jupyterlab -c https://mirrors.sustech.edu.cn/anaconda/cloud/conda-forge -y

  直接在终端中执行上述命令即可一步到位完成虚拟环境的创建,以及新版geopandasjupyterlab的安装:

2.2 geopandas 0.14版本底层依赖变动

  在0.14版本中,geopandas底层将默认使用shapely(>=2.0版本)进行高性能矢量运算,因此geopandas仅会在shapely缺失但pygeos已安装时,才会调用pygeos。且geopandas将会在未来要发布的1.0正式版本中,直接移除对pygeos,以及旧版shapely(<2.0版本)的支持:

2.3 新增一系列矢量计算方法

  在这次新版本中,基于shapelyGeoSeries/GeoDataFrame新引入了一系列矢量计算方法,具体有:

2.3.1 新增concave_hull()方法

  有别于先前已有的convex_hull方法,新增的concave_hull()方法用于为矢量列中的每个要素计算最小凹多边形,与convex_hull计算结果的对比示例如下:

import random
from shapely.geometry import MultiPoint

# 示例GeoSeries
demo_geometries = gpd.GeoSeries(
    [
        MultiPoint([(random.uniform(0, 1), random.uniform(0, 1)) for i in range(25)])
    ]
)

ax = demo_geometries.plot()
# concave_hull()计算结果
demo_geometries.concave_hull().plot(ax=ax, facecolor='none', edgecolor='red')
# 对比convex_hull()计算结果
demo_geometries.convex_hull.plot(ax=ax, facecolor='none', edgecolor='green');

2.3.2 新增delaunay_triangles()方法

  新增了用于计算Delaunay三角网的delaunay_triangles()方法,计算示例如下:

2.3.3 新增extract_unique_points()方法

  新增extract_unique_points()方法,用于直接从任意类型目标矢量中提取全部折点要素:

2.3.4 新增frechet_distance()方法

  新增frechet_distance()方法,用于计算弗雷歇距离(fréchet distance),是一种用来度量路径之间相似度的经典数学方法:

  举个例子,我们构造如下的四条路径线要素,肉眼上很容易看出abcd各自相似度最高:

  而通过frechet_distance()计算两两之间的弗雷歇距离,也可以从数值计算角度准确计算得到彼此最相似的路径:

2.3.5 新增minimum_rotated_rectangle()方法

  新增minimum_rotated_rectangle()方法,用于为矢量列中各个要素计算最小外接矩形,譬如:

2.3.6 新增offset_curve()方法

  新增offset_curve()方法,用于为目标要素构建偏移曲线,即与原始要素相似但偏移一定的距离:

2.3.7 新增remove_repeated_points()方法

  新增remove_repeated_points()方法,用于沿要素坐标串定义方向,将距离在阈值以内的坐标点视作重复点要素进行移除,默认阈值为0,你可以在实际应用中灵活调整阈值,从而起到简化要素的目的:

2.3.8 新增segmentize()方法

  新增segmentize()方法,用于对目标矢量列中的各要素,按照设定的等间距进行增密操作,譬如在原有仅起点终点连成线要素基础上,按照1单位距离进行增密的结果如下:

2.3.9 新增shortest_line()方法

  新增shortest_line()方法,用于计算任意两个要素之间最短距离连线:

2.4 sjoin_nearest()新增exclusive参数

  新版本中为sjoin_nearest()新增参数exclusive,默认为False,当设置为True时,会在计算过程中自动忽略与自身要素相同的最近邻要素,非常的实用,省得我们在做sjoin_nearest()最近邻搜索计算之前手动排除要素自身:

  更多有关geopandas0.14版本的更新内容,请移步https://geopandas.org/en/stable/docs/changelog.html了解更多。


  以上就是本文的全部内容,欢迎在评论区与我进行讨论~

标签:要素,154,geopandas,新增,0.14,版本,hull,2.3
From: https://www.cnblogs.com/feffery/p/17709443.html

相关文章

  • CF1542E1 Abnormal Permutation Pairs (easy version) 题解
    CF1542E1AbnormalPermutationPairs(easyversion)题解不会Hardversion对于第一个限制字典序,我们可以考虑枚举前\(i\)位相同,然后考虑后\(n-i\)位。我们只需要保证\(p_{i+1}<q_{i+1}\)即可。我们设\(len=n-i\)。由于前\(i\)位完全相同,所以前\(i\)位内部......
  • OpenSSH 用户枚举漏洞(CVE-2018-15473)【原理扫描】
    最烦做等保了!!!! 有没有同感的? 修复过程记录一下,为什么要记录呢,等保漏洞每次都是那些,我一直没有进行文档记录,导致我每次都要百度搜索解决。查看当前服务器openssh的版本#当前系统版本cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)ssh-vOpenSSH_7.4p1......
  • redis cluster集群安装(CentOS7 + redis 5.0.14)
    Linux系统-部署-运维系列导航 rediscluster介绍redis最开始使用主从模式做集群,若master宕机需要手动配置slave转为master;后来为了高可用提出来哨兵模式,该模式下有一个哨兵监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充;所以在3.x提......
  • Educational Codeforces Round 154 (Rated for Div. 2)
    EducationalCodeforcesRound154(RatedforDiv.2)比赛链接我都快忘了还有这一场比赛,今天打开cf看见这场比赛正好有时间就补了!!!2023.9.3也许是出去玩了一下午脑子不够用了??怎么现在读题都有一点读不懂了!!!2023.9.4我靠这场我怎么感觉没什么思路呢????A题PrimeDeletion题目链接......
  • Educational Codeforces Round 154 (Rated for Div. 2)
    Preface太FW了现在,纯纯给队伍拖后腿,马上要成为我们队CFRating最低的了但换句话说徐神和祁神都这么猛,我直接躺着被嘎嘎带飞好像也很爽啊不管怎么样还是要多练,不过接下来可能要按专题重点突破了,明天队里开个会确定下大家的主攻方向再说A.PrimeDeletion因为\(13\)和\(31\)都......
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—C)
    A.PrimeDeletion思路:从1到9,每个数后面都可以加一个数构成一个含有两个数的质数,只需要从s[1]~s[9]中找到一个数与s[0]构成质数即可代码实现/*******************************|Author:CHC|Problem:A.PrimeDeletion|Contest:Codeforces-EducationalCodeforcesR......
  • Educational Codeforces Round 154 (Rated for Div. 2)
    感觉edu的题目都比较有新意;A.PrimeDeletion题意:给定长度为9的数,且1-9每个数字出现一次,求按照原定顺序选几个数组成的质数(起码选择两个);下意识写了一个dfs,过了;1#include<bits/stdc++.h>2usingnamespacestd;3intread(){4charch=getchar();intx=0,f=1;5......
  • TO-277封装肖特基二极管SP1545L:15A 45V
    目前,市面上供应肖特基二极管的厂家、供应商特别地多,更多选择的背后,带来的却是更多的迷茫和不知所措。采购肖特基二极管,哪家好呢?提及“东沃电子DOWOSEMI”这个国产二极管品牌,很多客户可能第一想到他家的TVS二极管、ESD二极管、稳压二极、压敏电阻MOV、陶瓷气体放电管GDT、自恢复保险......
  • 【CF1542C】Strange Function(数论)
    题目大意:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllmod=1e9+7;lln;lllcm(llx,lly){ returnx/__gcd(x,y)*y;}intmain(){ intT; cin>>T; while(T--){ cin>>n; llans=n%mod; for(lli=1,j=1;n/j......
  • 1154 Vertex Coloring
    题目A propervertexcoloring isalabelingofthegraph'sverticeswithcolorssuchthatnotwoverticessharingthesameedgehavethesamecolor.Acoloringusingatmost k colorsiscalleda(proper) k-coloring.Nowyouaresupposedtotellifagi......