成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 一行代碼算出每個省面積的神器—Geopandas

開發 后端
GeoPandas是一個基于pandas,針對地理數據做了特別支持的第三方模塊。


 GeoPandas是一個基于pandas,針對地理數據做了特別支持的第三方模塊。

它繼承pandas.Series和pandas.Dataframe,實現了GeoSeries和GeoDataFrame類,使得其操縱和分析平面幾何對象非常方便。

1.準備

開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

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

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

請選擇以下任一種方式輸入命令安裝依賴:

1. Windows 環境 打開 Cmd (開始-運行-CMD)。

2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。

3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

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

conda install geopandas

一行語句即可完成安裝。

2.基本使用

設定坐標繪制簡單的圖形: 

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

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

??

這里有一個重要且強大的用法,通過area屬性,geopandas能直接返回這些圖形的面積: 

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

不僅如此,通過plot屬性函數,你還可以直接生成matplotlib圖。

>>> g.plot()

通過matplot的pyplot,可以將圖片保存下來: 

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

學會上面的基本用法, 我們就可以進行簡單的地圖繪制及面積的計算了。

3.繪制并算出每個省的面積

此外,它最大的亮點是可以通過 Fiona(底層實現,用戶不需要管),讀取比如ESRI shapefile(一種用于存儲地理要素的幾何位置和屬性信息的非拓撲簡單格式)。 

import geopandas
import matplotlib.pyplot as plt
from shapely.geometry import Polygon
maps = geopandas.read_file('1.shx')
# 讀取的數據格式類似于
# 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等數據。讀取出來的圖形如下:

同樣,這個shapefile是省級行政區的,每一個省級行政區都被劃分為一個區塊,因此可以一行語句算出每個省級行政區所占面積: 

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
# ... ...

怎么樣,是不是很酷?它還有許多更庫的特性,歡迎閱讀官方文檔:

??https://geopandas.readthedocs.io/?

 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2016-12-02 08:53:18

Python一行代碼

2021-11-02 16:25:41

Python代碼技巧

2022-04-09 09:11:33

Python

2020-08-12 14:54:00

Python代碼開發

2020-08-19 10:30:25

代碼Python多線程

2017-04-05 11:10:23

Javascript代碼前端

2017-04-13 19:20:18

Python代碼并行任務

2020-09-28 12:34:38

Python代碼開發

2022-02-23 14:37:48

代碼Pythonbug

2021-01-25 09:36:00

Python代碼文件

2014-02-12 13:43:50

代碼并行任務

2020-01-10 22:56:56

Python圖像處理Linux

2022-09-28 10:12:50

Python代碼可視化

2022-07-14 10:54:15

Python代碼Matplotlib

2022-07-06 08:32:35

Python代碼Matplotlib

2020-04-30 10:25:37

代碼Github開源

2024-05-31 13:14:05

2020-09-09 16:00:22

Linux進程

2024-09-26 15:46:54

Python編程

2025-04-28 09:06:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲日本一区二区三区四区 | 国产日韩精品在线 | 国产一级精品毛片 | 久久手机在线视频 | 成人综合在线视频 | 国产精品爱久久久久久久 | 亚洲精品久久久久久久久久久 | 老头搡老女人毛片视频在线看 | 在线天堂免费中文字幕视频 | 欧美大片一区二区 | 国产日产欧产精品精品推荐蛮挑 | 国内激情av片 | 久久精品亚洲一区二区三区浴池 | 国产精品久久久久久久久免费软件 | 荷兰欧美一级毛片 | 玖玖玖在线 | 日本欧美国产在线观看 | 欧美在线小视频 | 精品国偷自产在线 | 激情三区 | 亚洲欧美激情精品一区二区 | 久久久www成人免费精品张筱雨 | 日本精品一区二区三区在线观看 | 欧美成人a | 粉嫩高清一区二区三区 | 天天天操| 精品视频一区二区三区在线观看 | 国产午夜精品福利 | 久久一二 | 成人欧美一区二区三区1314 | 国内自拍偷拍一区 | 国产色视频网站 | 欧美激情精品久久久久 | 在线视频一区二区三区 | 亚洲国产精品suv | 久久青青| 国产精品毛片一区二区三区 | 久久久久资源 | 狠狠久久久 | 亚洲综合视频 | 日韩欧美亚洲 |