主要内容

洛马普列塔地震分析

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

地震数据加载

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

从加载数据开始。

负载地震env
Name Size Bytes Class Attributes e 10001x1 80008 double n 10001x1 80008 double v 10001x1 80008 double

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

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

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

在时间表中组织数据

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

varNames = {“东西方”“南北”“垂直”};地震数据=时间表(时间,e, n, v,“VariableNames”, varNames);头(quakeData)
ans =8×3的时间表时间:东西-北-南垂直线0.005秒50.01秒50.015秒50.02秒50.025秒50.03秒50.035秒50.04秒50.01秒50.015秒

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

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

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

规模数据

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

quakeData。变量= 0.098*quakeData.Variables;

选择用于探索的数据子集

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

t1 =秒(8)* (1,1);t2 =秒(15)* (1,1);持有在…上情节(ylim (t1 t2),“k”“线宽”, 2)

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

存储感兴趣的数据

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

(8) tr = timerange(秒,秒(15));: dataOfInterest = quakeData (tr);头(dataOfInterest)
ans =8×3的时间表UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托托第8.548-9.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(“垂直”

图中包含3个轴对象。带有标题加速的轴对象1包含一个类型为line的对象。axis对象2包含一个类型为line的对象。axis对象3包含一个类型为line的对象。

计算汇总统计

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

总结(dataOfInterest)
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(@平均值,感兴趣的数据,“OutputFormat”“桌子”
mn =1×3表mean_EastWest mean_NorthSouth mean_Vertical  _____________ _______________ _____________ 0.9338 -0.10276 -0.52542

计算速度和位置

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

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

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

vel=varfun(@velFun,dataOfInterest);head(vel)
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

应用相同的函数维尔芬根据速度来确定位置。

pos = varfun (@velFun,韦尔);头(pos)
ans =8×3的时间表游戏时间和游戏时间、游戏时间、游戏时间和游戏游戏东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西东西第2.1189-2.1793-3.0821 8.005节第2.1161-2.177-3.0729 8.01节第2.1132-2.1746-3.0638 8.015节第2.1102-2.1722-3.0547 8.02节第2.107-2.1698-3.0458 8.025节第2.1037-2.1672-3.0373 8节。03第2.1001-2.1646-3.0289 8.035节第2.0963-2.162-3.0208节

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

pos.Properties.VariableNames=varNames;

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

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个轴对象。标题为Velocity的轴对象1包含3个类型为line的对象。这些物体代表东西南北垂直。标题为Position的轴对象2包含3个类型为line的对象。这些物体代表东西南北垂直。

可视化轨迹

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

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

图绘制(pos.NorthSouth pos.Vertical)包含(“南北”)伊拉贝尔(“垂直”%选择位置和标签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)))

图形包含一个轴对象。轴对象包含5个类型为line、text的对象。

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

图[S,Ax]=绘图矩阵(位置变量);ii=1:length(varNames)xlabel(Ax(end,ii),varNames{ii})ylabel(Ax(ii,1),varNames{ii})结束

MATLAB图

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

一步= 10;图plot3 (pos.NorthSouth pos.EastWest pos.Vertical,“r”)持有在…上plot3 (pos.NorthSouth(1:步骤:结束),pos.EastWest(1:步骤:结束),pos.Vertical(1:步骤:结束),“。”)持有在…上牢固的xlabel(“南北”)伊拉贝尔(“东西”) zlabel (“垂直”)标题(“位置”

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

金宝app支持功能

函数定义如下。

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

另请参阅

||||||

相关话题