#python3
#-------------------------------------------------------------------------------
# Purpose: extract sac and response files.
# Author: plovess
# Created: 2021-10-20
# update:
#-------------------------------------------------------------------------------
import os
import sys
from glob import glob
def 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))
continue
folder_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))
continue
match_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))
continue
cmd = "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))
continue
folder_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))
continue
os.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)
评论0