導航:首頁 > 編程語言 > python天氣查詢腳本

python天氣查詢腳本

發布時間:2023-09-22 06:09:53

python怎麼打開 gfs氣象數據

參考
http://www.jb51.net/article/48299.htm

❷ 如何使用python利用api獲取天氣預報

試試這個:http://wthrcdn.etouch.cn/weather_mini?citykey=101210101
返回的數據是經過gzip壓縮的,如果你用urllib,需要先把獲取的二進制數據解壓,再解碼成字元串。用requests庫就方便多了,包括編碼都幫你自動解決,不需要自己操心。
順便推薦Chrome的JSON-Handle插件,查看JSON非常方便。

❸ python怎麼在天氣數據中篩選最高氣溫大於10度的日期

python在天氣數據中篩選最高氣溫大於10度的日期步驟如下。
1、在命令行中直接使用pip進行模塊安裝。
2、利用select語句找到網頁中天氣數據所在的div即可。

❹ Python氣象數據處理進階之Xarray(7):讀寫文件

前幾文主要講的是如何處理Xarray中的DataArray和DataSet,現在分享一下如何從nc文件或其他文件中讀取數據,以及如何將處理好的數據輸出成一個nc文件。

首先還是要再強調DataArray和DataSet的區別,DataArray是一個帶標簽結構的數組,DataSet是一個數據集,這意味著,從一個nc文件中讀取到的全部信息構成了一個DataSet,而nc文件中的某一個變數是一個DataArray。

反之,我們要將一個數據寫成nc文件,那麼就是要創建一個DataSet。

這個數據結構有點像站點數據,對xy維設定了兩層,分別是經緯度,還有一維時間維(whatever,反正是隨便創建一個DataSet)。

就可以輸出成nc文件了。
當然還可以更懶一點,

直接將abc這個DataArray轉成DataSet,DataArray的標簽和緯度信息會自動轉換。
之後使用to_netcdf即可。

讀取的語句也十分簡單。

函數只需要基本的路徑及文件名,無需像NCL一樣聲明狀態'r'。

Xarray讀取多文件也提供了相應函數(我目前沒有使用過,我通常都是使用CDO提前處理,大家可以自行嘗試)。

根據官方的介紹,Xarray也支持grib文件的讀取。

前提是需要一個解碼庫"eccodes"

或者利用Xarray藉助PYNIO去讀。

官方文檔中還有一部分是關於畫圖的,然而畫圖部分個人認為使用matplotlib+cartopy的組合更加靈活,因此Xarray系列到這里應該就完結了。

下一步的計劃是按照魏鳳英老師的統計方法一書,試著將常用的氣象統計方法利用python去實現,但是水平實在有限。

❺ python如何提取網頁天氣信息

bs4是可以提取的,因為你這一段裡面出現的文字都是你要的,不存在剔除的考慮。
網頁解析:要麼使用bs4、要麼使用bs4+re(正則),或者你可以使用以下PyQuery,這個也是用在網頁爬蟲解析頁面的模塊。
如果還是琢磨不出來,你把你這整個的html源碼發上來,我搞搞,現在只看一段很難幫你

❻ Python氣象數據處理與繪圖(2):常用數據計算方法

對於氣象繪圖來講,第一步是對數據的處理,通過各類公式,或者統計方法將原始數據處理為目標數據。
按照氣象統計課程的內容,我給出了一些常用到的統計方法的對應函數:

在計算氣候態,區域平均時均要使用到求均值函數,對應NCL中的dim_average函數,在python中通常使用np.mean()函數
numpy.mean(a, axis, dtype)
假設a為[time,lat,lon]的數據,那麼

需要特別注意的是,氣象數據中常有缺測,在NCL中,使用求均值函數會自動略過,而在python中,當任意一數與缺測(np.nan)計算的結果均為np.nan,比如求[1,2,3,4,np.nan]的平均值,結果為np.nan
因此,當數據存在缺測數據時,通常使用np.nanmean()函數,用法同上,此時[1,2,3,4,np.nan]的平均值為(1+2+3+4)/4 = 2.5
同樣的,求某數組最大最小值時也有np.nanmax(), np.nanmin()函數來補充np.max(), np.min()的不足。
其他很多np的計算函數也可以通過在前邊加『nan』來使用。
另外,

