HinetPy: Hi-net 数据申请与处理模块

HinetPy 是一个用于从日本 NIED Hi-net 网站下载地震波形数据并进行数据格式转换的Python模块。

本文仅做简要介绍,详情请阅读官方文档。

安装

HinetPy 只支持Python 3.4 及以上的版本,不熟悉 Python 的用户建议直接安装 anaconda。

安装 HinetPy 很简单:

pip install HinetPy

升级已安装的 HinetPy:

pip install HinetPy --upgrade

除此之外,还需要从 Hi-net 下载并安装 win32tools。

tar -xvf win32tools.tar.gz
cd win32tools/
make
cp catwin32.src/catwin32 win2sac.src/win2sac $HOME/bin/

使用

Python 以易读易用出名,HinetPy 也尽量做到易读易用。

下面的示例展示了如何从Hi-net申请 2010-01-01T00:00 (日本时间,GMT+0900)开始的20分钟的连续波形数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from HinetPy import Client, win32
# 根据你的 Hi-net 账户信息修改 username, password
client = Client("username", "password")
# 开始申请数据
# '0101' 是 Hi-net 的代号
data, ctable = client.get_waveform('0101', '201001010000', 20)
# 等待数据的申请和下载,一般需要几分钟时间
# 下载完成会在当前目录下生成cnt格式的数据文件和channle table文件
# 0101_201001010000_20.cnt 0101_20100101.ch
# 将 cnt 数据转换为 SAC 格式
win32.extract_sac(data, ctable)
# 从 channel table 中提取令极点信息并保存为 SAC PZ 格式
win32.extract_pz(ctable)

搞定收工。

更多功能及选项见官方文档。欢迎报BUG,也欢迎提Feature Request。