获取连续波形数据

本教程将展示如何通过 get_continuous_waveform() 用多种方式从Hi-net申请连续波形数据。

备注

HinetPy和Hi-net网站中的所有时间都是日本标准时间(东九区,GMT+0900)。

基本用法

申请Hi-net台网从2010-01-01T00:00 (GMT+0900)开始的20分钟的数据:

>>> from HinetPy import Client
>>> client = Client("username", "password")
>>> data, ctable = client.get_continuous_waveform("0101", "201001010000", 20)
[2017-03-11 17:46:20] INFO: 2010-01-01 00:00 ~20
[2017-03-11 17:46:20] INFO: [1/4] => 2010-01-01 00:00 ~5
[2017-03-11 17:46:41] INFO: [2/4] => 2010-01-01 00:05 ~5
[2017-03-11 17:46:50] INFO: [3/4] => 2010-01-01 00:10 ~5
[2017-03-11 17:47:04] INFO: [4/4] => 2010-01-01 00:15 ~5
>>> ls
0101_201001010000_20.cnt 0101_20100101.ch

get_continuous_waveform()starttime 还可以用其他常见格式:

>>> data, ctable = client.get_continuous_waveform("0101", "2010-01-01T00:00", 20)
>>> data, ctable = client.get_continuous_waveform("0101", "2010-01-01 00:00", 20)

并且 datetime.datetime 允许用户更灵活地操作日期和时间:

>>> from datetime import datetime
>>> starttime = datetime(2010, 1, 1, 0, 0)  # JST time
>>> data, ctable = client.get_continuous_waveform("0101", starttime, 20)

现在我们得到了:

  1. 0101_201001010000_20.cnt: win32格式的波形数据,默认文件名格式为 s CODE_YYYYmmddHHMM_LENGTH.cnt

  2. 0101_20100101.ch: ctable数据(即通道表,类似于仪器响应文件),默认文件名格式为 CODE_YYYYmmdd.ch

备注

Hi-net对数据申请有三个限制:

  1. 数据记录长度不超过60分钟

  2. 通道数目*数据记录长度不得大于12000分钟

  3. 仅保留最近150次申请的数据

对于上面的示例,Hi-net有大约2350个通道,因而数据长度不得超过5分钟。一个20分钟长的数据请求需要被拆分成四个5分钟的子请求。

自定义

你可以自定义数据文件和通道表的文件名,以及输出目录。

>>> from HinetPy import Client
>>> from datetime import datetime
>>> client = Client("username", "password")
>>> starttime = datetime(2010, 1, 1, 0, 0)  # JST time
>>> data, ctable = client.get_continuous_waveform(
...     "0101",
...     starttime,
...     20,
...     data="201001010000.cnt",
...     ctable="0101.ch",
...     outdir="201001010000",
... )
[2017-03-11 17:46:20] INFO: 2010-01-01 00:00 ~20
[2017-03-11 17:46:20] INFO: [1/4] => 2010-01-01 00:00 ~5
[2017-03-11 17:46:41] INFO: [2/4] => 2010-01-01 00:05 ~5
[2017-03-11 17:46:50] INFO: [3/4] => 2010-01-01 00:10 ~5
[2017-03-11 17:47:04] INFO: [4/4] => 2010-01-01 00:15 ~5
>>> # You should see a directory "201001010000" with two files
>>> # "0101.ch" and "201001010000.cnt" inside.