主要内容

洛马普列塔地震分析

此示例显示了如何分析和可视化地震数据。

加载地震数据

文件Quake.mat包含2008年10月17日的200Hz数据,1989年10月17日Loma Prieta地震在圣克鲁斯山脉。该数据由Charles F. Richter地震实验室,加利福尼亚大学圣克鲁斯大学Charles F. Richter地震实验室提供。

首先加载数据。

负载Quake.谁是E.N.V.
Name Size Bytes Class Attributes e 10001x1 80008 double n 10001x1 80008 double v 10001x1 80008 double

在工作空间中有三个变量,包含来自UC Santa Cruz自然科学大楼的加速计的时间轨迹。加速度计记录下地震波的主震级。的变量N.E.V.为仪器测量的三个方向分量,与断层平行排列,N方向指向萨克拉门托方向。这些数据没有根据仪器的响应进行校正。

创建一个变量,时间,包含在200Hz上采样的时间戳,其长度与其他向量相同。代表正确的单位函数和乘法实现Hz( S. - 1 采样率。这就导致了持续时间变量,它对表示经过的时间很有用。

时间=(1/200)*秒(1:长度(e));谁是时间
名称大小字节类类属性10001x1 80010持续时间

在时间表中组织数据

单独的变量可以组织在表格时间表为了更多便利。一种时间表提供使用时间戳数据的灵活性和功能。创建一个时间表随着时间和三个加速变量和提供更有意义的变量名称。使用该八行显示前八行功能。

varnames = {“东西方”“南北”“垂直”};quakeata =时间表(时间,e,n,v,'variablenames', varNames);头(quakeData)
ans =8×3时间表时间东西南北垂直_________ ________ __________ ________ 0.005 sec 5 3 0 0.015 sec 5 2 0 0.02 sec 5 2 0 0.025 sec 5 2 0 0.03 sec 5 2 0 0.035 sec 5 1 0 0.04 sec 5 1 0

通过访问中的变量来探索数据时间表点加下标。(有关点下标的更多信息,请参见访问表中的数据.)我们选择了“东西方”的振幅和情节它作为持续时间的函数。

绘图(Quakeata.time,Quakeata.eastwest)标题(“东西加速”的)

图中包含一个轴对象。标题为“东西加速”的轴对象包含一个类型为line的对象。

规模数据

将数据按重力加速度缩放,或将表格中的每个变量乘以常数。由于变量类型相同(),您可以使用维度名访问所有变量,变量.请注意,quakeData。变量提供一种直接方式来修改时间表内的数值。

quakeData。变量= 0.098*quakeData.Variables;

选择探索数据子集

我们对ShockWave的幅度从接近零增加到最大级别的时间区域感兴趣。上面的绘图的目视检查表明,从8到15秒的时间间隔是感兴趣的。为了更好的可视化,我们在所选时间点绘制黑线以引起对该间隔的关注。所有后续计算都将涉及该间隔。

t1 =秒(8)* [1; 1];T2 =秒(15)* [1; 1];抓住情节(ylim (t1 t2),“k”“线宽”,2)持有

图中包含一个轴对象。标题为“东西加速”的轴对象包含3个类型为line的对象。

存储感兴趣的数据

创建另一个时间表使用此间隔的数据。用timerange选择感兴趣的行。

(8) tr = timerange(秒,秒(15));: dataOfInterest = quakeData (tr);头(dataOfInterest)
ans =8×3时间表时间东西南北垂直_________ ________ __________ ________ 8秒-0.098 2.254 5.88 8.005秒0 2.254 3.332 8.01秒-2.058 2.352 -0.392 8.015秒-4.018 2.352 -4.116 8.02秒-6.076 2.45 -7.742 8.025秒-8.036 2.548 -11.466 8.03秒-10.094 2.548 -9.8 8.035秒-8.232 2.646 -8.134

在三个不同的轴上可视化三个加速度变量。

图形子图(3,1,1)plot(dataofinterest.time,dataofinterest.eastwest)ylabel(“东西”)标题('加速')子图(3,1,2)绘图(dataofinterest.time,dataofinterest.northsouth)ylabel(“南北”)子图(3,1,3)绘图(dataofinterest.time,dataofinterest.vertical)ylabel(“垂直”的)

图包含3个轴对象。带有标题加速的轴对象1包含类型线的对象。轴对象2包含类型线的对象。轴对象3包含类型线的对象。

计算概要统计信息

为显示有关数据的统计信息,我们使用总结功能。

总结(dataOfInterest)
Rowtimes:时间:1400x1持续时间值:Min 8秒中位数11.498 SEC MAX 14.995 SEC SIMESTEP 0.005秒秒变量:Eastwest:1400x1双倍值:Min -255.09中位数-0.098 MAX 244.51 Northsouth:1400x1双值:Min -198.55中位数1.078 Max 204.33垂直:1400x1双重值:min -157.88中位数0.98最大134.46

有关数据的附加统计信息可以使用varfun.这对于将函数应用到表或时间表中的每个变量是很有用的。要应用的函数被传递到varfun.作为函数句柄。下面我们应用的意思是函数对所有三个变量进行处理,并以表格的形式输出结果,因为计算时间均值后,时间就没有意义了。

mn = varfun (@mean dataOfInterest,'输出格式'“表”的)
Mn =1×3表MEAN_ESTWEST CALE_NORTHSOUTH MEAN_VERTRACACH ________________________________________________________________________________________________________________________________________________________________________________________________________________________0.9338 -0.10276 -0.52542

计算速度和位置

为了确定冲击波的传播速度,我们将加速度积分一次。我们使用沿时间变量的累积和来得到波前的速度。

edot = (1/200) * cumsum (dataOfInterest.EastWest);Edot = Edot -均值(Edot);

下面我们在所有三个变量上执行集成以计算速度。创建功能是方便的,并将其应用于变量时间表varfun..在此示例中,我们将该文件的函数包含在此文件末尾并命名为它velFun

韦尔= varfun (@velFun dataOfInterest);(或者)
ans =8×3时间表时间velFun_EastWest velFun_NorthSouth velFun_Vertical  _________ _______________ _________________ _______________ 8秒-0.56831 0.44642 1.8173 -0.56831 0.45769 1.834 8.01 8.005 -0.5786 0.46945 1.832 -0.59869 0.48121 1.8114 8.02 8.015 -0.62907 0.49346 1.7727 -0.66925 0.5062 1.7154 8.03 8.025 -0.71972 0.51894 1.6664 8.035SEC -0.76088 0.53217 1.6257

应用相同的函数velFun来确定位置。

pos = varfun (@velFun,韦尔);头(pos)
ans =8×3时间表时间velFun_velFun_EastWest velFun_velFun_NorthSouth velFun_velFun_Vertical  _________ ______________________ ________________________ ______________________ 8秒2.1189 -2.1793 -3.0821 2.1161 -2.177 -3.0729 8.01 8.005 2.1132 -2.1746 -3.0638 2.1102 -2.1722 -3.0547 8.02 8.015 2.107 -2.1698 -3.0458 2.1037 -2.1672 -3.0373 8.025秒8.03 SEC 2.1001 -2.1646 -3.0289 8.035 SEC 2.0963 -2.162 -3.0208

请注意,通过的时间表中的变量名称如何varfun.包括所使用的函数名。跟踪在原始数据上执行的操作是很有用的。使用点表示法将变量名调整回原来的值。

pos.Properties.VariableNames = varNames;

下面,我们绘制出感兴趣的时间间隔内速度和位置的三个分量。

figure subplot(2,1,1) plot(vel.Time,vel.Variables) legend(quakeData.Properties.VariableNames,“位置”'西北')标题('速度') subplot(2,1,2) plot(vel.Time,pos.Variables) legend(quakeData.Properties.VariableNames,“位置”'西北')标题(“位置”的)

图包含2个轴对象。具有标题速度的轴对象1包含3个类型的线。这些物品代表Eastwest,Northsouth,垂直。轴对象2带标题位置包含3个类型的线。这些物品代表Eastwest,Northsouth,垂直。

想象的轨迹

利用分量值可以在二维或三维中绘制轨迹。下面我们将展示可视化该数据的不同方法。

从二维投影开始。这是第一个具有少数时间值注释的。

图绘图(POS.Northsouth,POS.vertical)XLabel(“南北”) ylabel (“垂直”的)%选择位置和标签nt = ceil((max(max.time) -  min(pos.time))/ 6);idx = find(修复(pos.time / nt)==(pos.time / nt))';文本(POS.Northsouth(IDX),POS.vertical(IDX),CHAR(POS.TIME(IDX)))

图中包含一个轴对象。axis对象包含5个类型为line, text的对象。

Plotmatrix.可视化所有变量之间的散点图和对角上每个变量的直方图的网格。输出变量斧头,表示网格中的每个轴,并可用于标识要使用哪些轴进行标记包含ylabel.

figure [S,Ax] = plotmatrix(pos.Variables);为了xlabel(Ax(end,ii),varNames{ii}) ylabel(Ax(ii,1),varNames{ii})结束

matlab图

绘制轨迹的三维视图,并在每个第十个位置点绘制点。点之间的间距表示速度。

步骤= 10;图Plot3(Pos.northsouth,Pos.Estwest,POS.Vertical,'r')举行plot3 (pos.NorthSouth(1:步骤:结束),pos.EastWest(1:步骤:结束),pos.Vertical(1:步骤:结束),'。')举行盒子包含(“南北”) ylabel (“东西”) zlabel (“垂直”)标题(“位置”的)

图中包含一个轴对象。标题为Position的axis对象包含两个类型为line的对象。

金宝app支持功能

函数定义如下。

函数y = (1/200)*cumsum(x);Y = Y -均值(Y)结束

也可以看看

||||||

相关的话题