Python:IRIS数据的初步处理

此前一文分享了如何向IRIS申请数据,详细可参考(Python:向IRIS发送邮件申请事件或者连续数据)一文。但下载好数据后是一个个以.tar.mseed为结尾的数据包,该怎么对这个数据处理,得到sac文件?本文将简单介绍一下数据的转换过程,并提供一个简单的例子。

一. 将所有下载好的.tar.mseed为结尾的数据包放入mseed_data文件夹,执行01batch_decompress_data.py脚本,针对每一个.tar.mseed的数据包会生成.mseed,.meta,.xml三个文件。

import os
import sys
from glob import globif __name__ == "__main__":tar_mseed_data_saved_rpath = "./mseed_data/"tar_mseed_file_path_list = glob(tar_mseed_data_saved_rpath+"*.tar.mseed")tar_mseed_file_path_list.sort()file_saved_path = "./waveform_data/"os.makedirs(file_saved_path, exist_ok=True)# traverse every tar mseed file.for i in range(0, len(tar_mseed_file_path_list)):#for i in range(0, 1):sgl_tar_mseed_file_path = tar_mseed_file_path_list[i]cmd = "tar -xvf %s -C%s"%(sgl_tar_mseed_file_path, file_saved_path)os.system(cmd)

二. 执行02extract_sac_response_files.py脚本。这个脚本中有两个子函数,extract_dataless_files()和extract_sac_and_response_files()。extract_dataless_files()函数是用来提取dataless文件,这里需要用到stationxml-seed-converter-2.1.0.jar,因此需要在电脑上安装java。extract_sac_and_response_files()函数是提取sac数据以及仪器响应文件,这里默认提取PZ文件,这里需要用到rdseed。提前还需要提供一个台站列表。

# 台站列表如下
"""
AC BCI   42.366600 20.067499  500.00
AC KBN   40.623600 20.787399  800.00
"""import os
import sys
from glob import globdef extract_dataless_files(root_path, station_info_path):root_path = root_path + "waveform_data/"# obtain the information of stations.fileID = open(station_info_path, "r")data_lines = fileID.readlines()fileID.close()net_sta_list = [".".join(dl.split()[0:2]) for dl in data_lines]net_sta_list.sort()for i in range(0, len(net_sta_list)):sgl_net_sta = net_sta_list[i]folder_path_list = glob(root_path + sgl_net_sta + "*")if not len(folder_path_list):print("There are some errors when we try to find folder with %s!"%(sgl_net_sta))continuefolder_path = folder_path_list[0]match_dataless = folder_path + "/" + "*.dataless"if len(glob(match_dataless)) != 0:print("There is already dataless file for %s!"%(sgl_net_sta))continuematch_xml = folder_path + "/" + "*.xml"match_xml_path = glob(match_xml)if len(match_xml_path) == 0:print("There is not xml file for %s!"%(sgl_net_sta))continuecmd = "java -jar stationxml-seed-converter-2.1.0.jar %s"%(match_xml_path[0])os.system(cmd)def extract_sac_and_response_files(root_path, station_info_path):response_saved_path = root_path + "reponse_files"os.makedirs(response_saved_path, exist_ok=True)root_path = root_path + "waveform_data/"# obtain the information of stations.fileID = open(station_info_path, "r")data_lines = fileID.readlines()fileID.close()net_sta_list = [".".join(dl.split()[0:2]) for dl in data_lines]net_sta_list.sort()for i in range(0, len(net_sta_list)):#for i in range(0, 1):sgl_net_sta = net_sta_list[i]folder_path_list = glob(root_path + sgl_net_sta + "*")if not len(folder_path_list):print("There are some errors when we try to find folder with %s!"%(sgl_net_sta))continuefolder_path = folder_path_list[0]data_folder_path = folder_path + "/" + "data/"if os.path.exists(data_folder_path):print("There is already data folder for %s!"%(sgl_net_sta))continueos.makedirs(data_folder_path)match_dataless = folder_path + "/" + "*.dataless"dataless_path = glob(match_dataless)[0]match_mseed = folder_path + "/" + "*.mseed"mseed_path = glob(match_mseed)[0]cmd = "rdseed -df %s -g %s -q %s"%(mseed_path, dataless_path, data_folder_path)os.system(cmd)cmd2 = "rdseed -pf %s -q %s"%(dataless_path, response_saved_path)os.system(cmd2)if __name__ == "__main__":root_path = "./"station_info_path = "./station_info" #extract_dataless_files(root_path, station_info_path)extract_sac_and_response_files(root_path, station_info_path)

以上是代码分享,提供的例子可以在此处下载https://download.csdn.net/download/u011563036/83602004。希望能帮到需要的人,有错误的地方望告知。
注:代码只在ubuntu18.04中做过测试。使用了3.6版本的python。

