Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 04 00:28
    yjtangcug starred obspy/obspy
  • Dec 03 15:11
    wjie0309 starred obspy/obspy
  • Dec 03 08:18
    kaspervanwijk commented #3070
  • Dec 03 06:56
    robinthibaut starred obspy/obspy
  • Dec 02 16:24
    timronan commented #2864
  • Dec 02 15:53
    heavelock closed #2761
  • Dec 02 15:53
    heavelock commented #2761
  • Dec 02 14:24
    megies commented #2987
  • Dec 02 14:21
    megies milestoned #3231
  • Dec 02 14:21
    megies unlabeled #3231
  • Dec 02 14:21
    megies labeled #3231
  • Dec 02 14:21
    megies labeled #3231
  • Dec 02 14:20
    megies synchronize #3232
  • Dec 02 14:20

    megies on seedlink_get_info

    seedlink: add regression test f… (compare)

  • Dec 02 14:19
    megies unlabeled #3232
  • Dec 02 14:19
    megies edited #3232
  • Dec 02 14:19
    megies edited #3232
  • Dec 02 14:19
    megies edited #3232
  • Dec 02 14:19
    megies synchronize #3232
  • Dec 02 14:19

    megies on seedlink_get_info

    changelog seedlink: add regression test f… (compare)

Ch_song
@Chsong98255117_twitter
Hello everyone, I don't how to read the waveform in this format with the obspy. Hope to get help.
i dont know this css file format but it has some files that have .w as ending maybe it is something like that, not sure
Ch_song
@Chsong98255117_twitter
Great thanks.
Tobias Megies
@megies
CSS seems to usually have a file that lists contents of other files though.. not sure if its easy to workaround that file missing
usually its discouraged to use private, low level reader functions but you can see it anything of these can help you
Ch_song
@Chsong98255117_twitter
Yes, Thanks for your selfless help.
Ch_song
@Chsong98255117_twitter
Hello everyone. Do you know how to calculate the site amplifying factor and quality factor?
Dan Burk
@tychoaussie

Hi everyone,
I have been experimenting with the PPSD spectral_estimation.py code, adding some colorization to the various plot overlays such as the mean, mode, and percentile graphs. I want to add a little bit of optimization to the PPSD plot, as the overlays default to black. How would I go about becoming a first-time contributor to the project ?

