成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Python繪圖實現(xiàn)臺風路徑可視化代碼實例

瀏覽:4日期:2022-07-07 13:15:50

臺風是重大災(zāi)害性天氣,臺風引起的直接災(zāi)害通常由三方面造成,狂風、暴雨、風暴潮,除此以外臺風的這些災(zāi)害極易誘發(fā)城市內(nèi)澇、房屋倒塌、山洪、泥石流等次生災(zāi)害。正因如此,臺風在科研和業(yè)務(wù)工作中是研究的重點。希望這次臺風路徑可視化可以給予大家一點點幫助。

臺風路徑的獲取

中國氣象局(CMA)

中國氣象局(CMA)的臺風最佳路徑數(shù)據(jù)集(BST),BST是之后對歷史臺風路徑進行校正后發(fā)布的,其經(jīng)緯度、強度、氣壓具有更高的可靠性,但是時間分辨率為6小時,部分3小時,這一點不如觀測數(shù)據(jù)。下載地址:

http://tcdata.typhoon.org.cn/

溫州臺風網(wǎng)

溫州臺風網(wǎng)的數(shù)據(jù)是實時發(fā)布數(shù)據(jù)的記錄,時間分辨率最高達1小時,對于臺風軌跡具有更加精細化的表述。下載地址:

http://www.wztf121.com/

示例

導入模塊并讀取數(shù)據(jù),使用BST的2018年臺風路徑數(shù)據(jù)作為示例,已經(jīng)將原始的txt文件轉(zhuǎn)換為xls文件。

import os, globimport pandas as pdimport numpy as npimport shapely.geometry as sgeomimport matplotlib.pyplot as pltfrom matplotlib.image import imreadfrom matplotlib.animation import FuncAnimationimport matplotlib.lines as mlinesimport cartopy.crs as ccrsimport cartopy.feature as cfeatfrom cartopy.mpl.ticker import LongitudeFormatter,LatitudeFormatterimport cartopy.io.shapereader as shpreaderimport cartopy.io.img_tiles as cimgtfrom PIL import Imageimport warnings warnings.filterwarnings(’ignore’)df = pd.read_csv(’./2018typhoon.csv’)

定義等級色標

def get_color(level): global color if level == ’熱帶低壓’ or level == ’熱帶擾動’: color=’#FFFF00’ elif level == ’熱帶風暴’: color=’#6495ED’ elif level == ’強熱帶風暴’: color=’#3CB371’ elif level == ’臺風’: color=’#FFA500’ elif level == ’強臺風’: color=’#FF00FF’ elif level == ’超強臺風’: color=’#DC143C’ return color

定義底圖函數(shù)

def create_map(title, extent): fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) url = ’http://map1c.vis.earthdata.nasa.gov/wmts-geo/wmts.cgi’ layer = ’BlueMarble_ShadedRelief’ ax.add_wmts(url, layer) ax.set_extent(extent,crs=ccrs.PlateCarree()) gl = ax.gridlines(draw_labels=False, linewidth=1, color=’k’, alpha=0.5, linestyle=’--’) gl.xlabels_top = gl.ylabels_right = False ax.set_xticks(np.arange(extent[0], extent[1]+5, 5)) ax.set_yticks(np.arange(extent[2], extent[3]+5, 5)) ax.xaxis.set_major_formatter(LongitudeFormatter()) ax.xaxis.set_minor_locator(plt.MultipleLocator(1)) ax.yaxis.set_major_formatter(LatitudeFormatter()) ax.yaxis.set_minor_locator(plt.MultipleLocator(1)) ax.tick_params(axis=’both’, labelsize=10, direction=’out’) a = mlines.Line2D([],[],color=’#FFFF00’,marker=’o’,markersize=7, label=’TD’,ls=’’) b = mlines.Line2D([],[],color=’#6495ED’, marker=’o’,markersize=7, label=’TS’,ls=’’) c = mlines.Line2D([],[],color=’#3CB371’, marker=’o’,markersize=7, label=’STS’,ls=’’) d = mlines.Line2D([],[],color=’#FFA500’, marker=’o’,markersize=7, label=’TY’,ls=’’) e = mlines.Line2D([],[],color=’#FF00FF’, marker=’o’,markersize=7, label=’STY’,ls=’’) f = mlines.Line2D([],[],color=’#DC143C’, marker=’o’,markersize=7, label=’SSTY’,ls=’’) ax.legend(handles=[a,b,c,d,e,f], numpoints=1, handletextpad=0, loc=’upper left’, shadow=True) plt.title(f’{title} Typhoon Track’, fontsize=15) return ax

定義繪制單個臺風路徑方法,并繪制2018年第18號臺風溫比亞。