参考:
1、https://github.com/iris-edu/stationxml-seed-converter/releases(stationxml-seed-converter-2.1.0.jar的来源)
2. https://github.com/iris-edu-legacy/rdseed (rdseed的来源)

IRIS数据的初步处理相关推荐

  1. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果.LIME解释器进行模型预测结果解释并可视化 ...

  2. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果、使用LIME解释器进行模型预测结果解释

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果.使用LIME解释器进行模型预测结果解释并可 ...

  3. 利用sklearn库决策树模型对iris数据多分类并进行评估

    1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...

  4. InterSystems IRIS数据平台:数据接收速度测试

    关于本文 本文为翻译整理(节选),原文链接请点击:https://openexchange.intersystems.com/package/Ingestion-Speed-Test?tab=deta ...

  5. 天文服务领域创新企业Skyline借助InterSystems IRIS数据平台,打造国内首个智能天文观测服务平台

    2019年5月20日,全球医疗.商业.政府领域信息技术的领导者InterSystems宣布,中国首家天文服务领域创新企业北京斯凯林科技有限公司(下文简称Skyline)借助InterSystems I ...

  6. iris数据_Python数据分析03-Iris-箱形图与outliers

    0.篇首 本篇文章继续在 Iris 的基础上做数据可视化处理.在前两篇文章中,我们分别使用了直方图.KDE 以及一个十分抽象的三维图展示了 Iris 数据集.这些图都很清晰地把三个 Species 区 ...

  7. 针对IRIS数据的特征选择与提取方法研究(模式识别第四次作业)

    针对IRIS数据的特征选择与提取方法研究 要求 对Iris数据进行两个特征选择,共6种组合,计算类别可分性准则函数J值,得出最好的分类组合,画出六种组合的分布图: 使用前期作业里面的程序.对6种组合分 ...

  8. 利用python决策树分析iris数据及树状图绘制

    利用python决策树分析iris数据及树状图绘制 数据说明 数据划分 模型训练及评估 模型训练代码 模型大致评估 树状图绘制 Graphviz安装配置及入门 代码汇总 基地部门公众号 数据说明 数据 ...

  9. iris数据_Kaggle 数据可视化课程5

    Lesson 5 直方图和密度图 在本教程中,您将学习所有关于直方图和密度图. 设置notebook 与往常一样,我们从设置编码环境开始. In [1]: import pandas as pd pd ...

最新文章

  1. python占多少空间_Python如何查看变量占用空间大小
  2. java异常详细讲解_java异常的讲解
  3. 测试点分析:1048 数字加密 (20分)_16行代码AC
  4. 3 MIGO采购订单收货报错-表T169P,表目S001不存在
  5. 基于jQuery焦点图片新闻代码(JS+CSS)
  6. 超级计算机开采金矿,中国已知的第一大金矿,储量可达10000吨,全力开采需要40年时间...
  7. java计算每个元素出现的百分比_java – 计算百分比“x / y * 100”总是导致0?
  8. 文本编辑器——VI/VIM
  9. SAP SD pricing condition技术在系统里的一些练习
  10. 自动量程万用表的实现原理_自动量程万用表模块设计方案[图]
  11. ajax简易写法,AJAX的简洁写法
  12. 笔记本电脑无法使用WiFi上网解答
  13. Oracle,emc,emulex联合测试T10
  14. 生日快乐网页模板(HTML5+CSS3+JS)
  15. 08-SNAP的命令行处理工具gpt及其批处理(Sentinel-1和Sentinel-2为例)
  16. js获取微信号_前端js可以直接获取到微信用户基本信息吗
  17. 仅300员工却垄断全球,几亿一台还供不应求
  18. 电子发票电子化报销入账归档 给区块链领域带来了什么样的机遇
  19. 大脑构造图与功能解析_大脑的结构功能及作用是怎样?
  20. 一句话木马的工作原理

热门文章

  1. HTML5七夕情人节表白网页制作【css3爱心表白背景特效】HTML+CSS+JavaScript 520情人节代码制作
  2. 管家婆辉煌ⅡTOP本单据或后续单据已经生成了凭证,不能修改删除
  3. 使用xom实现xml文件数据的查找,删除,修改(转载)
  4. 您的计算机运行的可能是盗版,为何我的电脑总跳出来:您的电脑可能是WINDOW盗版的受害者...
  5. 基于 MATLAB 、Simulink 仿真和 TrueTime 工具箱的网络控制系统的仿真方法 附完整代码
  6. 北航软件学院2014级数据库期末试题
  7. 【操作系统】30天自制操作系统--(8)内存管理
  8. linux 编译QT atom,QT5 编译使用TagLib
  9. Generator——简介
  10. seo模拟点击软件_哪些SEO排名工具是有效的呢?