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
-
... ... @@ -4,8 +4,17 @@ 4 4 5 5 = [[How to Install ObsPy>>url:https://github.com/obspy/obspy/wiki#installation]] = 6 6 7 -= [[Seed-Vault>>https://github.com/AuScope/seed-vault]]=7 += FDSN Tools = 8 8 9 +(% class="wikigeneratedid" id="HSeed-Vault" %) 10 +[[Seed-Vault>>https://github.com/AuScope/seed-vault]] 11 + 12 +[[PyWeed>>https://github.com/iris-edu/pyweed]] 13 + 14 +[[ObsPy get_waveforms_bulk>>https://docs.obspy.org/packages/autogen/obspy.clients.fdsn.client.Client.get_waveforms_bulk.html]] 15 + 16 +[[IRISfetch.m>>https://ds.iris.edu/ds/nodes/dmc/software/downloads/irisfetch.m/]] 17 + 9 9 = Connecting to an FDSN Server = 10 10 11 11 == How to connect to AusPass with & without authenticated access == ... ... @@ -27,7 +27,7 @@ 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.39 +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 33 == How to download event, station, instrument response == ... ... @@ -43,9 +43,7 @@ 43 43 44 44 # Download station information for AUMTC station in S1 network at the response level 45 45 inv = client.get_stations(network="S1", station="AUMTC", location="*", 46 - channel="*", starttime=event_time - 60, 47 - endtime=event_time + 1000, level="response") 48 -print(inv) 55 + channel="*", level="response") 49 49 50 50 # Inventory metadata is stored in a Inventory > Network > Station > Channel hierarchy 51 51 ... ... @@ -66,18 +66,14 @@ 66 66 response = inv.select(station='AUMTC',channel='HHZ')[0][0][0].response 67 67 {{/code}} 68 68 69 - 70 -=== Sub-sub paragraph === 71 - 72 -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. 73 - 74 - 75 75 = Waveform Data = 76 76 77 -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).78 +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). 78 78 79 -== Howto downloadwaveformdata ==80 +== Downloading and Storing data == 80 80 82 +=== How to download waveform data === 83 + 81 81 {{code language="python"}} 82 82 from obspy import UTCDateTime 83 83 from obspy.clients.fdsn import Client ... ... @@ -99,9 +99,75 @@ 99 99 print("Downloaded and saved the MiniSEED file.") 100 100 {{/code}} 101 101 102 -== How to removeinstrumentresponse==105 +=== How to download a LOT of waveform data === 103 103 104 104 {{code language="python"}} 108 +from obspy import UTCDateTime 109 +from obspy.clients.fdsn import Client 110 +import datetime 111 + 112 +# Initialize client and set parameters 113 +client = Client("IRIS") 114 +start_date = UTCDateTime("2023-07-01") 115 +end_date = UTCDateTime("2023-07-02") 116 +network = "S1" 117 +station = "AUMTS" 118 +channel = "BHZ" 119 + 120 +# Loop to download data one day at a time 121 +while start_date <= end_date: 122 + next_date = start_date + datetime.timedelta(days=1) 123 + try: 124 + st = client.get_waveforms(network, station, "*", channel, start_date, next_date) 125 + st.write(f"{start_date.date}.mseed", format="MSEED") 126 + except: 127 + print(f"Failed for {start_date} to {next_date}") 128 + start_date = next_date 129 +{{/code}} 130 + 131 +=== How to store and archive waveform data in SeisComP Data Structure (SDS) === 132 + 133 +{{code language="python"}} 134 +import os 135 +from obspy import UTCDateTime, read 136 +from obspy.clients.fdsn import Client 137 + 138 +# Initialize the client 139 +client = Client("AUSPASS") # Replace with the correct client endpoint if different 140 + 141 +# Define event time and time window 142 +event_time = UTCDateTime("2021-09-21T23:15:53") 143 +starttime = event_time - 600 # 10 minutes before the event 144 +endtime = event_time + 1800 # 30 minutes after the event 145 + 146 +# Download the waveform data 147 +st = client.get_waveforms(network="S1", station="AUMTS", location="*", channel="*", starttime=starttime, endtime=endtime) 148 + 149 +# Create SDS structure: ROOT/YEAR/NET/STA/CHAN.TYPE/NET.STA.LOC.CHAN.YEAR.DAY 150 +sds_root = "." # Replace with your desired directory 151 + 152 +for tr in st: 153 + net = tr.stats.network 154 + sta = tr.stats.station 155 + loc = tr.stats.location 156 + chan = tr.stats.channel 157 + year = str(tr.stats.starttime.year) 158 + jday = str(tr.stats.starttime.julday).zfill(3) 159 + 160 + sds_path = os.path.join(sds_root, year, net, sta, f"{chan}.D", f"{net}.{sta}.{loc}.{chan}.{year}.{jday}") 161 + 162 + # Create directories if they don't exist 163 + os.makedirs(os.path.dirname(sds_path), exist_ok=True) 164 + 165 + # Save the trace as a MiniSEED file 166 + tr.write(sds_path, format="MSEED") 167 +{{/code}} 168 + 169 +== Common Data Operations == 170 + 171 +=== How to remove instrument response === 172 + 173 +{{code language="python"}} 105 105 from obspy import read 106 106 from obspy.core.util import AttribDict 107 107 ... ... @@ -123,7 +123,7 @@ 123 123 st.write("Woodspoint_2021_corrected.mseed", format="MSEED") 124 124 {{/code}} 125 125 126 -== How to apply a bandpass filter == 195 +=== How to apply a bandpass filter === 127 127 128 128 {{code language="python"}} 129 129 from obspy import read ... ... @@ -143,7 +143,7 @@ 143 143 st.write("Woodspoint_2021_filtered.mseed", format="MSEED") 144 144 {{/code}} 145 145 146 -== How to slice a waveform == 215 +=== How to slice a waveform === 147 147 148 148 {{code language="python"}} 149 149 from obspy import read, UTCDateTime, Stream # Importing Stream here ... ... @@ -165,7 +165,7 @@ 165 165 sliced_st.write("Woodspoint_2021_filtered_sliced.mseed", format="MSEED") 166 166 {{/code}} 167 167 168 -== How to save a waveform == 237 +=== How to save a waveform === 169 169 170 170 {{code language="python"}} 171 171 # Save the sliced file as MiniSEED ... ... @@ -175,7 +175,7 @@ 175 175 sliced_st.write("Woodspoint_2021_filtered_sliced.sac", format="SAC") 176 176 {{/code}} 177 177 178 -== How to convert mini seedtosac==247 +=== How to convert miniSEED to SAC === 179 179 180 180 {{code language="python"}} 181 181 from obspy import read ... ... @@ -190,9 +190,9 @@ 190 190 tr.write("Woodspoint_2021.sac", format="SAC") 191 191 {{/code}} 192 192 193 - 194 194 = Earthquake Data = 195 195 264 +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 196 196 197 197 == How to download an Earthquake Catalog == 198 198 ... ... @@ -274,3 +274,4 @@ 274 274 catalog.plot(projection="local", title="Australia Earthquakes", resolution="i") 275 275 {{/code}} 276 276 346 +