Ⅰ python怎麼在天氣數據中篩選最高氣溫大於10度的日期
python在天氣數據中篩選最高氣溫大於10度的日期步驟如下。
1、在命令行中直接使用pip進行模塊安裝。
2、利用select語句找到網頁中天氣數據所在的div即可。
Ⅱ 如何使用python利用api獲取天氣預報
試試這個:http://wthrcdn.etouch.cn/weather_mini?citykey=101210101
返回的數據是經過gzip壓縮的,如果你用urllib,需要先把獲取的二進制數據解壓,再解碼成字元串。用requests庫就方便多了,包括編碼都幫你自動解決,不需要自己操心。
順便推薦Chrome的JSON-Handle插件,查看JSON非常方便。
Ⅲ Python氣象數據處理與繪圖(12):軌跡(台風路徑,寒潮路徑,水汽軌跡)繪制
寒潮是筆者主要的研究方向,寒潮路徑作為寒潮重要的特徵,是寒潮預報的重點之一,同樣的道理也適用在台風研究以及降水的水汽來源研究中。關於路徑的計算以及獲取方法(比如軌跡倒推,模型追蹤等等方法,台風有自己現成的數據集,比如ibtracs數據集等等)並不在本文的介紹范圍之內,本文主要介紹在獲取了相應的路徑坐標後,如何在圖中美觀的展現。
上圖展現了近40年東北亞區域的冬季冷空氣活動路徑,繪制這類圖需要的數據只需為每條路徑的N個三維坐標點,第一第二維分別為longitude和latitudee,第三維則比較隨意,根據需要選擇,比如說需要體現高度,那就用高度坐標,需要體現冷空氣強度,那就用溫度數據,水汽可以用相對濕度,台風也可以用速度等等。
通常此類數據是由.txt(.csv)等格式存儲的,讀取和處理方法可參考我的「Python氣象數據處理與繪圖(1):數據讀取」,本文主要介紹繪圖部分。
當然根據需要,也可以直接繪制兩維的軌跡,即取消掉顏色數組,用最簡單的plot語句,循環繪制即可。
有一個陷阱需要大家注意的是,當軌跡跨越了東西半球時,即穿越了0°或者360°經線時,它的連接方式是反向繞一圈,比如下圖所示,你想要藍色的軌跡,然而很有可能得到綠色的,這是因為你的網格數組的邊界是斷點,系統不會自動識別最短路徑,只會在數組中直接想連,因為這不是循環數組。
我目前的解決辦法是這樣的:如果你的數據是0°-360°格式,那麼變為-180°-180°的格式,反之相互轉換。但是如果你的數據兩種都出現了斷點,也就是繞了地球一圈多,那無論怎樣都么得辦法了,我目前的思路是將數據轉換成極坐標數據格式,理論上是可行的,CARTOPY的繪圖也是支持極坐標數據的,具體實施還需要再試試。
Ⅳ python怎麼打開 gfs氣象數據
參考
http://www.jb51.net/article/48299.htm
Ⅳ python氣象繪圖windrose
#導入包
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib.ticker import FuncFormatter
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #設置簡黑字體
mpl.rcParams['axes.unicode_minus'] = False #設置負號正常顯示
#----獲取數據DataFrames,index*columns。index表示不同值范圍,columns表示十六個風向
data = pd.DataFrame(wind_d_max_num_per,
index=['<15', '15~25', '25~35', '35~45',"≥45"],
columns='N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW'.split())
N = 16 # 風速分布為16個方向
theta = np.linspace(0, 2*np.pi, N, endpoint=False) # 獲取16個方向的如手角度值
width = np.pi / 4 * 0.4 # 繪制扇型的寬度,可以自行調整0.5時是360,充滿,有間隔的話小於0.5即可
labels = list(data.columns) # 自定義坐標標簽為 N , NSN, …渣笑嫌…# 開始繪圖
plt.figure(figsize=(6,6),dpi=600)
ax = plt.subplot(111, projection='polar')
#----自定義顏色
mycolor =['cornflowerblue','orange','mediumseagreen','lightcoral','cyan']
#----循環畫風玫瑰圖
i=0
for idx in data.index:
print(idx)
# 每一行繪制一個扇形
radii = data.loc[idx] # 每一行數據
if i == 0:
ax.bar(theta, radii, width=width, bottom=0.0, label=idx, tick_label=labels,
color=mycolor[i])
else:
ax.bar(theta, radii, width=width, bottom=np.sum(data.loc[data.index[0:i]]), label=idx, tick_label=labels,
color=mycolor[i])
i=i+1
#此種畫法,注意bottom設置,第一個bottom為0,後續bottom需要在前一個基礎上增加。
ax.set_xticks(theta)
ax.set_xticklabels(labels,fontdict={'weight':'bold','size':15,'color':'k'})
ax.set_theta_zero_location('N') #設置零度方向北
ax.set_theta_direction(-1) # 逆時針方向繪圖
#----設置y坐標軸以百分升則數顯示
plt.gca().yaxis.set_major_formatter(FuncFormatter(lambda s, position: '{:.0f}%'.format(100*s)))
plt.legend(loc=4, bbox_to_anchor=(0.05, -0.25),fontsize=12) # 將label顯示出來, 並調整位置
#----保存圖片
plt.savefig("./windrose1.svg")
Ⅵ 114 11 個案例掌握 Python 數據可視化--美國氣候研究
自哥本哈根氣候會議之後,全球日益關注氣候變化和溫室效應等問題,並於會後建立了全球碳交易市場,分階段分批次減碳。本實驗獲取了美國 1979 - 2011 年間 NASA 等機構對美國各地日均最高氣溫、降雨量等數據,研究及可視化了氣候相關指標的變化規律及相互關系。
輸入並執行魔法命令 %matplotlib inline, 並去除圖例邊框。
數據集介紹:
本數據集特徵包括美國 49 個州(State),各州所在的地區(Region),統計年(Year),統計月(Month),平均光照(Avg Daily Sunlight),日均最大空氣溫度(Avg Daily Max Air Temperature ),日均最大熱指數(Avg Daily Max Heat Index ),日均降雨量(Avg Daily Precipitation ),日均地表溫度(Avg Day Land Surface Temperature)。
各特徵的年度區間為:
導入數據並查看前 5 行。
篩選美國各大區域的主要氣候指數,通過 sns.distplot 介面繪制指數的分布圖。
從運行結果可知:
光照能量密度(Sunlight),美國全境各地區分布趨勢大致相同,均存在較為明顯的兩個峰(強光照和弱光照)。這是因為非赤道國家受地球公轉影響,四季光照強度會呈現出一定的周期變化規律;
從地理區位能看出,東北部光照低谷明顯低於其他三個區域;
日均最高空氣溫度(Max Air Temperature),美國全境各地區表現出較大差異,東北部和中西部趨勢大致相同,氣溫平緩期較長,且包含一個顯著的尖峰;西部地區平緩期最長,全年最高溫均相對穩定;南部分布則相對更為集中;
日均地表溫度(Land Surface Temperature),與最高空氣溫度類似,不同之處在於其低溫區分布更少;
最大熱指數(Max Heat Index),西部與中西部分布較為一致,偏溫和性溫度,東北部熱指數偏高,南部偏低;
降雨量(Precipitation),西部明顯偏小,南部與東北部大致相同,中西部相對較多。
結合地理知識做一個總結:
東北部及大多數中西部地區,屬於溫帶大陸性氣候,四季分明,夏季悶熱,降雨較多。
西部屬於溫帶地中海氣候,全年氣候溫和,並且乾燥少雨,夏季氣候溫和,最高溫度相對穩定。
南部沿海一帶,終年氣候溫暖,夏季炎熱,雨水充沛。
按月計算美國各地區降雨量均值及標准偏差,以均值 ± 一倍標准偏差繪制各地區降雨量誤差線圖。
從運行結果可知:
在大多數夏季月份,西部地區降雨量遠小於其他地區;
西部地區冬季月降雨量高於夏季月;
中西部地區是較為典型的溫帶大陸性氣候,秋冬降雨逐漸減少,春夏降雨逐漸升高;
南部地區偏向海洋性氣候,全年降雨量相對平均。
需要安裝joypy包。
日均最高氣溫變化趨勢
通過 joypy 包的 joyplot 介面,可以繪制帶堆積效應的直方分布曲線,將 1980 年 - 2008 年的日均最高溫度按每隔 4 年的方式繪制其分布圖,並標注 25%、75% 分位數。
從運行結果可知:
1980 - 2008 年區間,美國全境日均最高溫度分布的低溫區正逐漸升高,同時高溫區正逐漸降低,分布更趨向於集中;
1980 - 2008 年區間,美國全境日均最高溫度的 25% 分位數和 75% 分位數有少量偏離但並不明顯。
日均降雨量變化趨勢
同樣的方式對降雨量數據進行處理並查看輸出結果。
篩選出加州和紐約州的日均降雨量數據,通過 plt.hist 介面繪制降雨量各月的分布圖。
從運行結果可知:
加州地區降雨量多集中在 0 - 1 mm 區間,很少出現大雨,相比而言,紐約州則顯得雨量充沛,日均降雨量分布在 2 - 4 mm 區間。
直方圖在堆積效應下會被覆蓋大多數細節,同時表達聚合、離散效應的箱線圖在此類問題上或許是更好的選擇。
通過 sns.boxplot 介面繪制加州和紐約州全年各月降雨量分布箱線圖.
從箱線圖上,我們可以清晰地對比每個月兩個州的降雨量分布,既可以看到集中程度,例如七月的加州降雨量集中在 0.1 - 0.5 mm 的窄區間,說明此時很少會有大雨;又可以看到離散情況,例如一月的加州,箱線圖箱子(box)部分分布較寬,且上方 10 mm 左右存在一個離散點,說明此時的加州可能偶爾地會出現大到暴雨。
視覺上更為美觀且簡約的是擺動的誤差線圖,實驗 「美國全境降雨量月度分布」 將所有類別標簽的 x 位置均放於同一處,導致誤差線高度重合。可通過調節 x 坐標位置將需要對比的序列緊湊排布。
從輸出結果可以看出,加州冬季的降雨量不確定更強,每年的的十一月至次年的三月,存在降雨量大,且降雨量存在忽多忽少的現象(誤差線長)。
上面的實驗均在研究單變數的分布,但經常性地,我們希望知道任意兩個變數的聯合分布有怎樣的特徵。
核密度估計 , 是研究此類問題的主要方式之一, sns.kdeplot 介面通過高斯核函數計算兩變數的核密度函數並以等高線的形式繪制核密度。
從運行結果可知:
加州在高溫區和低降雨期存在一個較為明顯的高密度分布區(高溫少雨的夏季);
紐約州在高溫及低溫區均存在一個高密度的分布區,且在不同溫區降雨量分布都較為均勻。
將美國全境的降雨量與空氣溫度通過 plt.hist2d 介面可視化。
從運行結果可知:
美國全境最高密度的日均高溫溫度區域和降雨量區間分別為,78 F (約等於 25 C)和 2.2 mm 左右,屬於相對舒適的生活氣候區間。
美國全境降雨量與空氣溫度的關系-核密度估計
在上面實驗基礎上,在 x, y 軸上分別通過 sns.rugplot 介面繪制核密度估計的一維分布圖,可在一張繪圖平面上同時獲取聯合分布和單變數分布的特徵。
美國全境降雨量與空氣溫度的關系-散點分布和直方分布
sns.jointplot 介面通過柵格的形式,將單變數分布用子圖的形式進行分別繪制,同時通過散點圖進行雙變數關系的展示,也是一種較好的展現數據分布的方式。
上面兩個實驗研究了雙變數分布的可視化,以下研究 3 變數聚合結果的可視化。
通過 sns.heatmap 介面可實現對透視數據的可視化,其原理是對透視結果的值賦予不同的顏色塊,以可視化其值的大小,並通過顏色條工具量化其值大小。
上面的兩個實驗可視化了各州隨年份日均最高溫度的中位數變化趨勢,從圖中並未看出有較為顯著地變化。
以下通過 t 檢驗的方式查看統計量是否有顯著性差異。stats.ttest_ind 介面可以輸出 1980 年 與 2010 年主要氣候指數的顯著性檢驗統計量及 p 值。
從運行結果可以看出:
檢驗結果拒絕了降雨量相等的原假設,即 1980 年 與 2010 年兩年間,美國降雨量是不同的,同時沒有拒絕日均日照、日均最大氣溫兩個變數相等的原假設,說明氣溫未發生顯著性變化。
Ⅶ 用python獲取天氣預報的代碼出錯了,求解
前面的回答也足夠簡明了。
首先,找出出問題的代碼行數。
其次,找出出問題的變數。
你 print(type(變數名))你就可以發現該變數是 str字元串類型的,無法參與計算,所以你應該將它轉換成數值類型的,一般都用 float(變數名)來轉換,改完那一行報錯的行,就基本不用改別的了。
個人建議:
1. 你的 Python基礎似乎有些薄弱,最好好好學習一下基礎。其他模塊都需要這個基礎才能更好使用。
2.或許你可以看看 pandas。有時候做數據分析用 pandas可以節省很多代碼,特別對於剛學習 python的人來說,或許更加容易接受 pandas的特有語法。
財富值如果有的話應該給上面那個回答問題的人。因為他的答案是正確的。