获取连续波形数据
本教程将展示如何通过 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
- >>> ls 201001010000/
- 0101.ch 201001010000.cnt