!(https://photos.app.goo.gl/sC4ZcdVWrm8vBoeH7)

anirudhakumar619
@anirudhakumar619
Hello all,
Something weird happens when I try to trim a trace (both with trim and slide commands). The start-time of the trimmed output is like 4 milliseconds ahead of the start-time that I provide in the code, irrespective of the time I give (unless I give an integer value in second+ say 4 millisecond). I kinda need to trim different stations' data all at the same point in time to run a cross-correlation code on it... but this glitch is keeping me from it.
I tried playing around with resampling, but that doesn't work.
Anybody else face such issues?? How did you solve it??
Tobias Megies
@megies
@tychoaussie you can just open a pull request on github with your version of the code, let us know if u need more help how to go about it. Since that is a feature change you should base your work off of master branch
@anirudhakumar619 what is your sampling rate? Data will always be cut to one of your samples, depending on setting of nearest_sample that sample might be left or right of the given time. If you need to have the same time and the samples dont align you could resample your data to have the exact same sampling points, but personally I would not do that and rather adjust the timing in the cross correlation function that you get as output
https://docs.obspy.org/master/packages/autogen/obspy.core.trace.Trace.trim.html?highlight=nearest_sample
Joseph Rapula Maritinkole
@maritinkolej
Hello everyone.
I am an obspy beginner. I want to get the events catalog from ISC, including arrival information and pick-trace information, and then use this information to download the corresponding waveform from IRIS. (I am labeling the dataset for deep learning training).
I am encountering some problems here,
from obspy.clients.fdsn import Client
from obspy import UTCDateTime
-->client = Client("ISC")
-->t0 = UTCDateTime(2020, 1, 2)
-->t1 = UTCDateTime(2020, 1, 4)
-->cat = client.get_events(t0, t1, minlatitude=-30, maxlatitude=-16,
minlongitude=20, maxlongitude=28, includearrivals=True)
-->print(cat.str(print_all=True))
-->print(cat.events[0].picks[3])
The output I am getting has an error in the Network code. WaveformStreamID
network_code: 'IR'
station_code: 'KHWEE'
channel_code: ''
location_code: '--'
The network is supposed to be BX here. Now I cannot get waveforms from IRIS, I will be happy to discuss this further because I am getting lots of errors. Maybe because I am a newbie.
Tobias Megies
@megies
Maybe you should talk to ISC why they use this alternate code for those stations. I am guessing you are trying to download data based on the WaveformStreamID of the picks in the event files in an automated way? That's a good approach and you can simply fix the network code on the fly in your program, something like..
from obspy.clients.fdsn import Client
client = Client('IRIS')
inv = client.get_stations(network='BX', level='station')
sta_codes_bx = [sta.code for net in inv for sta in net]

for pick in event.picks:
    is_IR = pick.waveform_id.network_code == 'IR'
    should_be_BX = pick.waveform_id.station_code in sta_codes_bx
    if is_IR and should_be_BX:
        pick.waveform_id.network_code = 'BX'
    client.get_waveforms(....)
Roberto Guardo
@RobertoGuardo

Hi everyone,
If I use the command scan inside a script.py it raises an error like this:
PermissionError: [WinError 5] Access denied: '/$Recycle.Bin\S-1-5-18'
on Ubuntu the error is almost the same.

What I do is the following:
from obspy.imaging.scripts.scan import scan
scan("path_to_traces","output_path",verbose=True)

Trying to emulate what I do from the shell:
obspy-scan input_trace_path -v -o outputTracePath

From the shell I do not have any problem, from the script it doesn't work.
Any clue?
Thanks

6 replies
ElhamMo
@Elham-Moslemi
Hi all,
I want to make a recod_section. According to the page obspy.core.stream.Stream.plot in the "section" part, I must define distance or event coordinates to plot section type. Is there a documentation or example code you would know that can help me how do I add them in the sac header?
3 replies
ankara17
@ankara17
index.jpeg
Hai, how to plot psd in 3 components like that?
6 replies
ankara17
@ankara17
@megies @krischer
Adebayo Ojo
@boyoforex

Hello all,

I need help with instrument response removal using poles and zeros. All the information I have about the seismometer is stated here (https://www.gfz-potsdam.de/en/section/geophysical-imaging/infrastructure/geophysical-instrument-pool-potsdam-gipp/pool-components/poles-and-zeros/3d-geophone) and below:

No Damping Resistor
Gs = 28.8 V/(m/s); Ds = 0.56; fs = 4.5 Hz

2 Zeros
z1 = 0
z2 = 0

2 Poles
p1 = -15.88 23.43i
p2 = -15.88 -23.43i

Normalisation Factor
a = 1.0

I can see the code example using PAZ dictionary here: https://docs.obspy.org/tutorial/code_snippets/seismometer_correction_simulation.html#using-a-paz-dictionary but not sure which of these parameters correspond to the ones used in the example.

There is also a response file available here: https://www.gfz-potsdam.de/fileadmin/gfz/sec22/pdf_doc/GIPP/RESP.XX.NS532..SLZ.HG6.375.100000.4_5B.28_8.txt and also on IRIS NRL: http://ds.iris.edu/NRL/sensors/hgs/RESP.XX.NS532..SLZ.HG6.375.9090.4_5B.27_7 but didn't work with ObsPy.

I kept getting "ValueError: No matching response information found" error when I use these files (after modifying the channel name, station name and start and end dates).

Kindly provide me some guidance on using the parameters or response file successfully.

Thanks!

6 replies
shrrylee
@shrrylee
Hello all, I want to read a MSD file,Why is the running result displayed:“known blockette length for type 1002”“msr_unpack(GD_TST1_00_BHN_D): Unknown blockette length for type 1002”....Looking forward to the help of kind people
1 reply
image.png
vpdmtb
@vpdmtb
ProblemObspy_Waterlevel.pdf
Hello the Obspy community ! I don't know if it is the right place for that but I think we found a bug with the instrumental correction tool. The bug occur only with low waterlevel (<60 dB) and when a change from velocity to acceleration or inversely is requested. I have prepare a few plot to explain it more in detail...
tyt
@seismoprocess
Hello, I am able to write sac files to SEGY format, however while writing to SEGY network,station,channel and location information are getting lost. Can you please suggest some solution or how can be the header information be inserted in SEGY header.Thanks
6 replies
tyt
@seismoprocess
@megies @ThomasLecocq @calum-chamberlain @krischer , i am looking forward to hearing from you regarding my query.Thanks.
tyt
@seismoprocess
Hii, I need to see the real time recording on my computer screen, I am not finding any links to it on obspy tutorial.can you please suggest some example links...Thanks in advance.
2 replies
Munkhsaikhan Amarsanaa
@BoDoNgAhAi
Hello Obspy developers. I would like to know if there is an easy way in Obspy to remove instrument response using PAZ as the SAC program do. For example: read SAC file and read its paz then SAC.remove_response(paz, 'ACC'). If there is not it is possible to develop it in Obspy? I have a ton of SAC data with its paz. Thank you.
HZeyen
@HZeyen
Hi, I am having problems reading seg2 files if the keyword 'NOTE' exists but has no contents behind. I would propose to change function "parse_free_form" near the end and add a try-except structure around line 327 in file seg2.py:
4 replies
        if key == 'NOTE':
            try:
                value = [cleanup_and_decode_string(line)
                         for line in value.split(self.line_terminator)
                         if line]
            except:
                value = ''
        else:
            value = cleanup_and_decode_string(value)
ankara17
@ankara17
Hello all, how to know availability percentage of data waveform from observation data?
sbrent88
@sbrent88
Hello! I am trying to use NLLOC but my events catalog is in a pandas DataFrame. Is there a way to convert it to the NLLOC format?
3 replies
MarcoEsposito890
@MarcoEsposito890
Hello, can someone explain to me how does the remove_sensitivity() function work? It just multiplies by the sensitivity value and gives me an output in m/s^2 (I have the sensitivity for channels that use accelerometers)?
22 replies
Munkhsaikhan Amarsanaa
@BoDoNgAhAi
Hello everyone. Does anyone know a seismology book related to python (explained, analyse, etc.)? I am sorry if maybe this is not a proper question for this chat group.
2 replies
Lalit Arya
@SeismoLalit_twitter
Hi everyone, I am new to obspy. one of my station network name is missing in the headers. How can I place it throughout the data files? Data is in mseed format.

Screenshot 2022-10-13 at 12.48.45 PM.png

Can I save the network information in individual file and write it to all files?

3 replies
LessandroValente
@LessandroValente

Hello, I'm trying to process seismic data from MASW using the SWPROCESS library, it intrinsically uses some obspy libraries. Following the tutorial on the page, which loads a series of .dat data in SEG2 format separated by offset, I am not successful in inverting my data. I've already tried to use my data in SEG2, SEGY and SU format and still no success. With that, my last attempt was to try with the SEG2 format named the same as the one in the tutorial. However, I get the following error:

# Path (relative or full) to a folder containing the data files. Data files must be in either the SEG2 and/or SU data format.
path_to_folder = "data/wghs/"

set0 = [f"{path_to_folder}{x}.dat" for x in range(6, 7)]
fnames_set = [set0]
print(fnames_set)
for set_number, fnames in enumerate(fnames_set):
    print(f"  set{set_number} includes {len(fnames)} files from {fnames[0]} to {fnames[-1]}")

names = None

workflow = "time-domain"

transform = "fdbf"

fmin, fmax = 3, 100

vmin, vmax, nvel, vspace = 100, 500, 400, "linear"

fdbf_weighting = "sqrt"

fdbf_steering = "cylindrical"

snr = True

noise_begin, noise_end =  -0.5, 0.
signal_begin, signal_end = 0., 0.5

%matplotlib qt5
settings = swprocess.Masw.create_settings_dict(workflow=workflow,
                                               trim=trim, trim_begin=trim_begin, trim_end=trim_end,
                                               mute=mute, method=method, window_kwargs=window_kwargs,
                                               transform=transform, fmin=fmin, fmax=fmax, pad=pad, df=df,
                                               vmin=vmin, vmax=vmax, nvel=nvel, vspace=vspace,
                                               weighting=fdbf_weighting, steering=fdbf_steering,
                                               snr=snr, noise_begin=noise_begin, noise_end=noise_end,
                                               signal_begin=signal_begin, signal_end=signal_end,
                                               pad_snr = pad_snr, df_snr=df_snr)


start = time.perf_counter()
wavefieldtransforms = []

for fnames in fnames_set: 
    wavefieldtransforms.append(swprocess.Masw.run(fnames=fnames, settings=settings))
    print(wavefieldtransforms)

end = time.perf_counter()
print(f"Elapsed Time (s): {round(end-start,2)}")

From that I get the following error:
Captura de tela de 2022-10-13 12-31-49.png

Could anyone help me to solve this problem? I would be extremely grateful!

2 replies
This message was deleted
tyt
@seismoprocess
hii, I have station lat lon, event depth and epicentral distance in my hand, I want to calculate event lat lon using obspy.Can you please suggest the proper solution for the same.Thanks.
8 replies
fontiela
@fontiela
It’s a side topic, however I’m curious to know if Obspy runs smooth in Mac OS Ventura. Any problem related?
1 reply
ankara17
@ankara17
Hai @krischer @megies, how to calculate sn ratio in obspy?
walid06seismo
@walid06seismo:matrix.org
[m]

I am trying to analyse daily seismic recordings near a river to capture signals associated with river processes. It is new for me, and not sure if I am doing things right. I cut the signal in 6 hours windows and tried to plot spectrogram/PSD (not sure of the difference between Spectro and PSD).
Here is the basic python script I used.

import numpy as np
import matplotlib.pyplot as plt
import obspy
from obspy import read
st = read("WU.JSP2.00.ELZ.D.2022.231.000002.SAC_6h")
print(st)
tr=st[0]
print(tr.stats)
sps =int(st[0].stats.sampling_rate)
st.plot()
fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.75, 0.7, 0.2]) #[left bottom width height]
ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.60], sharex=ax1)
ax3 = fig.add_axes([0.83, 0.1, 0.03, 0.6])
t = np.arange(tr.stats.npts) / tr.stats.sampling_rate
ax1.plot(t, tr.copy().data, 'k')
tr.spectrogram(wlen =2sps, per_lap=0.95, dbscale=True, log=True,cmap="rainbow")
st = read("WU.JSP2.00.ELZ.D.2022.231.000002.SAC_12h")
print(st)
tr=st[0]
print(tr.stats)
sps =int(st[0].stats.sampling_rate)
st.plot()
fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.75, 0.7, 0.2]) #[left bottom width height]
ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.60], sharex=ax1)
ax3 = fig.add_axes([0.83, 0.1, 0.03, 0.6])
t = np.arange(tr.stats.npts) / tr.stats.sampling_rate
ax1.plot(t, tr.copy().data, 'k')
tr.spectrogram(wlen =2
sps, per_lap=0.95, dbscale=True, log=True,cmap="rainbow")

I don't know how to include the colour scale too. Any advice will be great.

Thx.

Calum Chamberlain
@calum-chamberlain
@ankara17 and @walid06seismo:matrix.org - these questions would be better on the obspy discourse forum: https://discourse.obspy.org/
walid06seismo
@walid06seismo:matrix.org
[m]
thx @ankara17
petrrr
@petrrr
Dear community!
petrrr
@petrrr

We would like to inform you about a public beta release of a new FDSNWS station service at the Italian EIDA node (@INGV). This new services implementation should remove some important performance limitation of the currently used version. The service is available at the following URL: https://webservices.ingv.it/beta/fdsnws/station/1/.

We also would very much appreciate any feedback, bug reports or other comments, in order to catch any issue before the production release occurs which is planned within the next few weeks. Thanks!

1 reply