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. 2018-2019-1 20165226 《信息安全系统设计基础》第6周学习总结
  2. php 语句,php的控制语句
  3. 使用nltk.pos出现IndexError: string index out of range
  4. Mockito 的使用
  5. 【洛谷P1282】多米诺骨牌
  6. 【前端】jQuery学习内容概览
  7. 解方程c语言程序,C语言程序解线性方程组
  8. 使用AMOS软件构建结构方程模型
  9. 安卓ps模拟器_用电脑玩安卓游戏!逍遥模拟器免安装版PC软件
  10. 磁盘基础知识-磁盘的构成
  11. Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy
  12. 【Derivation】随机过程及应用(三) - 高斯分布/正态分布的期望和方差
  13. 云服务器抢票咋用_可以利用云服务器来抢票不?
  14. 解决linux“嘟嘟”的报警声
  15. 【小技巧】STA静态时序分析概述
  16. Oracle - Spool导出数据到TXT文件
  17. 详解活动图计算关键路径、最早开始时间、最晚开始时间、冗余时间,C++ 程序实现
  18. Barcode Reader SDK5.xCrack,条形码识别支持多种文档和图像格式
  19. 李阳疯狂英语突破单词
  20. 【python】加权中位数计算

热门文章

  1. Struts 2漏洞及其影响版本(记录备查)
  2. LIKE 后的%和_代表什么?
  3. [Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
  4. CSS 表格制作日历
  5. 矩阵求导公式的数学推导四部曲
  6. 关于vim在插入模式中Backspace键无法删除的问题[转]
  7. 金蝶/易飞/用友/泛微 算号/注册机
  8. 得阅读者赢联考:MBA联考不能忽略的英语(二)阅读部分
  9. 搭建自己的云存储空间|FastDFS分布式文件系统考虑一下?
  10. 智能眼镜时代即将来临,它会比智能手机更人性化吗?