Changes for page FDSN Guide
Last modified by robert on 2025/03/24 12:02
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -27,24 +27,51 @@ 27 27 28 28 = Station Metadata = 29 29 30 -Information such as site locations, sensor and data logger types, response information, etc are in the station metadata. This can be accessed (link)or via theobspy get_stations(link)tool.30 +Information such as site locations, sensor and data logger types, response information, etc are in the station metadata. This can be accessed [[directly>>http://auspass.edu.au/fdsnws/station/1/builder]] or via the [[ObsPy get_stations>>https://docs.obspy.org/packages/autogen/obspy.clients.fdsn.client.Client.get_stations.html]] code. 31 31 32 32 33 -== Sub-paragraph==33 +== How to download event, station, instrument response == 34 34 35 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 36 36 37 -=== Sub-sub paragraph === 36 +{{code language="python"}} 37 +import obspy 38 +from obspy.clients.fdsn import Client 38 38 39 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 40 +# Use AusPass client for station, waveform, and earthquake information 41 +client = Client("AUSPASS") 40 40 41 41 44 +# Download station information for AUMTC station in S1 network at the response level 45 +inv = client.get_stations(network="S1", station="AUMTC", location="*", 46 + channel="*", level="response") 47 + 48 +# Inventory metadata is stored in a Inventory > Network > Station > Channel hierarchy 49 + 50 +print(inv) #inventory level 51 + 52 +print(inv[0]) # network level (the first network in the inventory) 53 + 54 +print(inv[0][0]) # station level (the first station of the first network in the inventory) 55 + 56 +print(inv[0][0][0]) # channel level (the first channel of the first station of the first network in the inventoy) 57 + 58 +# you can also select items directly 59 + 60 +print(inv.select(station='AUMTC',channel='HHZ')[0][0][0]) 61 + 62 +# instrument response is attached to a channel object 63 + 64 +response = inv.select(station='AUMTC',channel='HHZ')[0][0][0].response 65 +{{/code}} 66 + 42 42 = Waveform Data = 43 43 44 -Waveform data (e.g. the actual seismic data) can be accessed (link)or viaobspy's get_waveforms(link)tool. It can also be accessed via various tools such as seed-vault, pyweed, etc (add links).69 +Waveform data (e.g. the actual seismic data) can be accessed [[directly>>https://auspass.edu.au/fdsnws/dataselect/1/builder]] or via [[ObsPy's get_waveforms>>https://docs.obspy.org/packages/autogen/obspy.clients.fdsn.client.Client.get_waveforms.html]] code. It can also be accessed via various tools such as seed-vault, pyweed, etc (add links). 45 45 46 -== Howto downloadwaveformdata ==71 +== Downloading and Storing data == 47 47 73 +=== How to download waveform data === 74 + 48 48 {{code language="python"}} 49 49 from obspy import UTCDateTime 50 50 from obspy.clients.fdsn import Client ... ... @@ -66,9 +66,75 @@ 66 66 print("Downloaded and saved the MiniSEED file.") 67 67 {{/code}} 68 68 69 -== How to removeinstrumentresponse==96 +=== How to download a LOT of waveform data === 70 70 71 71 {{code language="python"}} 99 +from obspy import UTCDateTime 100 +from obspy.clients.fdsn import Client 101 +import datetime 102 + 103 +# Initialize client and set parameters 104 +client = Client("IRIS") 105 +start_date = UTCDateTime("2023-07-01") 106 +end_date = UTCDateTime("2023-07-02") 107 +network = "S1" 108 +station = "AUMTS" 109 +channel = "BHZ" 110 + 111 +# Loop to download data one day at a time 112 +while start_date <= end_date: 113 + next_date = start_date + datetime.timedelta(days=1) 114 + try: 115 + st = client.get_waveforms(network, station, "*", channel, start_date, next_date) 116 + st.write(f"{start_date.date}.mseed", format="MSEED") 117 + except: 118 + print(f"Failed for {start_date} to {next_date}") 119 + start_date = next_date 120 +{{/code}} 121 + 122 +=== How to store and archive waveform data in SeisComP Data Structure (SDS) === 123 + 124 +{{code language="python"}} 125 +import os 126 +from obspy import UTCDateTime, read 127 +from obspy.clients.fdsn import Client 128 + 129 +# Initialize the client 130 +client = Client("AUSPASS") # Replace with the correct client endpoint if different 131 + 132 +# Define event time and time window 133 +event_time = UTCDateTime("2021-09-21T23:15:53") 134 +starttime = event_time - 600 # 10 minutes before the event 135 +endtime = event_time + 1800 # 30 minutes after the event 136 + 137 +# Download the waveform data 138 +st = client.get_waveforms(network="S1", station="AUMTS", location="*", channel="*", starttime=starttime, endtime=endtime) 139 + 140 +# Create SDS structure: ROOT/YEAR/NET/STA/CHAN.TYPE/NET.STA.LOC.CHAN.YEAR.DAY 141 +sds_root = "." # Replace with your desired directory 142 + 143 +for tr in st: 144 + net = tr.stats.network 145 + sta = tr.stats.station 146 + loc = tr.stats.location 147 + chan = tr.stats.channel 148 + year = str(tr.stats.starttime.year) 149 + jday = str(tr.stats.starttime.julday).zfill(3) 150 + 151 + sds_path = os.path.join(sds_root, year, net, sta, f"{chan}.D", f"{net}.{sta}.{loc}.{chan}.{year}.{jday}") 152 + 153 + # Create directories if they don't exist 154 + os.makedirs(os.path.dirname(sds_path), exist_ok=True) 155 + 156 + # Save the trace as a MiniSEED file 157 + tr.write(sds_path, format="MSEED") 158 +{{/code}} 159 + 160 +== Common Data Operations == 161 + 162 +=== How to remove instrument response === 163 + 164 +{{code language="python"}} 72 72 from obspy import read 73 73 from obspy.core.util import AttribDict 74 74 ... ... @@ -90,7 +90,7 @@ 90 90 st.write("Woodspoint_2021_corrected.mseed", format="MSEED") 91 91 {{/code}} 92 92 93 -== How to apply a bandpass filter == 186 +=== How to apply a bandpass filter === 94 94 95 95 {{code language="python"}} 96 96 from obspy import read ... ... @@ -110,7 +110,7 @@ 110 110 st.write("Woodspoint_2021_filtered.mseed", format="MSEED") 111 111 {{/code}} 112 112 113 -== How to slice a waveform == 206 +=== How to slice a waveform === 114 114 115 115 {{code language="python"}} 116 116 from obspy import read, UTCDateTime, Stream # Importing Stream here ... ... @@ -132,7 +132,7 @@ 132 132 sliced_st.write("Woodspoint_2021_filtered_sliced.mseed", format="MSEED") 133 133 {{/code}} 134 134 135 -== How to save a waveform == 228 +=== How to save a waveform === 136 136 137 137 {{code language="python"}} 138 138 # Save the sliced file as MiniSEED ... ... @@ -142,7 +142,7 @@ 142 142 sliced_st.write("Woodspoint_2021_filtered_sliced.sac", format="SAC") 143 143 {{/code}} 144 144 145 -== How to convert mini seedtosac==238 +=== How to convert miniSEED to SAC === 146 146 147 147 {{code language="python"}} 148 148 from obspy import read ... ... @@ -160,6 +160,7 @@ 160 160 161 161 = Earthquake Data = 162 162 256 +Earthquake data can be accessed [[directly>>https://auspass.edu.au/fdsnws/event/1/builder]] or via [[ObsPy's get_events>>https://docs.obspy.org/packages/autogen/obspy.clients.fdsn.client.Client.get_events.html]] code 163 163 164 164 == How to download an Earthquake Catalog == 165 165