Python之深入解析一行代码计算每个省面积的神器Geopandas
生活随笔
收集整理的這篇文章主要介紹了
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。
- 由于 geopandas 涉及到許多第三方依賴,pip 安裝起來非常麻煩,因此這里推薦使用 conda 安裝 geopandas,一行語句即可完成安裝:
三、基本使用
- 設(shè)定坐標(biāo)繪制簡單的圖形:
- 這些變量所形成的圖形如下:
- 這里有一個(gè)重要且強(qiáng)大的用法,通過 area 屬性,geopandas 能直接返回這些圖形的面積:
- 不僅如此,通過 plot 屬性函數(shù),還可以直接生成 matplotlib 圖:
- 通過 matplot 的 pyplot,可以將圖片保存下來:
- 學(xué)會(huì)上面的基本用法, 就可以進(jìn)行簡單的地圖繪制及面積的計(jì)算。
四、繪制并算出每個(gè)省的面積
- 此外,它最大的亮點(diǎn)是可以通過 Fiona(底層實(shí)現(xiàn),用戶不需要管),讀取比如 ESRI shapefile(一種用于存儲(chǔ)地理要素的幾何位置和屬性信息的非拓?fù)浜唵胃袷?#xff09;。
- 如代碼所示,通過 read_file,可以讀取 shx、gpkg、geojson 等數(shù)據(jù)。讀取出來的圖形如下:
- 同樣,這個(gè) shapefile 是省級(jí)行政區(qū)的,每一個(gè)省級(jí)行政區(qū)都被劃分為一個(gè)區(qū)塊,因此可以一行語句算出每個(gè)省級(jí)行政區(qū)所占面積:
- GeoPandas 的更多特性,請參考:GeoPandas。
總結(jié)
以上是生活随笔為你收集整理的Python之深入解析一行代码计算每个省面积的神器Geopandas的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift之深入解析如何避免单元测试中的
- 下一篇: websocket python爬虫_p