0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GeoPandas:針對(duì)地理數(shù)據(jù)做了特別支持的第三方模塊

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 14:29 ? 次閱讀

GeoPandas是一個(gè)基于pandas,針對(duì)地理數(shù)據(jù)做了特別支持的第三方模塊。

它繼承pandas.Series和pandas.Dataframe,實(shí)現(xiàn)了GeoSeries和GeoDataFrame類,使得其操縱和分析平面幾何對(duì)象非常方便。

1.準(zhǔn)備

開(kāi)始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南

請(qǐng)選擇以下任一種方式輸入命令安裝依賴:

  1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開(kāi) Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

由于geopandas涉及到許多第三方依賴,pip安裝起來(lái)非常麻煩。因此在本教程中,我只推薦使用conda安裝geopandas:

conda install geopandas

一行語(yǔ)句即可完成安裝。

2.基本使用

設(shè)定坐標(biāo)繪制簡(jiǎn)單的圖形:

import geopandas
from shapely.geometry import Polygon
p1 = Polygon([(0, 0), (1, 0), (1, 1)])
p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
g = geopandas.GeoSeries([p1, p2, p3])

# g:
# result:
# 0 POLYGON ((0 0, 1 0, 1 1, 0 0))
# 1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
# 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
# dtype: geometry

這些變量所形成的圖形如下:

圖片

這里有一個(gè)重要且強(qiáng)大的用法,通過(guò)area屬性,geopandas能直接返回這些圖形的面積:

>> > print(g.area)
0    0.5
1    1.0
2    1.0
dtype: float64

不僅如此,通過(guò)plot屬性函數(shù),你還可以直接生成matplotlib圖。

>> > g.plot()

通過(guò)matplot的pyplot,可以將圖片保存下來(lái):

import matplotlib.pyplot as plt
g.plot()
plt.savefig("test.png")

學(xué)會(huì)上面的基本用法, 我們就可以進(jìn)行簡(jiǎn)單的地圖繪制及面積的計(jì)算了。

3.繪制并算出每個(gè)省的面積

此外,它最大的亮點(diǎn)是可以通過(guò) Fiona(底層實(shí)現(xiàn),用戶不需要管),讀取比如ESRI shapefile(一種用于存儲(chǔ)地理要素的幾何位置和屬性信息的非拓?fù)浜?jiǎn)單格式)。

下面是讀取一份省級(jí)行政區(qū)數(shù)據(jù)的示例:

import geopandas
import matplotlib.pyplot as plt
from shapely.geometry import Polygon

maps = geopandas.read_file('1.shx')
# 讀取的數(shù)據(jù)格式類似于
# geometry
# 0 POLYGON ((1329152.341 5619034.278, 1323327.591...
# 1 POLYGON ((-2189253.375 4611401.367, -2202922.3...
# 2 POLYGON ((761692.092 4443124.843, 760999.873 4...
# 3 POLYGON ((-34477.046 4516813.963, -41105.128 4...
# ... ...
maps.plot()
plt.savefig("test.png")

如代碼所示,通過(guò)read_file你可以讀取shx、gpkg、geojson等數(shù)據(jù)。讀取出來(lái)的圖形如下:

圖片

同樣,因?yàn)檫@個(gè)shapefile是省級(jí)行政區(qū)的數(shù)據(jù),每一個(gè)省級(jí)行政區(qū)都被劃分為一個(gè)區(qū)塊,因此可以一行語(yǔ)句算出每個(gè)省級(jí)行政區(qū)所占面積:

