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

HinetPy

HinetPy 是一个Python模块,致力于自动化和简化从日本NIED Hi-net相关的繁琐的数据申请、下载地震波形数据并进行数据格式转换工作。

主要功能

  • 从Hi-net申请连续波形数据

  • 从Hi-net申请事件波形数据

  • 选择一个矩形或环形区域内的Hi-net/F-net台站

  • 将波形数据从win32格式转换为SAC格式

  • 提取仪器响应信息并保存为SAC零极点文件

  • 多线程并行下载和转换以加快速度

如何安装

HinetPy 只支持Python 3.4 及以上的版本

python环境直接使用下命令安装

1
pip install HinetPy

从 Hi-net 获取的波形数据为不常见/用的WIN32 格式,Hi-net 提供了 win32tools 来实现波形数据的基本处理和转换。她是 NIED Hi-net 提供的用于处理win32格式数据的一系列工具。HinetPy 需要其中的 catwin32 和 win2sac_32 。请确保 catwin32 和 win2sac_32 在你的PATH中。

中文教程:https://seisman.github.io/HinetPy/zh_CN/index.html

获取并转换波形数据

HinetPy 功能强大,使得从Hi-net申请连续数据、将数据转换为SAC格式、提取仪器响应文件并保存为SAC零极点文件变得很简单。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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)

获取走时目录

Hi-net提供了JMA走时数据供下载。

1
2
3
4
5
6
>>> from HinetPy import Client
>>> from datetime import datetime
>>> client = Client("username", "password")
>>> startdate = datetime(2010, 1, 1)
>>> client.get_arrivaltime(startdate, 5)
'measure_20100101_5.txt'

获取震源机制解目录

Hi-net提供了JMA震源机制解目录供下载。

1
2
3
4
5
6
>>> from HinetPy import Client
>>> from datetime import datetime
>>> client = Client("username", "password")
>>> startdate = datetime(2010, 1, 1)
>>> client.get_focalmechanism(startdate, 5)
'mecha_20100101_5.txt'