
Matlab
文章平均质量分 82
记录在学校时写的论文里的一些研究方法
岩鸣杨子
理科出身的艺术工作者
展开
-
Matlab处理气象数据(十七)季节变化
17.1 各省冬季和夏季的DTR趋势以江西为例,其他省份只需将下面代码中的“江西”替换为其他省份的名称即可。%%clc,clearload('E:\数据\201507\各省MASK\江西');%MASK是各省掩膜load('E:\数据\201501\Tmax1');%导入NCEP数据最高温度 72*128*396load('E:\数据\201501\Tmax2');%导入观测数据最高温度 72*128*396load('E:\数据\201501\Tmin1');%导入NCEP数据最低温度 72原创 2020-05-11 21:15:15 · 6006 阅读 · 0 评论 -
Matlab处理气象数据(十六)城市与非城市区域的对比
利用2010城市边界数据,建立掩膜。从全国数据中抠出城市区域的数据,然后反向抠出非城市区域的数据,最后对比两个区域趋势变化的不同。栅格化的城市区域掩膜16.1 抠出城市和非城市的数据clc;clear%扣NCEP的城市和非城市区域数据lon=72:0.5:135.5;lat=18:0.5:53.5;[x y]=meshgrid(lon,lat); load('E:\数据\201501\T1')T10=reshape(T1,[72 128 12 35]);T11=reshape(T1原创 2020-05-11 21:01:00 · 1567 阅读 · 0 评论 -
Matlab处理气象数据(十五)分省份的趋势分析
用省份边界数据,制作掩膜(mask),从而提取出各省的DTR数据。并且求P和R2。%求P值t=1:35;t=t';t=[ones(35,1),t];[b,bint,r,rint,stats]= regress(NCEP,t,0.05);%结果:alpha为显著性水平(缺省时设定为0.05)stats是用于检验回归模型的统计量有四个数值R2,其中R是相关系数F统计量值概率P,与统计量F对应an estimate of the error variance(一个错误的方差估计)%回归原创 2020-05-11 20:51:05 · 3147 阅读 · 0 评论 -
Matlab处理气象数据(十四)分段的逐点变化的DTR
% 两套数据逐点DTR,2000年前后对比% 导入Tmax1,72*128*396% 导入Tmax2,72*128*396% 导入Tmin1,72*128*396% 导入Tmin2,72*128*396 Ymax1=reshape(Tmax1,[72,128,12,33]);Ymax1=nanmean(Ymax1,3);Ymax1=squeeze(Ymax1); %<72x128x33 double> Ymax2=reshape(Tmax2,[72,128,12,33]);原创 2020-05-11 20:40:02 · 714 阅读 · 1 评论 -
Matlab处理气象数据(十三)逐点变化的DTR及其异常
% 两套数据逐点DTR% 导入Tmax1,72*128*396% 导入Tmax2,72*128*396% 导入Tmin1,72*128*396% 导入Tmin2,72*128*396 Ymax1=reshape(Tmax1,[72,128,12,33]);Ymax1=nanmean(Ymax1,3);Ymax1=squeeze(Ymax1); %<72x128x33 double> Ymax2=reshape(Tmax2,[72,128,12,33]);Ymax2=nanm原创 2020-05-11 20:29:56 · 890 阅读 · 0 评论 -
Matlab处理气象数据(十二)DTR及其异常的计算
DTR(diurnal temperature range)是日较差,即最高温和最低温度的差值。一段时期平均DTR的增加或降低可以反映出一个区域内的气候变化状况。load('Temmax1.mat');load('Temmax2.mat');load('Temmin1.mat');load('Temmin2.mat');DTR1=Temmax1-Temmin1;DTR2=Temmax2-Temmin2;%画两套数据的DTRplot(DTR1,'r.-','linewidth',2);ho原创 2020-05-11 20:23:09 · 2451 阅读 · 0 评论 -
Matlab处理气象数据(十一)数据的异常值计算
%平均温度的异常值计算load('Tem1.mat');%导入NCEP数据的面积加权年平均load('Tem2.mat');%导入观测数据的面积加权年平均m1=mean(Tem1); %求Tem1的平均值m2=mean(Tem2);a1=Tem1-m1; %求Tem1的距平a2=Tem2-m2;plot(a1,'r.-','linewidth',2);%画NCEP数据年平均气温折线图,红色实线实心点hold onplot(a2,'b.-','linewidth',2);axis([ -i原创 2020-05-11 20:20:13 · 6458 阅读 · 3 评论 -
Matlab处理气象数据(十)给地图添加边界线
边界线数据从网上下载得来:其中,“l”结尾的为只有线没有面的边界线,“p”结尾的为实心的带边界的平面。为了让数据显现出来,我们使用“bou2_4l.shp”文件。%导入数组sya[x y]=meshgrid(72:0.5:135.5,18:0.5:53.5);pcolor(x,y,sya);shading flat;hold onmap=shaperead('E:\数据\边界\china_map1\maps\bou2_4l.shp');%加载省界带南海的边界线bou2_4lx=[map(:原创 2020-05-11 20:16:23 · 5133 阅读 · 2 评论 -
Matlab处理气象数据(九)逐点变化的显著性分析
利用上面M-K趋势分析的结果,只让置信度大于95%的数据在地图上显示。这里,可以先自定义一个colorbar。mycolor = colormap; %mycolor名称任意save mycolor mycolor;下次画图时,只要先load mycolor; 再输入colormap(mycolor) 就可以直接用这个colorbar了。% 逐点变化显著性% 导入数据Y1、Y2Y=Y2-Y1;Y=Y(:,:,3:35);YA=Y(:,:,1:19);YB=Y(:,:,20:33);原创 2020-05-11 20:10:33 · 3940 阅读 · 0 评论 -
Matlab处理气象数据(八)数据的逐点变化趋势
前面所做的都是从时间尺度上研究的变化趋势,而从空间尺度上分析,能够更加直观地看出温度变化的地理位置。M-K(Mann-Kendall)是世界气象组织推荐并被广泛用于实际研究的非参数检验方法,是时间序列趋势分析方法之一。它不要求被分析样本遵从一定分布,同时也不受其它异常值的干扰,对于非正统分布的气象数据,M-K秩次相关检验具有更加突出的适用性。M-K趋势检验原理定义检验统计量SSS:S=∑i=2n∑j=1i−1sign(Xi−Xj) S=\sum_{i=2}^n\sum_{j=1}^{i-1}si原创 2020-05-11 13:22:31 · 9013 阅读 · 6 评论 -
Matlab处理气象数据(七)分段趋势线的做法
退耕还林工程自1999年起开始实施,土地利用的改变会影响区域气候。为了研究区域气候的变化,需要对退耕前和退耕后作对比。在matlab中,需要对1999年前和后分别作出趋势线,这种趋势线可以采用matlab的趋势拟合函数作出。多项式函数拟合:a=polyfit(xdata,ydata,n)其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入。输出参数a为拟合多项式 y=a1xn+…+anx+a n+1的系数。多项式在x处的值y可用下面程序计算,y=polyval原创 2020-05-10 19:05:44 · 7645 阅读 · 0 评论 -
Matlab处理气象数据(六)数据的面积加权
由于地理投影导致导致每个像元实际地面面积不同,越靠近北极实际面积越小,越靠近赤道实际面积越大,如果不进行面积加权就简单平均,会导致温度较实际温度偏低。用以下公式计算地理投影每个像元的面积:double pi = 3.1415926;double R = 6371007.181; //units - m double area = (pi/180.0)*R*R*fabs(sin(dLat1/180.0*pi) - sin(dLat2/180.0*pi)) * fabs(dLon1 - dLo原创 2020-05-10 18:23:25 · 10385 阅读 · 17 评论 -
Matlab处理气象数据(五)NCEP数据的剪裁、插值和两套数据的对比
为了更直观地对比NCEP数据和观测数据在中国哪些区域中上升或者下降,需要对二者进行处理。NCEP数据为全球数据,要对其进行剪裁,提取出中国区域,并将分辨率转换为与观测数据相同的0.5°×0.5°的格点数据,此处可以使用interp2函数进行插值。首先导入NECP数据中的TemData、LonData、LatData,剪裁与插值的代码如下:TemData=permute(TemData,[2 1 3]); %改变维数顺序,即将<192x94x420 >变为<94x192x420 >原创 2020-05-10 18:06:15 · 10628 阅读 · 12 评论 -
Matlab处理气象数据(四)观测数据的预处理和计算
观测数据为中国气象数据网上获得的中国地面温度月值0.5°×0.5°格点数据集,时间范围是1961年1月至2013年12月。这套数据为txt格式,包含头文件。头文件信息为:NCOLS 128NROWS 72XLLCORNER 72.000000000000 YLLCORNER 18.000000000000 CELLSIZE 0.50000000000000 NODATA_VALUE -99.00000 从中可以得知,有128原创 2020-05-10 17:29:25 · 12373 阅读 · 17 评论 -
Matlab处理气象数据(三)NCEP数据的简单计算
我们得到的TemData数据的格式为<19294420double>,即横轴有192个格点,纵轴有94个格点,时间尺度为从1979年1月到2013年12月的420个月(35年)。为了计算年平均温度,我们可以先对每个月求平均,再每12个月求一次平均,即可得到35年的年平均温度。此处,可以使用reshape函数进行矩阵的重组。代码如下:for i=1:420z = TemData(:,:,i); %每个月的所有值az(i) = mean(z(:)); %求二维数组z的平均值,420个月平均值原创 2020-05-10 17:00:54 · 8939 阅读 · 8 评论 -
Matlab处理气象数据(二)调用NCEP数据,进行预处理
新版本1 matlab可以使用ncread命令来读取NC数据,使用起来更加方便。clc,clear;ncid = netcdf.open('E:\数据\空间数据\NECP\air.2m.mon.mean.nc','NOWRITE'); %打开nc文件ncdisp('E:\数据\空间数据\NECP\air.2m.mon.mean.nc'); %在命令窗中显示nc文件的变量 AirData = ncread('E:\数据\空间数据\NECP\air.2m.mon.mean.nc','air'); %原创 2020-05-10 16:52:51 · 11223 阅读 · 5 评论 -
Matlab处理气象数据(一)读取NCEP数据
数据获取NCEP数据air.2m.mon.mean.nc,下载地址读取使用matlab命令读取NCEP数据。常用的读取NC头文件的命令是 nc_dump 和 nc_dump 。执行nc_dump命令:nc_dump('E:\数据\空间数据\NECP\air.2m.mon.mean.nc ')得到如下结果:NetCDF-3 Classic E:\数据\空间数据\NECP\air.2m.mon.mean.nc {dimensions: lon = 192 ; lat = 94 ; le原创 2020-05-10 16:37:08 · 16136 阅读 · 2 评论 -
Matlab处理气象数据——目录
整理了一下研究生期间做的一些气象数据处理方面的资料,讲研究过程和matlab代码一并贴出来,以便存档和查阅。论文原文见知网目录1.读取NCEP数据2.调用NCEP数据,进行预处理3.NCEP数据的简单计算4.观测数据的预处理和计算5.NCEP数据的剪裁、插值和两套数据的对比6.数据的面积加权7.分段趋势线的做法8.数据的逐点变化趋势8.1 分别对NCEP和观测数据进行逐点趋势分析8.2 平均、最高、最低温度差值的趋势8.3 退耕还林前后的温度差值对比9原创 2020-05-10 16:36:55 · 17593 阅读 · 6 评论