def draw_single(df): ax = create_map(df[’名字’].iloc[0], [110, 135, 20, 45]) for i in range(len(df)): ax.scatter(list(df[’經(jīng)度’])[i], list(df[’緯度’])[i], marker=’o’, s=20, color=get_color(list(df[’強度’])[i])) for i in range(len(df)-1): pointA = list(df[’經(jīng)度’])[i],list(df[’緯度’])[i] pointB = list(df[’經(jīng)度’])[i+1],list(df[’緯度’])[i+1] ax.add_geometries([sgeom.LineString([pointA, pointB])], color=get_color(list(df[’強度’])[i+1]),crs=ccrs.PlateCarree()) plt.savefig(’./typhoon_one.png’)draw_single(df[df[’編號’]==1818])

Python繪圖實現(xiàn)臺風路徑可視化代碼實例

定義繪制多個臺風路徑方法,并繪制2018年全年的全部臺風路徑。

def draw_multi(df): L = list(set(df[’編號’])) L.sort(key=list(df[’編號’]).index) ax = create_map(’2018’, [100, 180, 0, 45]) for number in L: df1 = df[df[’編號’]==number] for i in range(len(df1)-1): pointA = list(df1[’經(jīng)度’])[i],list(df1[’緯度’])[i] pointB = list(df1[’經(jīng)度’])[i+1],list(df1[’緯度’])[i+1] ax.add_geometries([sgeom.LineString([pointA, pointB])], color=get_color(list(df1[’強度’])[i+1]),crs=ccrs.PlateCarree()) plt.savefig(’./typhoon_multi.png’)draw_multi(df)

Python繪圖實現(xiàn)臺風路徑可視化代碼實例

定義繪制單個臺風gif路徑演變方法,并繪制2018年第18號臺風的gif路徑圖。

def draw_single_gif(df): for state in range(len(df.index))[:]: ax = create_map(f’{df['名字'].iloc[0]} {df['時間'].iloc[state]}’, [110, 135, 20, 45]) for i in range(len(df[:state])): ax.scatter(df[’經(jīng)度’].iloc[i], df[’緯度’].iloc[i], marker=’o’, s=20, color=get_color(df[’強度’].iloc[i])) for i in range(len(df[:state])-1): pointA = df[’經(jīng)度’].iloc[i],df[’緯度’].iloc[i] pointB = df[’經(jīng)度’].iloc[i+1],df[’緯度’].iloc[i+1] ax.add_geometries([sgeom.LineString([pointA, pointB])], color=get_color(df[’強度’].iloc[i+1]),crs=ccrs.PlateCarree()) print(f’正在繪制第{state}張軌跡圖’) plt.savefig(f’./{df['名字'].iloc[0]}{str(state).zfill(3)}.png’, bbox_inches=’tight’) # 將圖片拼接成動畫 imgFiles = list(glob.glob(f’./{df['名字'].iloc[0]}*.png’)) images = [Image.open(fn) for fn in imgFiles] im = images[0] filename = f’./track_{df['名字'].iloc[0]}.gif’ im.save(fp=filename, format=’gif’, save_all=True, append_images=images[1:], duration=500)draw_single_gif(df[df[’編號’]==1818])

