<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python GIS神器geopandas 1.0版本來(lái)了

          共 4798字,需瀏覽 10分鐘

           ·

          2024-06-25 19:30

          添加微信號(hào)"CNFeffery"

          備注"數(shù)據(jù)分析"入技術(shù)交流群

          ?

          本文完整代碼及附件已上傳至我的Github倉(cāng)庫(kù)https://github.com/CNFeffery/DataScienceStudyNotes

          ?

          1 簡(jiǎn)介

          大家好我是費(fèi)老師,就在昨天,Python生態(tài)中著名的GIS分析庫(kù)geopandas發(fā)布了其1.0.0正式版本。

          歷經(jīng)10年迭代升級(jí),geopandas充分完善了其在GIS數(shù)據(jù)分析上的功能,使得我們可以使用類似pandas的操作方式,便捷且高性能的開(kāi)展各種常用的GIS分析運(yùn)算,極大增強(qiáng)了PythonGIS分析領(lǐng)域的能力。

          今天的文章,費(fèi)老師我就將帶大家一起快速了解在全新的1.0版本中,新的功能特性、優(yōu)化提升以及相關(guān)API的變動(dòng)情況??~

          2 geopandas 1.0版本介紹

          如果你還未曾安裝使用過(guò)geopandas,我最推薦的方式是新建虛擬環(huán)境,并在虛擬環(huán)境中通過(guò)conda-forge源進(jìn)行穩(wěn)定安裝,以當(dāng)下非常流行的開(kāi)源環(huán)境管理工具mamba(可參考我所寫的教程

          mamba使用教程

          公眾號(hào):Python大數(shù)據(jù)分析

          是時(shí)候跟Conda說(shuō)再見(jiàn)了

          )為例,在終端執(zhí)行下列命令(目前推薦Python版本為3.9),靜靜等待,即可一步到位完成最新版geopandas的安裝:

          mamba create -n geopandas-env python=3.9 -y && mamba activate geopandas-env && mamba install geopandas -y

          而如果你已經(jīng)安裝了先前版本的geopandas,那么在你的對(duì)應(yīng)環(huán)境下,終端執(zhí)行下列命令即可進(jìn)行版本升級(jí):

          mamba update geopandas -y

          新安裝或升級(jí)完成后,檢查一下版本變化,成功升級(jí)到1.0.0版本??:

          2.1 新增API介紹

          首先我們來(lái)了解一下新版本geopandas中新增的部分主要的API:

          2.1.1 新增count_geometries()方法

          新增方法count_geometries(),用于針對(duì)多部件要素計(jì)算單體要素?cái)?shù)量:

          2.1.2 新增count_interior_rings()方法

          新增方法count_interior_rings(),用于針對(duì)多邊形要素計(jì)算內(nèi)環(huán)數(shù)量:

          2.1.3 新增relate_pattern()方法

          新增方法relate_pattern(),用于計(jì)算要素之間是否滿足特定的DE-9IM(一種分別計(jì)算成對(duì)要素在內(nèi)部、邊界、外部?jī)蓛芍g相交相離狀態(tài)的復(fù)雜空間模型)空間關(guān)系,具體的原理細(xì)節(jié)較多,我會(huì)在之后單獨(dú)撰文介紹,下面僅演示relate_pattern()的使用示例:

          2.1.4 新增intersection_all()方法

          新增方法intersection_all(),用于計(jì)算矢量列中全體要素的公共相交部分:

          2.1.5 新增line_merge()方法

          新增方法line_merge(),用于快速合并一系列端點(diǎn)相交的線要素:

          2.1.6 新增set_precision()、get_precision()方法

          新增方法set_precision()get_precision(),用于設(shè)置及獲取矢量列的坐標(biāo)精度大小:

          2.1.7 新增count_coordinates()方法

          新增方法count_coordinates(),用于快速計(jì)算矢量列各要素坐標(biāo)點(diǎn)數(shù)量:

          2.1.8 新增is_ccw屬性方法

          新增屬性方法is_ccw,用于針對(duì)坐標(biāo)點(diǎn)數(shù)量大于等于4個(gè)的線要素,判斷其坐標(biāo)串方向是否符合逆時(shí)針?lè)较颍?/p>

          2.1.9 新增is_closed屬性方法

          新增屬性方法is_closed,用于判斷線要素是否起點(diǎn)終點(diǎn)相同:

          2.1.10 新增force_2d()、force_3d()方法

          新增方法force_2d()force_3d(),用于將矢量列強(qiáng)制去除z軸坐標(biāo)、強(qiáng)制添加z軸坐標(biāo):

          2.1.11 新增voronoi_polygons()方法

          新增方法voronoi_polygons(),用于基于整體矢量列的所有頂點(diǎn),快速生成泰森多邊形:

          2.1.12 新增contains_properly()方法

          新增方法contains_properly(),用于快捷判斷矢量A是否嚴(yán)格包含矢量B,與contains()方法的區(qū)別是,contains_properly()不允許作比較的矢量間有任何公共點(diǎn):

          2.1.13 新增build_area()方法

          新增方法build_area(),用于基于一系列可以構(gòu)成閉合面要素的線要素,整體生成合法的若干多邊形:

          2.1.14 新增snap()方法

          新增方法snap(),用于將滿足距離閾值要求的要素A掛靠到對(duì)應(yīng)的要素B之上:

          2.1.15 新增transform()方法

          新增方法transform(),用于基于自定義坐標(biāo)偏移函數(shù),實(shí)現(xiàn)對(duì)矢量要素的坐標(biāo)轉(zhuǎn)換,其中自定義函數(shù)的輸入為N行2列后N行3列的numpy數(shù)組,輸出形狀與輸入一致即可,我們可以配合numpy中的apply_along_axis()實(shí)現(xiàn)自由的坐標(biāo)點(diǎn)級(jí)別轉(zhuǎn)換計(jì)算,而無(wú)需關(guān)心輸入的要素是點(diǎn)線面中的哪種:

          2.1.16 新增get_geometry()方法

          新增方法get_geometry(),用于將矢量列各要素視作多部件要素,進(jìn)行快捷位序索引:

          2.1.17 新增dwithin()方法

          新增方法dwithin(),用于快速判斷矢量A是否在矢量B目標(biāo)的指定距離內(nèi):

          2.1.18 新增to_geo_dict()方法

          新增方法to_geo_dict(),用于將GeoDataFrame快捷轉(zhuǎn)化為GeoJSON格式字典數(shù)據(jù)結(jié)構(gòu):

          2.2 功能增強(qiáng)

          接下來(lái)我們來(lái)了解新版本中獲得功能增強(qiáng)的一些主要API:

          2.2.1 空間連接新增dwithin型空間關(guān)系判斷

          針對(duì)sjoin()方法,新增了dwithin型空間關(guān)系判斷,使得我們可以在geopandas中真正意義上直接實(shí)現(xiàn)“匹配與目標(biāo)要素距離在XXX以內(nèi)的紀(jì)錄行”:

          2.2.2 配合pd.read_csv指定矢量列類型

          在新版本中,我們可以將GeoDataFrame寫出為csv格式,并在使用pd.read_csv()讀取時(shí),通過(guò)dtype參數(shù)將對(duì)應(yīng)列指定解析為矢量類型:

          2.2.3 to_json()新增參數(shù)show_bbox、drop_id、to_wgs84

          針對(duì)GeoDataFrame.to_json(),新增參數(shù)show_bboxdrop_idto_wgs84,實(shí)現(xiàn)更為定制化的GeoJSON轉(zhuǎn)化:

          demo_gdf = gpd.GeoDataFrame(
              {
                  'name': ['示例要素'],
                  'geometry': [Point(10629)]
              },
              crs='EPSG:4524'
          )
          print(demo_gdf.to_json(
              ensure_ascii=False,
              indent=4,
              show_bbox=True,
              drop_id=True,
              to_wgs84=False
          ))

          2.2.4 空間連接新增參數(shù)on_attribute

          針對(duì)GeoDataFrame.sjoin(),新增參數(shù)on_attribute,用于額外施加常規(guī)表連接中的指定字段相等條件,相當(dāng)于設(shè)置有效的on_attribute參數(shù)后,空間連接的結(jié)果將既滿足空間關(guān)系,又滿足字段匹配關(guān)系:

          2.3 標(biāo)記為廢棄的API

          新版本中也新增了一系列標(biāo)記為廢棄的API,將會(huì)在未來(lái)某個(gè)版本正式移除,請(qǐng)注意及時(shí)調(diào)整你的相關(guān)代碼邏輯,其中主要的有:

          • unary_union將廢棄,更換為union_all()
          • use_pygeos將廢棄并在1.1版本中正式移除

          由于pygeos已經(jīng)合并入geopandas底層矢量計(jì)算所依賴的新版shapely中,因此對(duì)應(yīng)的use_pygeos設(shè)置項(xiàng)也將退出歷史舞臺(tái):

          • crs屬性賦值以修改坐標(biāo)系的方式將在未來(lái)版本被禁用,請(qǐng)統(tǒng)一使用set_crs()代替

          篇幅有限,未能詳盡介紹全部新版本內(nèi)容,完整的更新日志請(qǐng)移步:https://github.com/geopandas/geopandas/releases/tag/v1.0.0


          以上就是本文的全部?jī)?nèi)容,歡迎在評(píng)論區(qū)與我們進(jìn)行討論~

          加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】

          600+小伙伴一起學(xué)習(xí)!








          · 推薦閱讀 ·

          是時(shí)候跟Conda說(shuō)再見(jiàn)了

          性能碾壓pandas、polars的數(shù)據(jù)分析神器來(lái)了

          geopandas 0.14版本重要更新內(nèi)容一覽


          瀏覽 268
          2點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          2點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  新www视频亚洲 | 人妻自拍偷拍视频 | 少妇大战黑人46厘米 | 奇米久久爱 | 欧美午夜激情视频 |