也可以直接將a中缺失值全部填充為0。

np.std(a, axis, dtype)
用法同np.mean()

在NCL中有直接求數據標准化的函數dim_standardize()

其實也就是一行的事,根據需要指定維度即可。

皮爾遜相關系數:

相關可以說是氣象科研中最常用的方法之一了,numpy函數中的np.corrcoef(x, y)就可以實現相關計算。但是在這里我推薦scipy.stats中的函數來計算相關系數:

這個函數缺點和有點都很明顯,優點是可以直接返回相關系數R及其P值,這避免了我們進一步計算置信度。而缺點則是該函數只支持兩個一維數組的計算,也就是說當我們需要計算一個場和一個序列的相關時,我們需要循環來實現。

其中a[time,lat,lon],b[time]

(NCL中為regcoef()函數)
同樣推薦Scipy庫中的stats.linregress(x,y)函數:

slop: 回歸斜率
intercept:回歸截距
r_value: 相關系數
p_value: P值
std_err: 估計標准誤差
直接可以輸出P值,同樣省去了做置信度檢驗的過程,遺憾的是仍需同相關系數一樣循環計算。

❼ Python氣象數據處理與繪圖(1):數據讀取

python很多庫支持了對nc格式文件的讀取,比如NetCDF4,PyNio(PyNio和PyNgl可以看做是NCL的Python版本)以及Xarray等等。

我最初使用PyNio,但是由於NCL到Python的移植並不完全,導致目前遠不如直接使用NCL方便,而在接觸Xarray庫後,發現其功能強大遠超NCL(也可能是我NCL太菜的原因)。

安裝同其它庫一致:

我這里以一套中國逐日最高溫度格點資料(CN05.1)為例,其水平精度為0.5°X0.5°。

可以看到,文件的坐標有時間, 經度,緯度,變數有日最高溫
我們將最高溫數據取出

這與Linux系統中的ncl_filemp指令看到的信息是類似的
Xarray在讀取坐標信息時,自動將時間坐標讀取為了datetime64 格式,這對我們挑選目的時間十分方便。Xarray通常與pandas配合使用。
比如我們想選取1979.06.01-1979.06.20時期數據,我們只需

再比如我們想選取夏季數據時,只需

更多的時間操作同python的datetime函數類似。
當我們想選取特定經緯度范圍(高度)的數據時,.loc[]函數同樣可以解決。
在這里,我選取了40°N-55°N,115°E-135°E范圍的數據

甚至,我們還可以套娃,同時疊加時間和范圍的選取

這足夠滿足常用到的數據索引要求。

對於這類簡單排列的.txt文件,可以通過np.load讀取,用pandas的.read_csv更為方便

讀取txt的同時,對每列賦予了一個列名,通過data.a可以直接按列名調用相應數據。
對於較復雜的.txt文件,仍可通過該函數讀取

skiprows=5跳過了前5行的文件頭,sep='\s+'定義了數據間隔為空格,這里用的是正則表達。
pd.read_csv函數有很多的參數,可以處理各種復雜情況下的文本文件讀取。

grib文件可通過pygrib庫讀取
import pygrib
f = pygrib.open('xxx.grb')

❽ Python氣象數據處理與繪圖(12):軌跡(台風路徑,寒潮路徑,水汽軌跡)繪制

寒潮是筆者主要的研究方向,寒潮路徑作為寒潮重要的特徵,是寒潮預報的重點之一,同樣的道理也適用在台風研究以及降水的水汽來源研究中。關於路徑的計算以及獲取方法(比如軌跡倒推,模型追蹤等等方法,台風有自己現成的數據集,比如ibtracs數據集等等)並不在本文的介紹范圍之內,本文主要介紹在獲取了相應的路徑坐標後,如何在圖中美觀的展現。