Python繪圖實現(xiàn)臺風路徑可視化代碼實例

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
免费观看日韩av| 国产一区 二区| 久久国产麻豆精品| 伊人精品成人久久综合软件| 欧美一级免费大片| 肉色丝袜一区二区| 黄色亚洲精品| 久久久久久久免费视频了| 国产精品日本一区二区 | 亚洲高清在线播放| 国产色婷婷亚洲99精品小说| 国产精品资源站在线| 在线日韩一区二区| 性欧美疯狂xxxxbbbb| 99精品国产福利在线观看免费| 亚洲国产精品激情在线观看| 91在线无精精品入口| 日韩视频免费观看高清完整版在线观看 | 悠悠资源网久久精品| 日韩女优制服丝袜电影| 久久精品国产久精国产| 久久先锋影音| 天天影视涩香欲综合网| 国产精品日韩高清| 一区二区三区精密机械公司| 亚洲人成久久| 亚洲女性喷水在线观看一区| 影音先锋久久资源网| 久久精品综合网| 不卡一区二区中文字幕| 欧美va在线播放| 国产乱人伦偷精品视频免下载| 91黄视频在线| 天天色图综合网| 亚洲欧美日韩另类精品一区二区三区 | 亚洲电影视频在线| 日韩视频一区二区三区在线播放免费观看 | 日本韩国一区二区三区| 视频一区二区不卡| 色国产精品一区在线观看| 日韩高清一区二区| 色婷婷综合久色| 蜜桃一区二区三区在线| 欧美狂野另类xxxxoooo| 国产精品2024| 日韩欧美亚洲一区二区| 成人在线综合网| 26uuu亚洲综合色欧美 | 男人天堂欧美日韩| 日韩中文字幕亚洲一区二区va在线| 国产精品一区在线播放| 亚洲成人免费电影| 久久天天狠狠| 久久成人免费网| 91精品国产aⅴ一区二区| 国产成人高清在线| 精品成人一区二区| 国产精品v欧美精品v日韩精品| 亚洲欧美综合另类在线卡通| 一区二区三区免费看| 亚洲一卡二卡三卡四卡无卡久久| 久久国产福利| 精品在线免费视频| 日韩精品一区二区在线| www.亚洲精品| 欧美激情在线免费观看| 国产在线观看一区| 一区二区三区中文在线观看| 久久婷婷av| 国产综合久久久久久鬼色| 日韩一卡二卡三卡国产欧美| 99久久精品久久久久久清纯| 国产精品久久一卡二卡| 99视频一区| 日产欧产美韩系列久久99| 在线不卡的av| 99久久99久久综合| 亚洲视频一区二区在线观看| 91蜜桃免费观看视频| 亚洲精品国产品国语在线app| 久久亚洲一区| 国产一区二区三区av电影| 久久久久久免费网| 亚洲国产精品一区二区第四页av| 亚欧色一区w666天堂| 欧美性一二三区| 成人动漫一区二区| 亚洲毛片av在线| 91电影在线观看| 成人精品国产福利| 亚洲精品美国一| 欧美在线观看视频一区二区| 国产sm精品调教视频网站| 国产精品美女视频| 色8久久精品久久久久久蜜| 岛国一区二区在线观看| 国产精品视频yy9299一区| 亚洲欧美日韩在线综合| 国产最新精品精品你懂的| 国产精品欧美极品| 久久久久九九九| 成人av在线网| 亚洲高清免费观看| 日韩精品一区二区三区在线| 亚洲国产高清一区| 国产一区在线精品| 国产精品乱码久久久久久| 色婷婷综合视频在线观看| eeuss国产一区二区三区| 亚洲人吸女人奶水| 欧美日本一区二区三区| 欧美激情第二页| 日本美女一区二区三区视频| 欧美精品一区二区三区蜜臀| 亚洲欧洲视频| 国产精品一区在线观看你懂的| ...中文天堂在线一区| 欧美精选一区二区| 亚洲欧洲三级| 懂色av一区二区三区免费观看| 亚洲欧美日韩精品久久久久| 欧美群妇大交群中文字幕| 99久久精品免费| 免费国产亚洲视频| 综合亚洲深深色噜噜狠狠网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲国产成人av好男人在线观看| 日韩欧美另类在线| 久久性色av| 欧美婷婷久久| 国产一区二区毛片| 亚洲永久精品国产| 久久夜色精品国产噜噜av| 久久久噜噜噜久久狠狠50岁| 欧美福利一区二区三区| 欧美r级电影在线观看| 久久久久国产一区二区| 欧美另类视频| 韩国av一区二区三区在线观看| 欧美激情一区二区三区不卡| 欧美日韩一区三区| 国产日韩亚洲| 99re视频这里只有精品| 精品一区二区三区蜜桃| 怡红院av一区二区三区| 国产亚洲一区字幕| 欧美日韩高清在线播放| 性感少妇一区| 欧美三级小说| 国产伦精一区二区三区| 亚洲一二三区不卡| 亚洲三级免费电影| 国产欧美日韩视频在线观看| 亚洲精品一区二区三区精华液 | 国产精品夫妻自拍| 久久老女人爱爱| 91精品国产品国语在线不卡| 欧美在线观看一区二区| 色偷偷88欧美精品久久久| 新狼窝色av性久久久久久| 国产精品亚洲综合色区韩国| av不卡在线| 国产欧美日韩综合一区在线观看 | 国产亚洲午夜| 激情欧美一区| 亚洲午夜精品一区二区| 色综合久久中文综合久久牛| 国产乱码精品1区2区3区| 狠狠久久亚洲欧美| 天天做天天摸天天爽国产一区| 欧美成人性福生活免费看| 欧美日韩精品免费| 国产欧美综合一区二区三区| 国产在线精品免费av| 亚洲一区二区偷拍精品| 国产午夜精品美女毛片视频| 欧美精品久久99| 欧美日韩视频第一区| 一区二区福利| 欧美69视频| 国产精品资源在线看| 久久精品欧美日韩| 国产日本亚洲高清| 日韩欧美在线网站| 欧洲精品视频在线观看| 国产伦精品一区二区三| 噜噜噜躁狠狠躁狠狠精品视频 | 99re热视频精品| 国产精品一区二区久久不卡| 日韩不卡一区二区三区| 亚洲国产岛国毛片在线| 久久久久久久国产精品影院| 欧美色老头old∨ideo| 国产精品久久久对白| 国产一区自拍视频| 国产一区二区在线电影| 国产精品自拍毛片| 水蜜桃久久夜色精品一区的特点| 亚洲色图20p| 欧美国产成人精品|