电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

瀏覽:3日期:2022-06-21 18:11:39

引言:我一直想理解空間相關(guān)分析的計(jì)算思維,于是今天又拿起Python腳本和數(shù)據(jù)來做練習(xí)。首先需要說明的是,這次實(shí)驗(yàn)的數(shù)據(jù)和Python腳本均來自于[好久不見]大佬,在跟大佬說明之后,允許我寫到公眾號(hào)來與大家共享,在此對(duì)大佬的指點(diǎn)表示感謝,這次實(shí)驗(yàn)的腳本可在氣象家園或簡(jiǎn)書app(如果沒記錯(cuò)的話)搜索到這次實(shí)驗(yàn)的相關(guān)內(nèi)容,也可以微信或者后臺(tái)發(fā)消息給我獲取。在此之前我覺得自己還沒理解這個(gè)方法的計(jì)算思維,檢驗(yàn)的標(biāo)準(zhǔn)就是我能否迅速運(yùn)用到其他方面。于是今天又重新回來溫習(xí)一遍,我把自己的理解與大伙共同交流。

首先,數(shù)據(jù)的格式是NetCDF(.nc)數(shù)據(jù),兩個(gè)數(shù)據(jù)分別是[哈德來中心海溫sst數(shù)據(jù),pc數(shù)據(jù)是對(duì)東太平洋SSTA做的EOF獲取]。知道數(shù)據(jù)信息之后我們就準(zhǔn)備開始去運(yùn)行程序。原始腳本包括了回歸分析和相關(guān)分析兩部分,但是今天我做了空間相關(guān)分析這一部分,有興趣的可以到[好久不見]大佬的氣象家園閱讀喔!如果還沒有安裝Cartopy包的話請(qǐng)?jiān)诤笈_(tái)聯(lián)系我喔

為了方便理解每一步,我選擇去Jupyter運(yùn)行,因?yàn)榭梢砸欢我欢纬绦虻倪\(yùn)行,這是比較方便的。繪圖部分并不是很難,關(guān)鍵還是在于數(shù)據(jù)預(yù)處理部分。

空間相關(guān)分析的腳本如下:

import numpy as np #數(shù)值計(jì)算用,如相關(guān)系數(shù)import xarray as xr #讀取.nc文件用from sklearn.feature_selection import f_regression #做顯著性檢驗(yàn)import matplotlib.pyplot as plt #繪制和展示圖形用import cartopy.crs as ccrs #繪制地圖用,如果沒有安裝好的話,請(qǐng)?jiān)诤笈_(tái)聯(lián)系我import cartopy.feature as cfeature #添加一些矢量用,這里沒用到,因?yàn)槲覜]數(shù)據(jù)from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter #經(jīng)緯度格式設(shè)置import cmaps #ncl的color,如果沒有的話,請(qǐng)聯(lián)系我,也可以在氣象家園找到#使用上下文管理器讀取.nc數(shù)據(jù),并提取數(shù)據(jù)中的變量,可以提前用NASA的panoply這個(gè)軟件查看.nc信息with xr.open_dataset(r’D:inuyashacodeXcodeLEARNsst.DJF.mean.anom.nc’) as f1: pre = f1[’sst_anom’][:-1, :, :] # 三維數(shù)據(jù)全取,時(shí)間,緯度+經(jīng)度 lat, lon = f1[’lat’], f1[’lon’] #提取經(jīng)緯度,后面格網(wǎng)化需要用到pre2d = np.array(pre).reshape(pre.shape[0], pre.shape[1]*pre.shape[2])#0表示行個(gè)數(shù),1列代表的個(gè)數(shù),2經(jīng)度代表個(gè)數(shù)with xr.open_dataset(r’D:inuyashacodeXcodeLEARNpc.DJF.sst.nc’) as f2: pc = f2[’pc’][0, :]# 相關(guān)系數(shù)計(jì)算pre_cor = np.corrcoef(pre2d.T, pc)[:-1, -1].reshape(len(lat), len(lon))# 做顯著性檢驗(yàn)pre_cor_sig = f_regression(np.nan_to_num(pre2d), pc)[1].reshape(len(lat), len(lon))#用0代替NaNarea = np.where(pre_cor_sig < 0.05)# numpy的作用又來了 nx, ny = np.meshgrid(lon, lat) # 格網(wǎng)化經(jīng)緯度,打印出來看看就知道為什么要這么做了plt.figure(figsize=(16, 8)) #創(chuàng)建一個(gè)空畫布#讓colorbar字體設(shè)置為新羅馬字符plt.rcParams[’font.family’] = ’Times New Roman’plt.rcParams[’font.size’] = 16ax2 = plt.subplot(projection=ccrs.PlateCarree(central_longitude=180))# 在畫布上繪圖,這個(gè)叫axes,這不是坐標(biāo)軸喔ax2.coastlines(lw=0.4)ax2.set_global()c2 = ax2.contourf(nx, ny, pre_cor, extend=’both’, cmap=cmaps.nrl_sirkes, transform=ccrs.PlateCarree())plt.colorbar(c2,fraction=0.05,orientation=’horizontal’, shrink=0.4, pad=0.06)# extend關(guān)鍵字設(shè)置colorbar的形狀,both為兩端尖的,pad是距離主圖的距離,其他參數(shù)web搜索# 顯著性打點(diǎn)sig2 = ax2.scatter(nx[area], ny[area], marker=’+’, s=1, c=’k’, alpha=0.6, transform=ccrs.PlateCarree())# 凸顯顯著性區(qū)域plt.title(’Correlation Analysis’, fontdict={’family’ : ’Times New Roman’, ’size’ : 16})#標(biāo)題字體也修改為新羅馬字符,數(shù)字和因?yàn)榻ㄗh都用新羅馬字符ax2.set_xticks(np.arange(0, 361, 30),crs=ccrs.PlateCarree())# 經(jīng)度范圍設(shè)置,nunpy的作用這不就又來了嘛plt.xticks(fontproperties = ’Times New Roman’,size=16) #修改xy刻度字體為新羅馬字符plt.yticks(fontproperties = ’Times New Roman’,size=16)ax2.set_yticks(np.arange(-90, 90, 15),crs=ccrs.PlateCarree())# 設(shè)置yax2.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label = False))#經(jīng)度0度不加?xùn)|西ax2.yaxis.set_major_formatter(LatitudeFormatter())# 設(shè)置經(jīng)緯度格式,就是多少度顯示那樣的,而不是一些數(shù)字ax2.set_extent([-178, 178, -70, 70], crs=ccrs.PlateCarree())# 設(shè)置空間范圍plt.grid(color=’k’)# 畫一個(gè)網(wǎng)格吧plt.show()# 顯示出圖形