上圖展現了近40年東北亞區域的冬季冷空氣活動路徑,繪制這類圖需要的數據只需為每條路徑的N個三維坐標點,第一第二維分別為longitude和latitudee,第三維則比較隨意,根據需要選擇,比如說需要體現高度,那就用高度坐標,需要體現冷空氣強度,那就用溫度數據,水汽可以用相對濕度,台風也可以用速度等等。
通常此類數據是由.txt(.csv)等格式存儲的,讀取和處理方法可參考我的「Python氣象數據處理與繪圖(1):數據讀取」,本文主要介紹繪圖部分。

當然根據需要,也可以直接繪制兩維的軌跡,即取消掉顏色數組,用最簡單的plot語句,循環繪制即可。

有一個陷阱需要大家注意的是,當軌跡跨越了東西半球時,即穿越了0°或者360°經線時,它的連接方式是反向繞一圈,比如下圖所示,你想要藍色的軌跡,然而很有可能得到綠色的,這是因為你的網格數組的邊界是斷點,系統不會自動識別最短路徑,只會在數組中直接想連,因為這不是循環數組。

我目前的解決辦法是這樣的:如果你的數據是0°-360°格式,那麼變為-180°-180°的格式,反之相互轉換。但是如果你的數據兩種都出現了斷點,也就是繞了地球一圈多,那無論怎樣都么得辦法了,我目前的思路是將數據轉換成極坐標數據格式,理論上是可行的,CARTOPY的繪圖也是支持極坐標數據的,具體實施還需要再試試。

❾ 用python編寫的獲取天氣預報的代碼總是有錯誤,求解

weatherinfo=r.json() #在json後面加上括弧才能返回結果。否則只能返回函數地址。

以下python3通過:

importrequests
ApiUrl="http://www.weather.com.cn/adat/cityinfo/101010100.html"
r=requests.get(ApiUrl)
weatherinfo=r.json()
print(weatherinfo["weatherinfo"]["ptime"])
print(weatherinfo["weatherinfo"]["temp2"])

>>>08:00

>>>5℃

❿ 用python獲取天氣預報的代碼出錯了,求解

前面的回答也足夠簡明了。

首先,找出出問題的代碼行數。

其次,找出出問題的變數。

你 print(type(變數名))你就可以發現該變數是 str字元串類型的,無法參與計算,所以你應該將它轉換成數值類型的,一般都用 float(變數名)來轉換,改完那一行報錯的行,就基本不用改別的了。


個人建議:

1. 你的 Python基礎似乎有些薄弱,最好好好學習一下基礎。其他模塊都需要這個基礎才能更好使用。

2.或許你可以看看 pandas。有時候做數據分析用 pandas可以節省很多代碼,特別對於剛學習 python的人來說,或許更加容易接受 pandas的特有語法。


財富值如果有的話應該給上面那個回答問題的人。因為他的答案是正確的。

閱讀全文

與python天氣查詢腳本相關的資料

熱點內容
柵格化命令有何作用 瀏覽:819
為什麼壓縮文件不能解壓 瀏覽:307
足球app哪個軟體好 瀏覽:92
產品經理逼瘋程序員的一天 瀏覽:13
修改svn伺服器ip地址 瀏覽:580
下列關於編譯說法正確的是 瀏覽:242
java馬克思 瀏覽:116
在設置的應用加密為啥沒有微信 瀏覽:307
安卓中基本的ui是什麼 瀏覽:754
php郵件phpini 瀏覽:629
android聊天時間顯示時間 瀏覽:864
涿鹿小楊看海是零成本的解壓方式 瀏覽:683
建行app開通手機銀行需要什麼 瀏覽:515
單片機掃描漢字 瀏覽:291
迅捷pdf編輯內容灰色 瀏覽:591
如何在cmd運行python腳本 瀏覽:280
兄弟連php培訓教程外包 瀏覽:479
vc無法編譯c 瀏覽:105
百度網盤伺服器加速下載地址 瀏覽:871
pythontempfile模塊 瀏覽:149