#88 seismosizer GF store dynamic_timeseries returns empty trace

Open
opened 4 months ago by hvasbath · 7 comments

Current master branch.
Using the global_2s store source depth gridding 0:4:25km results in 24km having the last GF node(s). Requesting a source above 24km with multilinear interpolation returns empty trace which crashes then in:

  File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3555, in process
    nthreads):
  File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3013, in process_dynamic_timeseries
    seismogram, source, target)
  File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3449, in _post_process_dynamic
    padded_data[data.size:] = data[-1]
IndexError: index -1 is out of bounds for axis 0 with size 0


--- !pf.DCSource
lat: 32.31
lon: -115.39
north_shift: -8000.0
east_shift: -8368.052220909065
depth: 24880.697531460344
name: 201004042240A
time: 2010-04-04 22:41:09.194969
stf: !pf.HalfSinusoidSTF
  duration: 16.90116436186861
  anchor: -1.0
  exponent: 1
stf_mode: post
magnitude: 6.5864745351748075
strike: 306.9698383557465
dip: 56.621850370435226
rake: 35.55117734003202


--- !pyrocko.gf.targets.Target
lat: -21.2125
lon: -159.7733
depth: 0.0
quantity: displacement
codes: [IU, RAR, '0', Z]
elevation: 0.0
store_id: global_2s
interpolation: multilinear
tmin: 2010-04-04 22:51:43
tmax: 2010-04-04 22:53:13
azimuth: 0.0
dip: -90.0

Because of the many places where we could catch this we would need discuss it properly.

Current master branch. Using the global_2s store source depth gridding 0:4:25km results in 24km having the last GF node(s). Requesting a source above 24km with multilinear interpolation returns empty trace which crashes then in: ``` File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3555, in process nthreads): File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3013, in process_dynamic_timeseries seismogram, source, target) File "/usr/local/lib/python3.6/dist-packages/pyrocko/gf/seismosizer.py", line 3449, in _post_process_dynamic padded_data[data.size:] = data[-1] IndexError: index -1 is out of bounds for axis 0 with size 0 --- !pf.DCSource lat: 32.31 lon: -115.39 north_shift: -8000.0 east_shift: -8368.052220909065 depth: 24880.697531460344 name: 201004042240A time: 2010-04-04 22:41:09.194969 stf: !pf.HalfSinusoidSTF duration: 16.90116436186861 anchor: -1.0 exponent: 1 stf_mode: post magnitude: 6.5864745351748075 strike: 306.9698383557465 dip: 56.621850370435226 rake: 35.55117734003202 --- !pyrocko.gf.targets.Target lat: -21.2125 lon: -159.7733 depth: 0.0 quantity: displacement codes: [IU, RAR, '0', Z] elevation: 0.0 store_id: global_2s interpolation: multilinear tmin: 2010-04-04 22:51:43 tmax: 2010-04-04 22:53:13 azimuth: 0.0 dip: -90.0 ``` Because of the many places where we could catch this we would need discuss it properly.
emolch commented 4 months ago
Owner

The “official” global_2s store goes to 600 km source depth. If this is a derivative of this one, the correct and consistent source_depth_max should be given in the config.

The "official" `global_2s` store goes to 600 km source depth. If this is a derivative of this one, the correct and consistent `source_depth_max` should be given in the config.
asteinbe commented 4 months ago
Collaborator

Indeed, maybe you are working with the global_2s_25km derrivative store of global_2s?

Indeed, maybe you are working with the global_2s_25km derrivative store of global_2s?
hvasbath commented 4 months ago
Poster

Yes I am so still- the issue exists. Or should the user always himself check that the steps end cleanly at the max value? Then we should make at least a note somewhere, even I was not aware of that issue at all...

Yes I am so still- the issue exists. Or should the user always himself check that the steps end cleanly at the max value? Then we should make at least a note somewhere, even I was not aware of that issue at all...
emolch commented 4 months ago
Owner

We could check for consistecy when the database is opened.

We could check for consistecy when the database is opened.
asteinbe commented 4 months ago
Collaborator

I understand that ehe emphasis is on “multilinear interpolation” , nearest neighbour works down to 25 km in this case?

I understand that ehe emphasis is on "multilinear interpolation" , nearest neighbour works down to 25 km in this case?
emolch commented 4 months ago
Owner

I guess many stupid things can happen when source_depth_max is not the true maximum source depth in the store...

I guess many stupid things can happen when `source_depth_max` is not the true maximum source depth in the store...
hvasbath commented 3 months ago
Poster

Again this fell on someones feet today. I will try to propose a consistency check.

Again this fell on someones feet today. I will try to propose a consistency check.
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.