文档

洛马普列塔地震分析

这个例子展示了如何分析和可视化地震数据。

地震数据加载

该文件quake.mat包含了1989年10月17日圣克鲁斯山脉洛马普列塔地震的200Hz数据。这些数据由加州大学圣克鲁兹分校查尔斯·f·里克特地震实验室的乔尔·耶林提供。

从加载数据开始。

负载地震env
名称大小字节类级别E 10001x1 80008 Double N 10001x1 80008 Double V 10001x1 80008 Double

在工作区中,有三个变量,其中包含位于UC Santa Cruz的自然科学建筑中的加速度计的时间痕迹。加速度计记录了地震波的主冲击幅度。变量nev请参阅由仪器测量的三个方向分量,该方向部件平行于故障对齐,其N方向指向萨克拉门托方向。该数据是未校正仪器响应的。

创建一个变量,时间,包含以200Hz采样的时间戳,其长度与其他向量相同。用。表示正确的单位函数和乘法,以实现Hz () 采样率。这导致了一个持续时间可用于代表经过的时间的变量。

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

在时间表中组织数据

单独的变量可以组织在一个桌子时间表更多的便利。一个时间表提供使用带有时间戳的数据的灵活性和功能。创建一个时间表带有时间和三个加速变量,并提供更有意义的变量名。控件显示前8行函数。

varNames = {'东西''Northsouth''垂直的'};地震数据=时间表(时间,e, n, v,“VariableNames”,varnames);头(quaketata)
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

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

情节(quakeData.Time quakeData.EastWest)标题(“东西加速”

规模数据

通过重力加速度缩放数据,或者通过常量乘以表中的每个变量。由于变量都是相同类型的(双倍的),您可以使用维度名称访问所有变量,变量.请注意,Quakeata.variables.提供一种在时间表内修改数值的直接方法。

quakeata.variables = 0.098 * quakeata.variables;

选择用于探索的数据子集

我们感兴趣的是激波振幅开始从接近零的水平增加到最大水平的时间区域。目视上述图表可以看出,8到15秒的时间间隔是有趣的。为了更好地形象化,我们在选定的时间点上画黑线,将注意力吸引到那个时间间隔上。所有后续计算都将涉及这个区间。

t1 =秒(8)* (1,1);t2 =秒(15)* (1,1);持有绘图([T1 T2],Ylim,'K''行宽', 2)离开

存储兴趣数据

创造另一个时间表在这个区间内的数据。使用时间范围选择感兴趣的行。

tr = timerange(秒(8),秒(15));dataofinterest = quakeata(tr,:);头(dataof interest)
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

在三个单独的轴上可视化三个加速度变量。

图subplot(3,1,1) plot(dataOfInterest.Time,dataOfInterest.EastWest) ylabel('东西') 标题(“加速”) subplot(3,1,2) plot(dataOfInterest.Time,dataOfInterest.NorthSouth) ylabel('南北') subplot(3,1,3) plot(dataOfInterest.Time,dataOfInterest.Vertical) ylabel('垂直的'

计算汇总统计

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

摘要(DataOf Interrest)
RowTimes: Time: 1400x1 duration值:Min 8 sec中位数11.498 sec Max 14.995 sec TimeStep 0.005 sec变量:EastWest: 1400x1 double值:Min -255.09中位数-0.098 Max 244.51 NorthSouth: 1400x1 double值:Min -198.55中位数1.078 Max 204.33 Vertical: 1400x1 double值:Min -157.88中位数0.98 Max 134.46

可以使用关于数据的额外统计信息来计算varfun。这对于在表或时间表中将函数应用于每个变量是有用的。申请的功能已通过varfun作为函数句柄。下面我们应用的意思是函数到所有三个变量,并以表格的格式输出结果,因为计算时间方式后的时间不有意义。

mn = varfun(@均值,dataofinterest,“OutputFormat”'桌子'
mn =1×3表mean_EastWest mean_NorthSouth mean_Vertical  _____________ _______________ _____________ 0.9338 -0.10276 -0.52542

计算速度和位置

要识别ShockWave的传播速度,我们将加速度整合一次。我们沿着时间变量使用累积总和来获得波前的速度。

Edot =(1/200)* Cumsum(Da​​taOfInterest.eastwest);编辑=编辑 - 平均值(编辑);

下面我们对所有三个变量进行积分来计算速度。中创建函数并将其应用于变量是很方便的时间表varfun.在本例中,我们在该文件的末尾包含了该函数并为其命名弗姆森

vel = varfun(@velfun,dataofinterest);头(vel)
ans =.8×3的时间表时间velFun_EastWest velFun_NorthSouth velFun_Vertical _________ _______________ _________________ _______________ 8秒-0.56831 0.44642 1.8173 8.005秒-0.56831 0.45769 1.834 8.01秒-0.5786 0.46945 1.832 8.015秒-0.59869 0.48121 1.8114 8.02秒-0.62907 0.49346 1.7727 8.025秒-0.66925 0.5062 1.7154 8.03秒-0.71972 0.51894 1.66648.035秒-0.76088 0.53217 1.6257

应用相同的功能弗姆森来确定位置。

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;

下面我们绘制了感兴趣的时间间隔的速度和位置的3个组分。

图形子图(2,1,1)plot(vel.time,vel.variables)图例(quakeata.properties.variablenames,“位置”“西北”) 标题(“速度”)子图(2,1,2)plot(vel.time,pos.variables)图例(quakeata.properties.variablenames,“位置”“西北”) 标题(“位置”

想象的轨迹

轨迹可以通过使用组件值在2D或3D中绘制。在下文中,我们将显示可视化此数据的不同方式。

从二维投影开始。下面是第一个注释了一些时间值的示例。

图绘制(pos.NorthSouth pos.Vertical)包含('南北')ylabel('垂直的'%选择位置和标签nt = max(pos.Time) - min(pos.Time))/6; / / pos.Time = max(pos.Time) - min(pos.Time) /6if (fix(pos.Time/nt) == (pos.Time/nt))';文本(pos.NorthSouth (idx) pos.Vertical (idx), char (pos.Time (idx)))

使用plotmatrix为了可视化所有变量的散点图网格,并在对角线上的每个变量的直方图。输出变量斧头,表示网格中的每个轴,并且可用于识别要使用的轴XLabel.ylabel

figure [S,Ax] = plotmatrix(pos.Variables);II = 1:长度(varnames)xlabel(ax(end,ii),varnames {ii})ylabel(ax(ii,1),varnames {ii})结束

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

一步= 10;图plot3 (pos.NorthSouth pos.EastWest pos.Vertical,“r”) 抓住plot3 (pos.NorthSouth(1:步骤:结束),pos.EastWest(1:步骤:结束),pos.Vertical(1:步骤:结束),“。”) 抓住离开盒子紧的Xlabel('南北')ylabel('东西')Zlabel('垂直的') 标题(“位置”

万博1manbetx支持功能

函数在下面定义。

功能y = velfun(x)y =(1/200)* cumsum(x);Y = Y  - 平均值(Y);结束
这个主题有用吗?