本经验介绍在获取环境监测数据后,如何对其进行分析和处理。
工具/原料
MATLAB
方法/步骤
1、数据获取一般可以在政府机构的监测网站上获取监测数据,这些数据可能是.csc等格式,可以通过转换,并且提取自己需要的数据。本实例我们可以将温度数据提取出来,分析气温变化情况。
2、载入数据采用以下MATLAB代码,Y=load('data_temperture.txt');t=Y(:,1);d=Y(:,2);S=size(Y);L=S(1);M=S(2);load()函数将数据读入矩阵Y中。然后我们将时间复制到列向量t中,并将温度复制到列向量d中。使用size()函数查询Y的大小。它返回行数和列数的向量,我们将其分解为变量L和M并显示。MatLab告诉我们,我们读了一个L=100行和M=2列的表格。这是大约100天。使用命令D(1:5,:)生成的前几个数据点的显示产生以下结果:
3、图像绘制采用以下命令绘制图像。>>clf>>set(gca,'LineWidth',2);>>holdon;>>plot(t,d,'k-','LineWidth',2);
4、细化处理w=2廴类锾渭0;%细化的宽度i1=30;i2=60;%细化的中点clf;set(gca,泌驾台佐39;LineWidth',2);holdon;figure(1);%i1=30,宽度为20的数据plot(t(i1-w/2:i1+w/2),d(i1-w/2:i1+w/2),'r.-','LineWidth',2);title('ThemonitoringdataofEnviromenttempture');xlabel('FromSept.2007');ylabel('Temperture');figure(2);%i1=60,宽度为20的数据plot(t(i2-w/2:i2+w/2),d(i2-w/2:i2+w/2),'g--','LineWidth',2);
5、统计数据出现的频率通过直方图,可以统计温度出现的频率,整体温度范围可以用适度的数量表示,如lh=10(表示块的大小),然后统计每一块中的数量在MatLab中,直方图计算如下:Lh=10;Dmin=min(d);dmax=max(d);bins=Dmin+(dmax-Dmin)*[0:Lh-1]'/(Lh-1);dhist=hist(d,bins)';这里我们使用min()和max()函数来确定数据的整体范围。公式(dmax-Dmin)*[0:Lh-1]'/(Lh-1);创建列向量,在这两个极端之间等间隔的温度值的长度Lh。
6、用灰度图表示频率除了柱状图,亦可以使用以下脚本将矢量dhist绘制为灰色阴影兔脒巛钒图像.>>axis([0,1,0,1]);%axis()函数将轴设置为简单的0到1范围媪青怍牙>>holdon;>>axisij;%原点放在左上角>>axisoff;%关闭轴和刻度标记的绘图>>imagesc([0.4,0.6],[0,1],dhist);>>text(0.66,0.2,'dhist');%文本位置>>colorbar(‘vert’);%函数添加颜色条。