获取连续波形数据
本教程将展示如何通过 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)
现在我们得到了:
0101_201001010000_20.cnt
: win32格式的波形数据,默认文件名格式为 sCODE_YYYYmmddHHMM_LENGTH.cnt
0101_20100101.ch
: ctable数据(即通道表,类似于仪器响应文件),默认文件名格式为CODE_YYYYmmdd.ch
。
备注
Hi-net对数据申请有三个限制:
数据记录长度不超过60分钟
通道数目*数据记录长度不得大于12000分钟
仅保留最近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.