国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注

這篇具有很好參考價值的文章主要介紹了python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

動機

有個同事吧,寫論文,讓我?guī)兔Τ鰝€圖,就寫了個代碼,然后我的博客好久沒更新了,就順便貼上來了!
很多人感興趣風速的箭頭怎樣畫,可能這種圖使用 NCL 非常容易,很多沒用過代碼的小朋友,就有點犯怵,怕 python 畫起來很困難。但是不然,看完我的代碼,就會發(fā)現(xiàn)很簡單,并且也可以批量,同時還能自定義國界等shp文件,這對于發(fā)sci等國際論文很重要,因為有時候內(nèi)置的國界是有問題的。

數(shù)據(jù)

本次博客使用的數(shù)據(jù)為 ERA5 hourly data on pressure levels from 1940 to present數(shù)據(jù),數(shù)據(jù)的下載方式及注冊賬號,我在前面的博客中都寫過,詳細可參考以下兩篇博客:



以下為我們數(shù)據(jù)介紹界面和需要下載的變量:
數(shù)據(jù)介紹地址:https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels?tab=overview
python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注,ERA5,Xarray,Python,python,開發(fā)語言,數(shù)據(jù)可視化

數(shù)據(jù)選擇界面

python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注,ERA5,Xarray,Python,python,開發(fā)語言,數(shù)據(jù)可視化

代碼

廢話不多說,直接上代碼。

導入包

import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import geopandas as gpd
# 設置全局字體為新羅馬
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman']
# plt.rcParams['font.serif'] = ['SimSun']
# 設置全局字體權(quán)重為normal
plt.rcParams['font.weight'] = 'normal'

# 設置全局字體大小
matplotlib.rcParams['font.size'] = 19  # 設置全局字體大小為12

畫水汽通量散度圖

# 加載shapefile
gdf = gpd.read_file(r'./shp/Pronvience.shp')

# 使用geopandas讀取地理數(shù)據(jù),這里我們手動創(chuàng)建一個GeoDataFrame
gdf_point = gpd.GeoDataFrame({
    'City': ['Mingfeng Station', 'Kalasai Station'],
    'Latitude': [37.5,37],
    'Longitude': [80,81]
}, geometry=gpd.points_from_xy([80,81], [37.5,37]))


# 載入數(shù)據(jù)
data_path = r'./20170731_case.nc'  # 替換為您的文件路徑
ds = xr.open_dataset(data_path)

time = '2017-07-30T22:00:00'

# level_hPa = 700

# for level_hPa in [200,500,700,850]:
for level_hPa in [600]:
    # 選擇特定時間和氣壓層
    ds_selected = ds.sel(time= time, level=level_hPa)  # 示例:2022年1月1日0時,850hPa
    
    # 獲取數(shù)據(jù)變量
    u = ds_selected['u']  # 東西向風速
    v = ds_selected['v']  # 南北向風速
    q = ds_selected['q']  # 比濕
    
    # 獲取經(jīng)度和緯度,假設這些是坐標維度
    longitude = u.longitude
    latitude = u.latitude
    
    # 計算水汽通量
    qu = q * u  # 東西向水汽通量
    qv = q * v  # 南北向水汽通量
    
    
    # 計算水汽通量散度 單位為
    div_q = (qu.differentiate('longitude') + qv.differentiate('latitude'))* 10
    
    # 打印結(jié)果
    # print(div_q)
    
    # 創(chuàng)建圖形和軸對象
    fig, ax = plt.subplots(figsize=(6, 6),dpi=500)  # 圖形尺寸為10x6英寸
    
    # 可視化散度結(jié)果
    contour = div_q.plot(add_colorbar=False, cmap="RdBu_r", vmin=-1, vmax=1)  # 使用黑色線條繪制20個等級的等高線
    #
    # 在ax上繪制等高線圖
    div_q.plot.contour(levels=25, colors='black',linewidths=0.6)
    # 添加顏色條
    fig.colorbar(contour, ax=ax, label='Water Vapor Flux Divergence (g/cm2/s)')
    
    # 使用quiver函數(shù)需要確保數(shù)據(jù)的間隔,這里我們每隔5個點取樣
    Q = ax.quiver(longitude[::5], latitude[::5], u[::5, ::5], v[::5, ::5], scale=300,color="red")
    
    # 繪制shapefile
    gdf.plot(ax=ax, color='none', edgecolor='green',linewidths=0.7)  # 無填充,黑色邊界
    
    # gdf_point.plot(ax=ax, color='red')  # 標記紐約的位置
    
    # 繪制點
    ax.scatter(gdf_point['Longitude'], gdf_point['Latitude'], color='red', s=100) 
    
    # 標注城市名稱
    for x, y, city in zip(gdf_point['Longitude'], gdf_point['Latitude'], gdf_point['City']):
        ax.text(x, y, ' ' + city, verticalalignment='center', fontsize=15)
    

    
    # 設置經(jīng)緯度范圍
    ax.set_xlim(75, 90)
    ax.set_ylim(30, 45)
    
    ax.set_xlabel('Longitude')
    ax.set_ylabel('Latitude')
    ax.set_title('')  # 清除標題
    
    # 添加標題在圖片正下方
    # fig.suptitle('{}hPa {}'.format( level_hPa,time.replace("T"," ") ), y=-0.01,va='bottom')
    
    # 調(diào)整布局以避免重疊和裁剪
    fig.tight_layout()
    
    plt.savefig("./{}hPa {}.jpg".format( level_hPa,time.replace(":","") ), dpi=500)
    plt.show()