那么就運(yùn)行看看效果吧

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

如果覺得這個(gè)color不喜歡的話,就換一下ncl的來吧,ncl的顏色多而漂亮,喜歡啥就換啥

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

想要理解這個(gè)方法的計(jì)算思維,有必要觀察原始數(shù)據(jù)和數(shù)據(jù)處理之后的樣式,理解了數(shù)據(jù)樣式之后可能更有助于我們理解整個(gè)程序

import numpy as npimport xarray as xrfrom sklearn.feature_selection import f_regressionimport matplotlib.pyplot as pltimport cartopy.crs as ccrsimport cartopy.feature as cfeaturefrom cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatterimport cmapswith xr.open_dataset(r’D:inuyashacodeXcodeLEARNsst.DJF.mean.anom.nc’) as f1: pre = f1[’sst_anom’][:-1, :, :] # 三維數(shù)據(jù)全取,時(shí)間,緯度+經(jīng)度 lat, lon = f1[’lat’], f1[’lon’]pre2d = np.array(pre).reshape(pre.shape[0], pre.shape[1]*pre.shape[2])#0行代表的個(gè)數(shù),1緯度,2經(jīng)度#pre2d.shape是一個(gè)39行,16020列的矩陣,T之后就變?yōu)榱?6020行,39列with xr.open_dataset(r’D:inuyashacodeXcodeLEARNpc.DJF.sst.nc’) as f2: pc = f2[’pc’][0, :]#pc是一個(gè)39行的數(shù)組# # 相關(guān)系數(shù)pre_cor = np.corrcoef(pre2d.T, pc)[:-1, -1].reshape(len(lat), len(lon))#pre_cor.shape,(16020,)->reshape(89,180)# # 顯著性檢驗(yàn)# pre_cor_sig = f_regression(np.nan_to_num(pre2d), pc)[1].reshape(len(lat), len(lon))#用0代替NaN# area = np.where(pre_cor_sig < 0.05)nx, ny = np.meshgrid(lon, lat) # 格網(wǎng)化nx,ny

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

看看格網(wǎng)化后的經(jīng)緯度多規(guī)范啊。畫張圖來看看可能也會(huì)直觀一些。

如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

好吧,今天的分享就到這里了,理解了這個(gè)計(jì)算思維,能更好地遷移運(yùn)用到其他研究方面,如果還沒有安裝Cartopy包的話請(qǐng)?jiān)诤笈_(tái)聯(lián)系我喔,如果需要測(cè)試數(shù)據(jù)和腳本請(qǐng)?jiān)诤笈_(tái)聯(lián)系我,當(dāng)然也可以去[好久不見]大佬的主頁。如果覺得這次分享不錯(cuò)的話,還請(qǐng)老鐵們點(diǎn)個(gè)贊,多多分享,歡迎交流學(xué)習(xí),感謝各位!

原始資料:

http://bbs.06climate.com/forum.php?mod=viewthread&tid=92816&highlight=%CF%D4%D6%F8%D0%D4%BC%EC%D1%E9%2B%CF%E0%B9%D8%B7%D6%CE%F6

以上就是如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析的詳細(xì)內(nèi)容,更多關(guān)于Python對(duì)NetCDF數(shù)據(jù)做空間分析的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 郑州墨香品牌设计公司|品牌全案VI设计公司 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 茶叶百科网-茶叶知识与茶文化探讨分享平台| 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 间甲酚,间甲酚厂家-山东祥东新材料 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 |