As a student at the Vrije Universiteit Amsterdam I’m currently working on a master’s project related to the induced earthquakes in the Groningen area, the Netherlands as a result of the exploration of gas. My aim of the research is to compare seismic data from various institutions to find out how comparable their results with different methods are (accelerometers versus tiltmeters, groundsensors versus buildingsensors).
One of these above mentioned institutions is KNMI, which provides its seismic data is miniSEED format. An employee of KNMI recommended to use the ObsPy package to process and visualize the seismic data provided by their accelerometers. This ObsPy package and tutorial are really straight forward and understanding, however I try to correct the data expressed by ‘counts’ to acceleration or velocity. The KNMI employee provided me with the FSDN response information and forwarded me to one of the tutorials, but he mentioned he did not have the time to explain everything in detail… But nor I or my supervisor can figure it out.
My question is: could you please help me figure out what I should precisely do in Python to correct the seismic data with the response of the sensor with the use of the mSEED and FSDN data? I attached a mSEED example of a moment in history from sensor 404 and a link in which the FSDN information is provided: http://rdsa.knmi.nl/fdsnws/station/1/query?network=NL&station=G404&nodata=404&level=response
Thank you very much and I’m looking forward to your response!
from obspy import read, read_inventory
stream = read('G404.mseed)')
inventory = read_inventory('your_stations.xml') # you can also pass
the link in your mail as string
stream.remove_response(inventory)
Thank you very much for your reply and help! Great! I succeeded in using your part script! This resulted in the following graphs:
Eventhough I think this is the last step for me to reach the goal to have the acceleration as a function of time, however an acceleration with values in the order of 10^-16 is very little (seen at last figure). Do you think I missed a step or need to do other actions in order to get the results I want?
Thank you again and I’m looking forward to your reply!
You should really pay close attention to the documentation of
remove_response(), this is not a trivial one-size-fits all step.
First of all if you want to go to acceleration you have to specify it
(kwarg "output"). You should also probably use a "pre_filt" and check if
the water level choice is OK for you (this will have an even heavier
impact when going to acceleration). If you don't have a good idea what
those options should be set for you (main question is what frequencies
are you interested in), you should at least explore different settings
of "pre_filt" and "water_level" and check how they influence your results.
as Tobias hinted, ground-motion restitution through removal of the instrumental response is one of the most delicate tasks in seismic signal processing.
Obspy allows to perform the task, but you might really need some good signal processing and seismometry background to command the process.