導航:首頁 > 編程語言 > python讀取nc文件畫圖

python讀取nc文件畫圖

發布時間:2024-08-12 15:13:50

1. python寫的ftp自動上傳腳本,怎麼判斷重復的文件不重傳呢size判斷不夠精確 有沒有更好的方式跪求大神

這個沒有特別准確的辦法。你連SIZE檢測也信不過。只有自己改程序了。

辦法1:改寫FTP程序,加一個hash確認。以前我這么做過。在python里可以輕松做一個FTP SERVER,加上自己做的MD5檢測就可以了。

辦法2:通過nc轉發請求,在NC里設置一個檢測。

辦法3:如果文件不大,上傳完再下載下來檢測

辦法4:採用自己傳有的流水號,重新設置FTP SERVER,讓它定期根據流水號,生成檢驗碼,然後你在客戶端定期下載這個文件。 這個方法過去在電信系統里經常使用。防出錯效果很好。

2. python如何對一個txt文件中的數據遇到空行就分成一個txt全代碼

#讀取txt文件
#withopen('txt.txt',"r")asf:
#txt=f.read()
#假設txt文件內容為:
txt='''
aaaaaaaaa

bbbbbbbbb
ccccccccc
'''
arr=txt.split(' ')#用兩個換行符格分割內容
print(arr)#得到:[' aaaaaaaaa','bbbbbbbbb ccccccccc ']
fori,vinenumerate(arr):#遍歷arr每個元素生產一個文件
withopen(str(i)+'.txt','w')asf:
f.write(v)
#結果生產0.txt和1.txt兩個文件
#0.txt內容: aaaaaaaaa
#1.txt內容:bbbbbbbbb ccccccccc
#裡面的 是換行符打開文件看到的是換行的:
#bbbbbbbbb
#ccccccccc

3. [Xarray] 1. 數據結構

參考 Xarray官方文檔 , Python氣象數據處理進階之Xarray(1):Xarray的數據結構

在Xarray中,數據是由結構和標簽的,分為以下幾種:

1.DataArray:

帶沖正有標注或命名維度的多維數組。DataArray將metadata(例如:維名稱,坐標和屬性)添加到基礎的 未標記 的數據結構,例如numpy和Dask數組。

2.Datasets:

具有類似字典結構的尺寸對其的DataArray對象的 集合 。因此,可以在單個DataArray的維度上執行的大多數操作都可以在Dataset上執行。

Dataset是多個DataArray的集合

3.Variable:

類似於NetCDF的變數。由dimensions,data和attributes組成。variable和numpy數組之間的主要功能鬧毀區別在於,對variable的數字運算可以通過 維名稱 實現數組廣播。

通俗的講,variables < DataArray < Dataset (<指包含於)。這種解釋不完全正確,但是初學者可以這樣理解。

Xarray通過對維命名的操作實現數據篩選和處理,實現數據的標記和命名通過以下幾個定液判備義實現:

* Dimension : 每一軸的維名稱(e.g.,('x','y','z'))。

* Coordinate : 坐標或刻度。類似於字典的序列,將每個點標記。比如說dimension是緯度,那麼對應的coordinate就是緯度坐標(90°N,89°N,88°N……89°S,90°S)。

* Index : 索引號,也可以說是位置標號。a[0]代表a數組的一個數,0就是index。

可以看到,該文件是一個Datasets,裡面含有變數:Data Variables,數據集的維度有經度緯度和時間,各自有各自的坐標Coordinates,同樣數據集還有一些屬性來表明數據集信息。

我們可以通過:

來分別查看數據集中包含的變數,維,坐標。

再比如NCEP的位勢高度資料:

基本同上。

需要說明的是,ncl數據中存在short格式,在讀取時需要使用short2flt()函數,但是在Python中不存在short格式,默認均為float,無需考慮這一點。

有時我們通過其他手段讀取了相關數據,但是數據是np.array格式的,我們需要將其轉換為DataArray,亦或我們需要輸出一個NC文件,需要將計算後的數組轉為DataArray格式,這就用到了創建的方法。

1.Data: 數據,可以是numpy ndarray,series,DataFrame,pandas.panel等格式

2.coords: 坐標列表或字典

如果是列表,則應為元組列表。其中第一個元素為dimension name,第二個元素是對應的坐標array_like對象。

用字典格式比較好

3.dims: 維名稱列表

如果省略,並且coords是元組列表,則維度名稱取自coords。

4.attrs: 屬性

5.names: 變數名

以上,除了data外,都不是必須的。

創建示例如下:

上面提到,除了data以外,其他都是不必要的

如果是從一個DataFrame數據轉化為DataArray的話(這種操作通常是為了將Pandas和Xarray聯合使用):

會自動識別行列的名稱和序號。

官方文檔還有更復雜的例子,需要的話再去官網查看。

在創建了數據之後,我們同樣可以使用相關的操作獲取DataArray的各種信息:

如果想對DataArray的值修改可以通過以下兩種方法:

兩種結果是等價的,但官方只給出了第一種方法。

*通過指令 foo.rename('temperature') 改名,比如通過hgt計算得到了一個新變數,需要改名,就可以用這個指令。

在得到一個DataArray後,用於畫圖時,比如我們需要獲取它的經度和緯度(在這里,剛剛的例子是時間和高度),那麼可以直接通過

這兩種方式取出坐標信息。

要修改或者刪除某坐標信息的話,原理和修改數據是一樣的:

官網給出一個以氣候數據為例的Dataset結構:

<center>

</center>

一個數據集,包含了數據主體(Temperature,Precipitation),維度坐標(latitude,longitude)。

根據官網的例子,一個Dataset是這樣創建的,實際上與DataArray類似:

實際上這個例子與我們通常接觸的不太一樣,因為大部分數據的lat和lon都是一維的。

對Dataset的操作和DataArray基本一致,不再重復。

4. python 中的"_,"問題

在python中,所有標識符可以包括英文、數字以及下劃線(_),但不能以數字開頭。python中的標識符是區分大小寫的。
----這是知識背景------
但是通常python的變成習慣以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用「from xxx import *」而導入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如__init__()代表類的構造函數。

在交互模式下運行python時,一個下劃線字元(_)是特殊標識符,它保留了表達式的最後一個計算結果。

>>> "hello"
'hello'
>>> _
'hello'
>>> 10+10
20
>>> _
20

在python中,函數、類、模塊定義的第一段代碼如果是字元串的話,就把它叫作文件字串,可通過__doc__屬性訪問。如:

def test():
"this is a document string"

return 100+1000

>>>print test.__doc__
this is a document string

閱讀全文

與python讀取nc文件畫圖相關的資料

熱點內容
pdf版電子書 瀏覽:783
視頻數據加密協議 瀏覽:518
單片機轉正弦波怎麼用 瀏覽:979
compressor圖片壓縮 瀏覽:990
delphi程序員 瀏覽:379
伺服器dc燈不亮是什麼 瀏覽:196
androidsuc 瀏覽:72
編程原則自上而下單元 瀏覽:555
雲計算伺服器貴州雲空間 瀏覽:38
登錄伺服器login輸入什麼 瀏覽:880
三點指標公式源碼 瀏覽:544
黑馬程序員fetch教程 瀏覽:442
不用編程的游戲引擎 瀏覽:533
點菜pdf 瀏覽:82
聖經pdf下載 瀏覽:291
如何列印到pdf文件 瀏覽:558
石碣CNC編程 瀏覽:553
程序員那麼可愛31集上中下完整版 瀏覽:821
有什麼動漫app是可以免費看的 瀏覽:145
程序員語言有多少種 瀏覽:198