中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

發布時間:2021-11-30 14:49:44 來源:億速云 閱讀:830 作者:小新 欄目:大數據

這篇文章主要介紹如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

第一部分是學習使用pandas進行數據數據。pandas中有兩大數據結構,分別是series序列和DataFrame數據框。使用pandas的實驗對象是之前電腦本地的一些氣象數據,存儲格式為.xlsx。實驗數據僅僅是實驗數據而已,用它來練習pandas還是不錯的,至少目前。

pandas數據分析的大概步驟也不復雜,導入庫—>讀取數據—>數據操作(切片,篩選,組合,排序,批處理等)—>寫出數據到csv或xlsx或txt純文本。

pandas的數據讀取很容易:

import pandas as pddata = pd.read_excel(r'D:\inuyasha\codeX\Python\氣象數據1960-2018\1960.xlsx')
series = data['平均氣溫'] #序列,就是1,2,3這樣排列下去的series_to_dataframe=pd.DataFrame(series) #把series數據結構轉為數據框結構,pd兩大數據結構series_to_dataframe

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

重命名,增加索引操作:

datare = data.rename(columns={'平均氣溫':'平均溫'}) #使用rename方法重命名列的名字,字典,1是原名,2是更換后的名字datare['INDEX'] = datare.index #原基礎上增加索引,.index方法,名INDEXdatare['均溫'] = datare['平均溫'] #沒有替代原來的那一列,而是新增一列,一模一樣的,末尾添加datare.drop(columns='INDEX') #刪除原來列datare

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

刪除某一行,也可以刪除多行,index是行索引,axis指針對所有列:

df1 = datare.drop(index=0,axis=1)
據索引刪除多行,index是行索引,axis指針對所有列df2 = datare.drop(index=[0,1,2,3],axis=1)

定位和提取數據:

datare['區站號'].isin([50136]) #isin函數判斷這一列中是否存在這個數,數字這不要加引號,否則就成字符串了datare[datare['區站號'].isin([50136])] #在原始數據中取出定位到的數據datare[-datare['區站號'].isin([50136])] #在原始數據中取出定位到的數據,前面加一個橫線表示反選

如果想一次就提取多列呢,那就把需要的列以list形式放進去

data_multicolu2 = datare[['區站號','緯度','經度','年','月','日','平均溫']] #列表形式把需要的多列切片提取出來data_multicolu2

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

排序:

datare.sort_values(by='平均溫',ascending=False)

還有更多功能,這里就不一一寫出來了。多用幾次就熟悉了。之前想的一個問題,如何提取多個xlsx里面的某些數據,這不就發揮作用了嘛哈哈。

第二部分是Geopandas讀取shp數據+繪圖展示+添加經緯度標識(EWSN)

腳本如下:

import geopandas as gpdimport numpy as npimport matplotlib.pyplot as pltimport cartopy.crs as ccrsfrom cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatterimport cmaps#import arcpy
gd_boundary = gpd.read_file('D:\ArcGISgeobase\guangdata\gd_boundary.shp')gd_road = gpd.read_file('D:\ArcGISgeobase\guangdata\gd_road.shp')#fig,ax = plt.subplots(figsize=(16,12)) #設置畫布大小plt.figure(figsize=(16, 12))ax = plt.subplot(projection=ccrs.PlateCarree())#全局設置plt.rcParams['font.family'] = 'Times New Roman'plt.rcParams['font.size'] = 16
gd_boundary.plot(ax=ax,facecolor='none',edgecolor='k',linewidth=0.99) #邊界設置gd_road.plot(ax=ax,edgecolor='b',cmap=cmaps.posneg_2,lw=0.3,legend=False) #路網設置
ax.set_yticks(np.arange(20, 26, 1.0),crs=ccrs.PlateCarree())ax.set_xticks(np.arange(109, 118, 1.0),crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter()) #經緯度標識顯示,EWSNax.yaxis.set_major_formatter(LatitudeFormatter())

#ax.set_axis_on() #打開矩形邊框ax.set_title('Guangdong_Roads',fontsize=16) #設置標題
plt.grid() #設置網格

展示結果如下圖,發現了連經緯度標識都沒有,雖然可以根據數據變化方向識別,不過增加上經緯度標識還是要好一些。然后古哥瀏覽器找了一下看看有沒有解決方法,結果沒找到,看到很多教程都沒有添加這個經緯度標識,于是自己動手:

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

自己動手添加經緯度標識:

plt.figure(figsize=(16, 10))ax = plt.subplot(projection=ccrs.PlateCarree())ax.set_yticks(np.arange(20, 26, 1.0),crs=ccrs.PlateCarree())ax.set_xticks(np.arange(109, 118, 1.0),crs=ccrs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter()) #經緯度標識顯示,EWSNax.yaxis.set_major_formatter(LatitudeFormatter())

現在來看看效果吧,啊哈,這樣的話,經緯度標識不就來了嘛

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

然后我又想使用ArcPy做一下路網線密度分析,但是配置它太麻煩了,于是轉到ArcGIS去操作一把(雖然害怕隨時會卡退啊,特別是數據沒保存的情況下)

第三部分使用ArcGIS做一下路網線密度操作以及局部放大圖。局部放大圖有它自己的作用,就是假如在密集度很大的情況下,看起來是模糊一片的,那么就可能需要局部放大了,畫一個示意圖吧:

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

So,來到ArcGIS,加載路網數據和矢量邊界這兩個數據就夠了

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

修飾出圖,看起來勉強,這個color好像是前幾天自己調的來著,應該是吧,沒記錯的話。

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

有一些地方感覺太密集了,不好看,那么就給它局部放大一下,原理就是新建一個數據框。

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖

以上是“如何使用Pandas,GeoPandas和ArcGIS實現數據處理和繪圖”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江津市| 高碑店市| 伊通| 大石桥市| 东城区| 米脂县| 静安区| 邢台市| 得荣县| 宣化县| 福州市| 班戈县| 夏河县| 抚顺县| 云和县| 南京市| 沭阳县| 洪泽县| 南召县| 乐业县| 咸阳市| 荔波县| 玉林市| 万盛区| 田东县| 宁德市| 武平县| 阿瓦提县| 北辰区| 凤翔县| 南漳县| 巢湖市| 邮箱| 南溪县| 铜陵市| 五家渠市| 东平县| 二连浩特市| 湾仔区| 扬中市| 鹤山市|