水汽通量圖

# 加載shapefile
gdf = gpd.read_file(r'./shp/Pronvience.shp')

# 載入數(shù)據(jù)
data_path = r'./20170731_case.nc'  # 替換為您的文件路徑
ds = xr.open_dataset(data_path)

time = '2017-07-30T22:00:00'
for level_hPa in [200,500,600,700,850]:
    # 選擇特定時間和氣壓層
    ds_selected = ds.sel(time= time, level=level_hPa)  # 示例:2022年1月1日0時,850hPa
    
    # 獲取數(shù)據(jù)變量
    u = ds_selected['u']  # 東西向風速
    v = ds_selected['v']  # 南北向風速
    q = ds_selected['q']  # 比濕
    
    # 獲取經(jīng)度和緯度,假設這些是坐標維度
    longitude = u.longitude
    latitude = u.latitude
    
    # 計算水汽通量
    qu = q * u * 100  # 東西向水汽通量
    qv = q * v * 100 # 南北向水汽通量
    
    wvf = np.sqrt(qu**2 + qv**2)
    
    # 計算水汽通量散度 單位為
    # div_q = (qu.differentiate('longitude') + qv.differentiate('latitude'))* 10
    
    # 打印結(jié)果
    # print(div_q)
    
    # 創(chuàng)建圖形和軸對象
    fig, ax = plt.subplots(figsize=(6, 6),dpi=400)  # 圖形尺寸為10x6英寸
    
    # 可視化散度結(jié)果
    contour = wvf.plot(add_colorbar=False, cmap="RdBu_r", vmin=0, vmax=10)  # 使用黑色線條繪制20個等級的等高線
    #
    # 在ax上繪制等高線圖
    wvf.plot.contour(levels=25, colors='black',linewidths=0.6)
    # 添加顏色條
    fig.colorbar(contour, ax=ax, label='Water Vapor Flux(g/cm/s)')
    
    # 使用quiver函數(shù)需要確保數(shù)據(jù)的間隔,這里我們每隔5個點取樣
    Q = ax.quiver(longitude[::5], latitude[::5], u[::5, ::5], v[::5, ::5], scale=300,color="red")
    
    # 繪制shapefile
    gdf.plot(ax=ax, color='none', edgecolor='green',linewidths=0.7)  # 無填充,黑色邊界
    
    # 設置經(jīng)緯度范圍
    ax.set_xlim(75, 90)
    ax.set_ylim(30, 45)
    
    ax.set_xlabel('Longitude')
    ax.set_ylabel('Latitude')
    ax.set_title('')  # 清除標題
    
    # 添加標題在圖片正下方
    # fig.suptitle('{}hPa {}'.format( level_hPa,time.replace("T"," ") ), y=-0.01,va='bottom')
    
    # 調(diào)整布局以避免重疊和裁剪
    fig.tight_layout()
    
    plt.savefig("./WVF_{}hPa {}.jpg".format( level_hPa,time.replace(":","") ), dpi=500)
    plt.show()

結(jié)果圖

python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注,ERA5,Xarray,Python,python,開發(fā)語言,數(shù)據(jù)可視化文章來源地址http://www.zghlxwxcb.cn/news/detail-857146.html

