1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| import os from obspy.io.xseed import Parser from FnetPy import Client from datetime import datetime,timedelta from obspy import read_inventory,read,Trace from datetime import datetime client = Client('用户名', '密码')
current_date=datetime(2013,1,1,0,0) #current_date=datetime(2004,12,30,0,0) end_date=datetime(2025,1,1,0,0) output_dir='./seed' raw_dir='./raw' resp_dir='./resp' os.makedirs(output_dir, exist_ok=True) os.makedirs(raw_dir, exist_ok=True) os.makedirs(resp_dir, exist_ok=True) while (current_date<end_date): start_time = current_data start_str = current_date.strftime("%Y_%m_%d_%H_%M_%S") name=start_str+".seed" fname=os.path.join(raw_dir,name) output_file=os.path.join(output_dir, name) if os.path.exists(output_file): print(f"[跳过] 文件已存在: {output_file}") current_date+=timedelta(days=1) continue open(output_file, 'wb').close() # 创建空文件 if not os.path.exists(fname): print('download data from '+str(start_time)+' to '+str(end_time)) client.get_waveform(start_time, duration_in_seconds=86400+3600,component="LHZ",filename=fname) # download print('download '+fname+' down!') current_date+=timedelta(days=1) st = read(fname) # read parser = Parser(fname) #parse parser.write_resp(resp_dir, zipped=False) for tr in st: resp_file = f"RESP.{tr.get_id()}" inv = read_inventory(os.path.join(resp_dir, resp_file)) tr.remove_response(inventory=inv, output="VEL") #print(tr.stats) st.write(output_file, format="MSEED") print('Finished')
|