日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python之深入解析一行代码计算每个省面积的神器Geopandas

發(fā)布時(shí)間:2024/5/21 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之深入解析一行代码计算每个省面积的神器Geopandas 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

  • GeoPandas 是一個(gè)基于 pandas,針對地理數(shù)據(jù)做了特別支持的第三方模塊。
  • 它繼承 pandas.Series 和 pandas.Dataframe,實(shí)現(xiàn)了 GeoSeries 和 GeoDataFrame 類,使得其操縱和分析平面幾何對象非常方便。

二、準(zhǔn)備

① Python 安裝

  • 在 windows 上安裝 Python:
    • 下載 Python 的最新版本:訪問鏈接 Python 官網(wǎng),在 Windows 操作系統(tǒng)上安裝 Python 3.10.0,大家也可以自行選擇最新版的下載。

    • 進(jìn)入下一個(gè)頁面后,拉到最下面,選擇 Windows embeddable package (64-bit) 下載:

    • 雙擊下載完成的應(yīng)用程序,記得一定要勾選 ADD Python 3.7 to PATH,否則 cmd 無法運(yùn)行 Python,然后選擇 Install Now 進(jìn)行安裝,默認(rèn)會(huì)安裝 pip,而且將安裝到 C 盤(推薦)。如果希望換一個(gè)盤安裝,可以點(diǎn)擊 Customize installation 在里面選擇其他的盤。
  • 在 macOS 上安裝 Python:
    • 其實(shí) macOS 上是默認(rèn)安裝了 Python 的,只不過版本是 Python2.7,其相對于現(xiàn)在的 Python 3 缺少了很多特性,而且速度也比 Python 3 慢,因此還是建議大家裝 Python 3。
    • 同樣地,下載 Python 的最新版本,訪問鏈接:Python 官網(wǎng),在 macOS 操作系統(tǒng)上安裝 Python 3.7.4,大家也可以自行選擇最新版的下載。

    • 進(jìn)入下一個(gè)頁面后,拉到最下面,選擇 macOS 64-bit universal2 installer 下載:

    • 下載完成后得到一個(gè) pkg 文件,雙擊打開,按照指示步驟進(jìn)行安裝即可。

② 安裝依賴

  • 請選擇以下任一種方式輸入命令安裝依賴:
    • Windows 環(huán)境打開 Cmd (開始 - 運(yùn)行 - CMD);
    • MacOS 環(huán)境打開 Terminal (command + 空格輸入 Terminal);
    • 如果使用的是 VSCode 編輯器或 Pycharm,可以直接使用界面下方的 Terminal。
pip install rich
  • 由于 geopandas 涉及到許多第三方依賴,pip 安裝起來非常麻煩,因此這里推薦使用 conda 安裝 geopandas,一行語句即可完成安裝:
conda install geopandas

三、基本使用

  • 設(shè)定坐標(biāo)繪制簡單的圖形:
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)大的用法,通過 area 屬性,geopandas 能直接返回這些圖形的面積:
>>> print(g.area) 0 0.5 1 1.0 2 1.0 dtype: float64
  • 不僅如此,通過 plot 屬性函數(shù),還可以直接生成 matplotlib 圖:
>>> g.plot()
  • 通過 matplot 的 pyplot,可以將圖片保存下來:
import matplotlib.pyplot as plt g.plot() plt.savefig("test.png")
  • 學(xué)會(huì)上面的基本用法, 就可以進(jìn)行簡單的地圖繪制及面積的計(jì)算。

四、繪制并算出每個(gè)省的面積

  • 此外,它最大的亮點(diǎn)是可以通過 Fiona(底層實(shí)現(xiàn),用戶不需要管),讀取比如 ESRI shapefile(一種用于存儲(chǔ)地理要素的幾何位置和屬性信息的非拓?fù)浜唵胃袷?#xff09;。
import geopandas import matplotlib.pyplot as plt from shapely.geometry import Polygonmaps = 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")
  • 如代碼所示,通過 read_file,可以讀取 shx、gpkg、geojson 等數(shù)據(jù)。讀取出來的圖形如下:

  • 同樣,這個(gè) shapefile 是省級(jí)行政區(qū)的,每一個(gè)省級(jí)行政區(qū)都被劃分為一個(gè)區(qū)塊,因此可以一行語句算出每個(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 # ... ...
  • GeoPandas 的更多特性,請參考:GeoPandas。

總結(jié)

以上是生活随笔為你收集整理的Python之深入解析一行代码计算每个省面积的神器Geopandas的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。