print(maps.area)
# 0 4.156054e+11
# 1 1.528346e+12
# 2 1.487538e+11
# 3 4.781135e+10
# 4 1.189317e+12
# 5 1.468277e+11
# 6 1.597052e+11
# 7 9.770609e+10
# 8 1.385692e+11
# 9 1.846538e+11
# 10 1.015979e+11
# ... ...
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2714

    瀏覽量

    47507
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7048

    瀏覽量

    89076
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1451

    瀏覽量

    34063
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何把第三方庫(kù)加到PROTEUS中?

    新手求教,弱弱的問(wèn)下,下了一個(gè)第三方庫(kù),說(shuō)是要先安裝,再添加路徑,可是我下來(lái)的第三方庫(kù)沒(méi)有看到安裝文件啊。還望指教如何添加!
    發(fā)表于 06-15 22:32

    第三方dll調(diào)用問(wèn)題!??!

    第三方dll,沒(méi)有.h,labview怎么實(shí)現(xiàn)調(diào)用,dll可以用VS打開(kāi),類庫(kù)說(shuō)明也有
    發(fā)表于 05-11 09:14

    國(guó)內(nèi)知名第三方檢測(cè)認(rèn)證機(jī)構(gòu)排名

    的商品檢驗(yàn)活動(dòng)。第三方檢測(cè)機(jī)構(gòu)企業(yè)的存在有著其自己特別的意義,能為產(chǎn)業(yè)轉(zhuǎn)型升級(jí)提供支持,為產(chǎn)業(yè)的發(fā)展提供強(qiáng)有力的服務(wù)平臺(tái)等。隨著人們生活水平的提高以及國(guó)際貿(mào)易壁壘的加劇,我國(guó)第三方檢測(cè)
    發(fā)表于 07-19 16:57

    第三方設(shè)備不支持TDO / TDI線路的菊花鏈

    大家好,我們已經(jīng)從ZedBoard(我們非常滿意)轉(zhuǎn)移到ZC706開(kāi)發(fā)平臺(tái)。我們?cè)俅问褂?b class='flag-5'>第三方FMC設(shè)備,它在ZedBoard上運(yùn)行良好。問(wèn)題是,第三方設(shè)備似乎不支持TDO / TDI線路的菊花鏈
    發(fā)表于 09-20 07:17

    Detectron訓(xùn)練第三方數(shù)據(jù)集測(cè)試

    從零開(kāi)始使用Detectron訓(xùn)練第三方數(shù)據(jù)集是什么體驗(yàn)(六)
    發(fā)表于 04-14 11:44

    請(qǐng)問(wèn)什么第三方公司的程序員支持NuMicro?家族芯片?

    什么第三方公司的程序員支持NuMicro?家族芯片?
    發(fā)表于 01-11 06:33

    buildroot如何添加支持第三方軟件?

    iMX6ULL終結(jié)者Buildoot文件系統(tǒng)構(gòu)建篇buildroot添加支持第三方軟件
    發(fā)表于 04-02 06:06

    頭文件中包含第三方文件

    macrocmake如果源文件(例如 CPP)中包含第三方頭文件,但是頭文件(例如 hpp)中不包含該第三方文件頭,采用 PRIVATE。如果源文件和頭文件中都包含該第三方文件頭,采用 PUBLIC
    發(fā)表于 08-18 08:10

    銀行和第三方支付:戀愛(ài)進(jìn)行時(shí)

    銀行和第三方支付:戀愛(ài)進(jìn)行時(shí)   北京2010年1月8日電  -- 從第三方支付誕生之時(shí)起,銀行與第三方支付之間的競(jìng)合關(guān)系
    發(fā)表于 01-09 08:08 ?667次閱讀

    第三方實(shí)例:iView開(kāi)發(fā)介紹 (1)

    第三方實(shí)例介紹 - iView (1)
    的頭像 發(fā)表于 08-22 01:42 ?4372次閱讀

    Nginx在不加載第三方模塊的情況下到底能做說(shuō)明

    本文只針對(duì)Nginx在不加載第三方模塊的情況能處理哪些事情,由于第三方模塊太多所以也介紹不完,當(dāng)然本文本身也可能介紹的不完整,畢竟只是我個(gè)人
    的頭像 發(fā)表于 04-20 11:31 ?3182次閱讀

    第三方腳本成為網(wǎng)絡(luò)攻擊“重災(zāi)區(qū)”,多管齊下防范第三方腳本安全隱患

      第三方腳本攻擊利用的是第一網(wǎng)站對(duì)第三方腳本的控制力不足和難以實(shí)現(xiàn)的全面監(jiān)測(cè),造成較為嚴(yán)重的攻擊后果。除此之外,第三方腳本還會(huì)帶來(lái)一些其他的潛在隱患。綜合來(lái)看,
    的頭像 發(fā)表于 09-04 14:51 ?3590次閱讀

    鴻蒙支持機(jī)型 鴻蒙支持第三方手機(jī)嗎

    華為鴻蒙系統(tǒng)支持第三方手機(jī)嗎?鴻蒙支持機(jī)型有哪些呢?下面小編就來(lái)簡(jiǎn)單介紹一下!
    的頭像 發(fā)表于 06-25 10:17 ?1.1w次閱讀

    如何安裝第三方模塊爬取4K壁紙

    如何安裝第三方模塊爬取4K壁紙
    發(fā)表于 12-27 10:39 ?0次下載

    Meta Quest頭顯將支持多款安卓第三方應(yīng)用并行

    Meta已悄然啟動(dòng)了與此相關(guān)的功能,意味著Quest頭顯可同時(shí)操作多個(gè)第三方Android應(yīng)用。在此之前,Quest對(duì)第三方Android應(yīng)用有嚴(yán)格限制,用戶每次僅能打開(kāi)一個(gè),無(wú)法實(shí)現(xiàn)同屏幕并行多個(gè)第三方應(yīng)用進(jìn)程。
    的頭像 發(fā)表于 03-11 10:58 ?755次閱讀