第
26
卷 第
2010
年
6
2
月
期
防 灾 减 灾 学 报
JOURNAL OF DISASTER PREVENTION AND REDUCTION
Vol.26 No.2
Jun.,2010
在地震数据绘图中的应用
Matlab
高 亮1,
张守国1,
闫 峰1,
邓 阳2
五大连池地震火山监测站
黑龙江 五大连池
,
(1.
164155; 2.
黑龙江省地震局
黑龙江 哈尔滨
,
150090)
地震图件作为地震工作者研究地震的主要工具之一
在地震预测
,
,
震害防御方面有着不可替代的作
:
, Matlab
作为一款强大的可视化数据处理软件已被各行各业的工程技术人员所使用
本文介绍如何使用
,
摘要
用
Matlab
关键词
来绘制地震图件
,
可视化
并通过实例绘制来表现其优点
。
地震图件
;
: Matlab;
中图分类号
: P315.69
文献标识码
: A
文章编号
: 1674-8565 (2010) 02-31-05
引言
0
。
、
、
、
,
,
,
利用直观的地震图件
在天然地震监测中
如震中分布图
研究人员利用各种地
震图件
震源深度分布图
地
震烈度分布图
震中分布迁移图等对天然地震
研究人员可
进行研究
以分析与研究地震与对应地区位置地质构造之
间的关系
地震热点地区地震的时空迁移变化
趋势
为今后的
地震预测研究积累经验以及区域震害防御提供
指导意见
地震图件作为天然地震研究
中的一项最基本的可视化工具
给天然地震研
究提供了很大的方便
为广大地震工作者所接
受并使用
探查并弄清其中蕴含的规律
因从
,
。
,
,
,
,
,
,
是 由
Matlab
MathWorks
是数值计算
公 司 推 出 的 一 款 强
符号运算和
近年
这一强大的科学计算软件包已经得到
并已深入到了各行各业的众
大学校园得
大的数值计算软件
图形处理等多种功能的强有力实现工具
来
业界的广泛认可
多学科
到了日益普及与广泛应用
其具有以下优点
在各大公司
科研机构
Matlab
,
,
、
、
、
、
。
。
1:
以矩阵为运算基础
内含有丰
,
在计算方面避免使用者花费大量
数 值 计 算 方
,
。 2:
基 本 涵 盖 了 所 有 的 数 值 计 算 方 法
,
代码简捷直观
富的函数库
时 间 去 编 写 不 必 要 的 小 程 序
面
从基本的求极限
,
限差分
线性拟合
极大的方便了工程技术人员
面
, Matlab
,
。
,
函数的 零极点
有
使复杂的数值计算变得容易
,
数据可视化方
FFT,
到
,
。 3:
提供了多种图件处理函数
如
,
,
等
支持
, Matlab
。 4: Matlab
plot、
可 以 很 容 易 的 绘 制 出 高 质
提供了强大的编程接
与其他编程语言进行数据交换
。
的强大的数据可
对大量繁琐的地震数据进行图件绘
scatter、 contour
量的工程图谱
口
本文就是介绍如何利用
视化功能
制
使其能直观的反映天然地震的时空规律
Matlab
Matlab
,
,
。
,
1
1.1
用
Matlab
绘制地震图件
数据的读入
对地震数据进行可视化绘制
地 震 监 测 数 据 读 入 到
中高级 文件
Matlab
I / 0
的数据读入与读出操作
首先需要对
,
的 工 作 区 中
Matlab
。
函数支 持 各 种 不 同 类 型
如对有针对图形文件
,
来稿日期
: 2010.04
修订日期
作者简介
高亮
:
(1982- ),
男
,
: 2010.05
湖北省监利县人
助理工程师
,
.
现主要从事地震监测工作
.
数 据 的
等
Excel
针 对
32
的
imread,
本文件有
csread, textread
还提供了大量的低级文件
式比较特殊的文件读写操作
日 常 的 地 震 监 测 数 据
这 里使用
数据
组的形式读入并储存到
绘图的数据准备工作
,
或 者
利用以上两个函数
函 数
load
,
,
。
I / 0
,
。
。
对 于 文
xlsread,
除此之外
Matlab
指令
用于对 格
本文数据来源为
,
有 较 规 整 的 数 据 结 构
。
函 数 来 读 入
textread
大量的数据被以数
完成
的工作区
Matlab
,
1.2
地震图件绘制
在地震图件中
,
,
震中分布图一般采用二维
,
震中深度分布图采用三维曲
地震烈度分布图可以采用二维平面等值
对于不同的
每种
针对不同地震图件
平面散点图形式
面图
线或者三维等值线图均可
类型的图件提供了各种不同的绘制函数
函数也有多种不同的用法
的要求
其主要的绘图函数和命令如下
二维散点图绘制函数
。 Matlab
,
,
。
:
1)
在
Matlab
中
,
—scatter
该函数基本调用格式如下
:
scatter (x, y, s, c)
s
c
涵义为在二维平面直角 坐标系中用
值颜色的标记点在坐标
可以将
值大
小和
处描点
,
因此可以利用该函数
设置为经纬
x, y
度
这 样 即 可 清 楚 绘
制出表示地震的震中经纬度与震级大小的震中
分布图
设置为 对应震 级 大 小
(x, y)
, s
,
,
。
网格创建函数
2)
在三维曲面图中
—meshgrid
, Matlab
z
,
,
值
组合来描绘曲面
即将
解为一个个小矩形区域
形区域每个顶点处的
些邻近的顶点都互相连接起来
个
在绘制三维曲面图
格
的矩形区域上创建网格
, meshgrid (x, y)
区 域 上 的
(x, y)
,
是通过 矩形网格
定义 的区域分
(x, y)
然后计算在这个小矩
在显示时通过把这
从而组合出整
曲 面
因 此
,
,
(x, y, z)
首先要创 建
函 数 就 是 用 来 在
(x, y)
。
其调用格式如下
,
[X, Y] =meshgrid (x, y)
其涵义为通过数据重复在一维数组
,
的网
(x, y)
:
的
x, y
都是长
三维网线图绘制函数
3)
网线图是把邻近的网格点
—mesh
(X, Y)
(X, Y, Z)
对应的
用 线条连接起 来的三
网格对应的曲面区域内则显示为空
可以用来绘制震源深度分
函 数 生 成 的 经
用 来 表 示
表 示 此 经 纬 度 对 应 的 震 源 深 度
meshgrid
。
函数的前提是必须创建绘图网
,
在地震图件中
,
曲面上的点
维曲面图
白
,
布 图
纬 度 网 格
因此
格
利用
, X, Y
, Z
。
,
其基本调用格式如下
mesh
mesh (X, Y, Z, C)
表 示 网 格 点
表 示 对 应 网 格 点 的
, Z
X, Y
此外
meshc
meshz
值
, C
表示网线颜色
。
mesh
函数还有两个派生函数
在
在 绘 制 网 线 图 的 时 候
:
x-y
平 面
,
上自动绘制函数的等值线
则 在 网 线 图 的 基 础 上 在 图 形 的 底 部
外侧绘制平行
轴的边框线
z
。
三维表面图绘制函数
4)
表面图与网线图不同
网线连接各曲面点之外
用颜色填充
同 样 有
,
添加等值线与表面添加光照效果
其函数调用格式与
与
派 生 函 数
surfc
surfl
,
。
—surf
其显示结果除了用
,
还对网格区域内曲面
其
mesh
其 用 途 分 别 为
一致
,
网格数据插值函数
。
—griddata
5)
利 用
meshgrid
mesh, surf, contour
等 绘 图 时
函数完成经纬度网格化之后
当 利
由于
获
在绘制地震烈度分布等值
,
因此就需要插值
用
观测数据是散乱分布的
得平滑的数据插值
线图时就需要进行插值运算
其调用格式为
:
。
,
,
,
。
Z=girddata (x, y, z, X, Y, method)
是原始地震数据点
是由
网 格 化 得 到 的 网 格 坐 标
, X, Y
x,
,
x, y, z
利 用
y
meshgrid
指 定 了 插 值 方 法
立方体
网 格 点
), cubic (
v4 (Matlab4
method
线性
(
和
返回值
值曲面连续光滑
默认情况下
Z
)
用
,
是插值结果
而
linear
会采用
,
Matlab
cubic
和
linear
, Matlab
提 供 了
), nearest (
四 种 插 值 算 法
linear
最近邻点
,
)
其 中
得到的插
则不连续
,
与
v4
nearest
线性插值
。
防 灾 减 灾 学 报
卷
26
:
:
和
当
n
的一维数组时
每一个交叉点上创建网格点
度为
对应的网格点
。
震三维图件时候
的纬度数组序列
,
,
,
产生的
x
X, Y
y
就是
x, y
在绘制地
输入经度数组与相应
,
当
即可以产生经纬度网格平面
x, y
基于此函数的意义
,
实例绘制
震中分布图的绘制
2
2.1
。
%
设置背景图并显示
%
期
2
高 亮
等
,
: Matlab
在地震数据绘图中的应用
scatter (y (i), x (i), 40,’ filled’); %
置不同震级的标记点大小
%
%
hold on
33
设
else
end
end;
for i=1: a
if ML>1&ML<=2
scatter (y (i), x (i), 100,’ filled’);
……;
……;
消除坐标轴背景
%
set (ax2,’ color’,’ none’);
对齐经纬坐标
%
%
[A, map] =imread (’
五大连池地图
.jpg’)
image (A);
对齐背景图与震中分布图坐标轴位置
%
%
returned_value=get (gca,’ position’);
axis off;
ax2=axes (’ position’, returned_value);
读入震中经纬度数据
%
load dzsj.txt
[a, b] =size (dzsj)
for i=1: a
ML (i) =dzsj (i, 5);
end;
%
绘制震中分布图
x (i) =dzsj (i, 1) +dzsj (i, 2) / 60;
%
y (i) =dzsj (i, 3) +dzsj (i, 4) / 60;
%
axis ([125.89 126.51 48.62 48.84]);
for i=1: a
if ML>0&ML<=1
grin on;
编译结果如下图
1:
图
1
五大连池震中分布图
Fig.1 Epicenter distribution map of Wudalianchi
震源深度分布图的绘制
2.2
for i=1: a
load earthquakedepth.txt;
读入经纬度与震源深度数据
%
%
(i,2) / 60;
x (i)=earthquakedepth (i,1)+earthquakedepth
[a, b] =size (earthquakedepth);
确定读入矩阵行数与列数
%
%
(i,4) / 60;
y (i)=earthquakedepth (i,3)+earthquakedepth
34
防 灾 减 灾 学 报
卷
26
depth (i) =earthquakedepth (i, 5);
end
xi=linspace (min (x), max (x), 200);
%
圆滑插值
%
经纬度矩阵网格化
%
%
Z=griddata (x, y, depth, X, Y,’ v4’);
yi=linspace (min (y), max (y), 200);
细化并产生经纬度矩阵
%
%
[X, Y] =meshgrid (xi, yi);
mesh (X, Y, Z);
绘制三维网线图
%
编译运行结果如图
%
所示
:
2
图
2
震源深度分布图
Fig.2 Distribution map of focal depth
还可以对观察方向加以调整
入视觉转换函数
view:
在程序中输
,
View ([90, 0]);
视觉变换为垂直经度方向
如图
所示
:
3
,
图
3
沿纬度线视角的震源深度分布图
Fig.3 Distribution map of focal depth from the latitude line perspective
通过设置
达到工程技术人员所需要的视觉效果
可以多视角的观察图
函数
view
,
。
像
,
结语
3
根据以上实 例可以看出
作为数据
在数据处理方面具有编
, Matlab
处理的优秀软件之一
,
,
实现地震图件绘制更加方便
计 算 结 果 可 视 化 等 优 点
,
快 捷
用
更
能够直观的表现出了地震的空间
很好的为地震研究以及震害防御指导服
绘制地震图件较之其他
,
,
,
程 简 单 迅 速
Matlab
加科学合理
分布
,
务
因此
方法更快
,
。
,
利用
更科学
Matlab
简单易行
值得推广
。
,
,
期
2
高 亮
等
,
: Matlab
在地震数据绘图中的应用
35
THE APPLICATION OF MATLAB
IN EARTHQUAKE DATA MAPPING
GAO Liang1, ZHANG Shou-guo1, YAN Feng1, DENG Yang2
(1.Wudalianchi Seismic and Volcanic Monitoring Station, Heilongjiang Wudalianchi 164155, China;
2.Earthquake Administration of Heilongjiang Province, Heilongjiang Harbin, 150090, China)
Abstract: The earthquake graphic which is a main tool for the earthquake worker studying earthquake
has an non-substitutable effect in earthquake forcasting and disaster defending. Matlab which is a powerful
Visualized Data Processing software is already used by engineer in everywalk of life. In this paper, the
writer introduce how to protract earthquake graphic by using Matlab and show it’ s advantage by instance.
Key words: Matlab; visualize; earthquake graphic
简 讯
·
·
东北地区
2010
年第一季度
ML≥3.0
地震目录
The earthquakes
(ML≥3.0) catalogue of First quarter in northeastern area, 2010
序号
发震时间
地震位置
月 日 时 分 秒 北
纬 东
经
%
%
1
2
3
4
5
6
7
8
9
10
1
1
1
2
2
3
3
3
3
3
11
14 19 23.9
40° 66′ 122° 83′
23
06 30 41.8
40° 53′ 123° 04′
31
9
07 55 23.5
50° 13′
125° 75′
17 01 18.6
40° 66′ 122° 89′
24
00 22 36.9
44° 25′
126° 69′
10
22
22
18 54 56.0
46° 64′
131° 51′
00 12 14.3
41° 50′
123° 22′
20 52 02.5
39° 33′
122° 24′
26
01 27 31.4
45° 33′
122° 28′
27
03 48 53.3
41° 48′
123° 21′
地
点
%
辽宁海城
辽宁海城与岫
岩交界
黑龙江嫩江
辽宁海城
吉 林 永 吉
兰交界
、
舒
黑龙江友谊
辽宁灯塔
辽宁普兰店
吉 林 洮 南
内
蒙古自治区科
尔泌右翼中旗
、
交界
辽宁灯塔
震级
(ML)
3.5
3.2
3.8
3
3.3
MS4.2
3
3
3.2
3
)
(
深度
(km)
精度
8
9
7
7
6
7
7
8
8
7
Ⅰ
Ⅰ
Ⅱ
Ⅰ
Ⅰ
Ⅱ
Ⅰ
Ⅰ
Ⅰ
Ⅰ
梁 灿 供稿
)
吉林省与黑龙江省地震目录摘自中国地震信息网
(