到了這里,關于python ERA5 畫水汽通量散度圖地圖:風速風向矢量圖、疊加等高線、色彩分級、添加shp文件、添加位置點及備注的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python氣象數(shù)據(jù)可視化學習筆記8——利用matplotlib和ERA5數(shù)據(jù)繪制時間-高度氣象綜合廓線圖

    python氣象數(shù)據(jù)可視化學習筆記8——利用matplotlib和ERA5數(shù)據(jù)繪制時間-高度氣象綜合廓線圖

    氣象預報業(yè)務中,有種常用的綜合廓線圖,其本質(zhì)上是單個站點時間-高度的等高線或者填色圖,其中時間是從右到左來看。所以準備好(time, level)的二維數(shù)據(jù),然后依次疊加線條和填色就可以,思路很簡單,但是繪圖中涉及到了很多細節(jié)問題,也是琢磨了一陣子,怕以后忘了

    2024年02月05日
    瀏覽(27)
  • 水汽穩(wěn)定度修正函數(shù)\Psi_q對潛熱通量影響--模式驗證工作

    水汽穩(wěn)定度修正函數(shù)\Psi_q對潛熱通量影響--模式驗證工作

    我之前提出了一個水汽通量廓線關系,這項工作偏理論,如果對下面說的背景不了解的話可以看下 https://agupubs.onlinelibrary.wiley.com/share/YNSG74MV8B8BAAUMCHN3?target=10.1029/2022JD036708 那會沒把提出的水汽穩(wěn)定度修正函數(shù)加到CAS-ESM,當時對CAS-ESM模式還沒這么熟悉,也想著師兄能幫我,但是師

    2024年02月02日
    瀏覽(17)
  • WRF進階:使用ERA5-land數(shù)據(jù)驅(qū)動WRF/WRF撰寫Vtable文件添加氣象場

    WRF進階:使用ERA5-land數(shù)據(jù)驅(qū)動WRF/WRF撰寫Vtable文件添加氣象場

    想用WRF模擬地氣交換過程,對于WRF的地表數(shù)據(jù),尤其是土壤溫濕度數(shù)據(jù)要求便會很大,傳統(tǒng)使用ERA5-singledata數(shù)據(jù)精度也許不足以滿足需求,為此,本文嘗試使用ERA5-land數(shù)據(jù)替換驅(qū)動WRF。 ERA5-land的數(shù)據(jù)下載與ERA5其他數(shù)據(jù)并無不同,只不過需要注意一點:當下載grib格式時,部分

    2024年02月09日
    瀏覽(26)
  • 風速預測 | Python基于CEEMDAN-CNN-Transformer+ARIMA的風速時間序列預測

    風速預測 | Python基于CEEMDAN-CNN-Transformer+ARIMA的風速時間序列預測

    效果一覽 基本介紹 CEEMDAN-CNN-Transformer+ARIMA是一種用于風速時間序列預測的模型,結(jié)合了不同的技術和算法。收集風速時間序列數(shù)據(jù),并確保數(shù)據(jù)的質(zhì)量和完整性。這些數(shù)據(jù)通常包括風速的觀測值和時間戳。CEEMDAN分解:使用集合經(jīng)驗模態(tài)分解(CEEMDAN)將風速時間序列分解為多

    2024年01月25日
    瀏覽(26)
  • 基于長短期神經(jīng)網(wǎng)絡的風速預測,基于LSTM的風速預測

    目錄 背影 摘要 LSTM的基本定義 LSTM實現(xiàn)的步驟 基于長短期神經(jīng)網(wǎng)絡LSTM的風速預測 完整代碼: https://download.csdn.net/download/abc991835105/88171311 效果圖 結(jié)果分析 展望 參考論文 風速預測是一種比較難的預測,隨機性比較大,長短期神經(jīng)網(wǎng)絡是一種改進黨的RNN神經(jīng)網(wǎng)絡,克服了梯度

    2024年02月14日
    瀏覽(19)
  • 如何使用MATLAB處理渦度通量數(shù)據(jù)

    如何使用MATLAB處理渦度通量數(shù)據(jù)

    MATLAB MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于數(shù)據(jù)分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領域。 MATLAB是matrixlaboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室),軟件主要面對科學計算、可視化

    2024年02月09日
    瀏覽(19)
  • ERA ·Era Network:Web3.0社交的破局者

    ERA ·Era Network:Web3.0社交的破局者

    在當今數(shù)字化環(huán)境中,互聯(lián)網(wǎng)的集中化嚴重制約了個人對數(shù)據(jù)的控制權(quán),引發(fā)了對數(shù)據(jù)隱私、所有權(quán)和自主權(quán)的重大關切。這一問題尤其在社交網(wǎng)絡、數(shù)據(jù)存儲和內(nèi)容傳輸?shù)汝P鍵領域表現(xiàn)得尤為明顯,用戶常常感到無法充分掌握自己的數(shù)字身份和個人數(shù)據(jù)。這種陳舊的基礎設

    2024年01月25日
    瀏覽(18)
  • 14、KL散度

    14、KL散度

    KL 散度,是一個用來衡量兩個概率分布的相似性的一個度量指標。 現(xiàn)實世界里的任何觀察都可以看成表示成信息和數(shù)據(jù),一般來說,我們無法獲取數(shù)據(jù)的總體,我們只能拿到數(shù)據(jù)的部分樣本,根據(jù)數(shù)據(jù)的部分樣本,我們會對數(shù)據(jù)的整體做一個近似的估計,而數(shù)據(jù)整體本身有一

    2023年04月18日
    瀏覽(18)
  • KL散度

    KL散度(Kullback-Leibler divergence),也稱為相對熵(relative entropy),是用來衡量兩個概率分布之間差異的一種指標。在機器學習中,KL散度常常用于度量兩個概率分布之間的相似度或差異性。 具體來說,假設我們有兩個概率分布 p ( x ) p(x) p ( x ) 和 q ( x ) q(x) q ( x ) ,其中 p ( x

    2024年02月03日
    瀏覽(26)
  • 無人機風速風向儀-百科小天地

    隨著科技的不斷進步,無人機技術已經(jīng)廣泛應用于各個領域,包括氣象監(jiān)測。近年來,無人機風速風向儀的出現(xiàn),為氣象監(jiān)測帶來了革命性的變革。本文將介紹無人機風速風向儀的原理、優(yōu)勢以及在氣象監(jiān)測領域的應用,讓我們一起領略科技改變世界的魅力。 一、無人機風速

    2024年02月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包