HinetPy.win32 模块
- class
HinetPy.win32.
Channel
(id=None, name=None, component=None, latitude=None, longitude=None, unit=None, gain=None, damping=None, period=None, preamplification=None, lsb_value=None)[源代码] - 通道类。
参数:
- id (str) – 通道ID。
- name (str) – 台站名。
- component (str) – 通道分量(
U|N|E
)。 - latitude (float) – 台站纬度。
- longitude (float) – 台站经度。
- unit (str) – 数据的单位(
m
、m/s
、m/s/s
、rad
)。 - gain (float) – 传感器敏感度。
- damping (float) – 传感器阻尼常数。
- period (float) – 地震仪的自然周期。
- preamplification – 预放大因子。
- lsb_value – LSB值。
HinetPy.win32.
extractsac
(_data, ctable, suffix='SAC', outdir='.', pmax=8640000, filter_by_id=None, filter_by_name=None, filter_by_component=None, with_pz=False, processes=0)[源代码]- 提取数据并以SAC格式保存。
参数:
- data (str) – 要处理的win32文件。
- ctable (str) – 通道表文件。
- suffix (str) – 输出SAC文件的后缀。默认值为
SAC
。 - outdir (str) – 输出目录。默认输出到当前目录。
- pmax (int) – 允许的最大数据点数。默认值为 8640000。若输出数据长度超过一天,你可以自行增加
pmax
的值。 - filter_by_id (list of str or wildcard) – 按ID筛选通道。
- filter_by_name (list of str or wildcard) – 按照台站名筛选通道。
- filter_by_component (list of str or wildcard) – 按照分量筛选通道。
- with_pz (bool) – 同时提取SAC零极点文件。默认后缀为
.SAC_PZ
。 - processes (int) – 数据提取过程中所使用的并行进程数目。默认使用所有进程。
注解
win2sac
从波形中去除了灵敏度,并将数据乘以1.0e9。因而提取出的SAC文件的以 nm/s 为单位的速度或以 nm/s/s 为单位的加速度。
示例
- >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch")
提取所有通道的数据,并指定SAC文件后缀和输出目录:
- >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch",
- ... suffix="", outdir="20100101000")
只提取指定通道:
- >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch",
- ... filter_by_name="N.NA*", filter_by_component='[NE]')
HinetPy.win32.
extractpz
(_ctable, suffix='SAC_PZ', outdir='.', keep_sensitivity=False, filter_by_chid=None, filter_by_name=None, filter_by_component=None)[源代码]- 从通道表中提取仪器响应信息并保存为SAC零极点文件。
警告
仅对Hi-net台网的仪器响应有效。
F-net的RESP仪器响应文件可以从 F-net网站 下载。
参数:
- ctable (str) – 通道表文件。
- suffix (str) – SAC零极点文件后缀,默认为
SAC_PZ
。 - outdir (str) – 输出目录。默认输出到当前目录。
- keep_sensivity (bool) – win2sac在将win32格式转换为SAC格式时,自动从波形数据中去除了灵敏度。因而生成的零极点文件中省去了灵敏度。
- filter_by_id (list of str or wildcard) – 按ID筛选通道。
- filter_by_name (list of str or wildcard) – 按照台站名筛选通道。
- filter_by_component (list of str or wildcard) – 按照分量筛选通道。
示例
- >>> extract_pz("0101_20100101.ch")
提取所有通道并指定SAC零极点文件后缀和输出目录:
- >>> extract_pz("0101_20100101.ch", suffix="", outdir="20100101000")
只提取指定通道:
- >>> extract_pz("0101_20100101.ch",
- ... filter_by_name="N.NA*", filter_by_component='[NE]')
HinetPy.win32.
merge
(datas, total_data, force_sort=False)[源代码]- 将多个win32文件合并为一个win32文件。
参数:
- datas (list of str or wildcard) – 要合并的win32文件。
- total_data (str) – 输出的win32文件的文件名。
- force_sort (bool) – 强制将所有win32文件按照日期排序。
示例
若win32数据文件是按照数据开始时间命名的(如 201304040203.cnt
),则建议将win32文件按照文件名排序:
- >>> datas = sorted(glob.glob("20130404*.cnt"))
- >>> merge(datas, "outdir/final.cnt")
若win32文件随机命名,你需要设置 force_sort=True
以强制 catwin32
将所有输入数据按照日期排序。然而,这一过程很耗时。除非必要,请勿使用这一选项:
- >>> datas = ["001.cnt", "002.cnt", "003.cnt"]
- >>> merge(datas, "final.cnt", force_sort=True)
你可以使用通配符指定要合并的win32文件。
- >>> merge("20130404*.cnt", "final.cnt")