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) – 数据的单位( mm/sm/s/srad )。
  • 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 为单位的加速度。

示例

  1. >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch")

提取所有通道的数据,并指定SAC文件后缀和输出目录:

  1. >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch",
  2. ... suffix="", outdir="20100101000")

只提取指定通道:

  1. >>> extract_sac("0101_201001010000_5.cnt", "0101_20100101.ch",
  2. ... 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) – 按照分量筛选通道。

示例

  1. >>> extract_pz("0101_20100101.ch")

提取所有通道并指定SAC零极点文件后缀和输出目录:

  1. >>> extract_pz("0101_20100101.ch", suffix="", outdir="20100101000")

只提取指定通道:

  1. >>> extract_pz("0101_20100101.ch",
  2. ... 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文件按照文件名排序:

  1. >>> datas = sorted(glob.glob("20130404*.cnt"))
  2. >>> merge(datas, "outdir/final.cnt")

若win32文件随机命名,你需要设置 force_sort=True 以强制 catwin32 将所有输入数据按照日期排序。然而,这一过程很耗时。除非必要,请勿使用这一选项:

  1. >>> datas = ["001.cnt", "002.cnt", "003.cnt"]
  2. >>> merge(datas, "final.cnt", force_sort=True)

你可以使用通配符指定要合并的win32文件。

  1. >>> merge("20130404*.cnt", "final.cnt")