【Python】 Cartopyでプロット -矢印-

MAP(地図)WEATHER(天気)

 3月に入って久しぶりの雨。雨降る前に栃木・足利の山火事鎮火。鎮圧って言われるとちょっと違和感。
 続いて荒天。
 3月2日、北海道は大雪。近畿地方で「春一番」。
 関東は「春三番」くらい。冬の嵐というより春の嵐。
 2日の朝の気温が14℃、3日の朝の気温が4℃だった。

気象庁

 3月2日の最大瞬間風速は、
 栃木 那須高原:34.3m/s
で唯一30m/s超。
 那須高原では2月15日も唯一30m/s超を記録しているので、風が強い地域のようだ。

 東京:22.9m/s(日中の南風)、横浜:24.4m/s(夜中の北風)。
 2日夜、東急東横線 自由が丘-都立大学間線路沿いで、建設中のビルの足場が倒壊、しばし不通。3日昼、運転再開。

いっぱいプロット

 Cartopyの地図上に矢印をプロットしてみたくなった。

 途中まではこちらのページと同じ。
  ※ import cartopy.crs as ccrs … ax.add_feature(lakes_h,color='aqua',edgecolor='grey')およびplt.show()のコピー&ペースト

 barbs()やquiver()で矢印が描ける。

 が、Cartopyで緯度、経度をそのまま入れても表示されなかった。
 一方、arrow()は、plot()やtext()同様、そのまま入れて表示された。

 ということでarrow()を使って16方位の風についてプロットしてみる。

 気象庁のデータなど(最大瞬間風速データ+地域気象観測所一覧)から202103wind.csvというファイルを作って、pandasライブラリのread_csv()で読み込む。

import pandas as pd
pwind = pd.read_csv('202103wind.csv',index_col=0)

 pwind(変数名は任意)のwind0302_2という列(風向のデータ)が「東」のデータ(行)のみwind90(変数名は任意)に格納。
 wind90の緯度、経度、wind0302_1(風速のデータ)をそれぞれlat90、lot90、p90(いずれも変数名は任意)に格納。
 lat90、lot90、p90はリスト型の配列。

wind90 = pwind[pwind['wind0302_2']=='東']
lat90 = wind90['Latitude'].tolist()
lon90 = wind90['Longitude'].tolist()
p90 = wind90['wind0302_1'].tolist()

 arrow(x,y,dx,dy,…)は、矢印の起点の経度、緯度が(x,y)で、終点の経度、緯度が(x+dx,y+dy)。
 東風ならばdx=-1,dy=0、北風ならばdx=0,dy=-1、南東の風ならばdx=1,dy=1、北北東の風ならばdx=-0.5,dy=-1、…といった具合に入力。
 矢印が長かったので値を半分にした。東風ならばdx=-0.5,dy=0、北北東の風ならばdx=-0.25,dy=-0.5といった具合。
 矢印の長さがバラバラで北北東など8方位の角度もちょっと違うが、今回は便宜上無視。

for i in range(len(lon90)):
    ax.arrow(lon90[i],lat90[i],-0.5,0,color="b",
head_width=0.2,head_length=0.2,length_includes_head=True)

 length_includes_head=True
を入れないと矢印ではなく、ただの直線。
 Pythonのfor文は今回が初出。

 16方位繰り返し。

 920地点あるので、ごっちゃごっちゃ。
 風速20m/s以上の地点だけ(それでも103地点あった)プロットしてみる。

for i in range(len(lon45)):
    if p45[i] >= 20:
        ax.arrow(lon45[i],lat45[i],-0.5,-0.5,color="r",
head_width=0.2,head_length=0.2,length_includes_head=True)

 Pythonのif文は今回が初出。

 16方位繰り返し。

 以上いっぱいプロット。

もうすぐ春

 1月から一転、2月は割と暖かい日が多く、結局今年も大雪には遭わなかった。
 全国的に気温が高かったようで、気象庁によれば、
 『月間日照時間は……平年比は東日本太平洋側で125%、西日本日本海側で145%、沖縄・奄美で189%と、1946年の統計開始以来2月として1位の多照となりました』
とのこと。
 北国の積雪も大方平年並みに落ち着いてきた。

 最近、統計開始以来1位が目につく。
 『2020年の日本沿岸の平均海面水位は、平年に比べて87mm高く、統計を開始した1906年以降で最も高くなりました』
とか。
 全くもって初めてのことなのか、それとも50年100年よりもっと長い周期で繰り返されていることなのか……。
 よくよく考えるには人の寿命は短い。
 光陰矢のごとし。
 幸い今年も春はやって来る。

スポンサーリンク
ふシゼン
タイトルとURLをコピーしました