You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ ls mseed/
GE.CSS..BHE__20200804T150718Z__20200804T151418Z.mseed GE.CSS..BLZ__20200804T150718Z__20200804T151418Z.mseed
GE.CSS..BHN__20200804T150718Z__20200804T151418Z.mseed GE.CSS..SHE__20200804T150718Z__20200804T151418Z.mseed
GE.CSS..BHZ__20200804T150718Z__20200804T151418Z.mseed GE.CSS..SHN__20200804T150718Z__20200804T151418Z.mseed
GE.CSS..BLE__20200804T150718Z__20200804T151418Z.mseed GE.CSS..SHZ__20200804T150718Z__20200804T151418Z.mseed
GE.CSS..BLN__20200804T150718Z__20200804T151418Z.mseed
$ ls stations/
GE.CSS.xml
Descriptions of the bug
I checked this station by http://ds.iris.edu/mda/GE/CSS/. GE.CSS has some instruments, e.g., HL?, HH?, BL?, BH?, SH?.
Based on the second test, we know GE.CSS has data for BL?, BL?, SH?. But if we indicate channel priorities as in the first test, we may miss the data. For example, if channel_priorities=('HH[ZNE12]', 'HL[ZNE12]', 'BH[ZNE12]', 'BL[ZNE12]'),
the client will firstly try to find if the station has the HH? instrument. Unluckily, GE.CSS has this instrument although this instrument does not have data at that time. Therefore, we miss the data at BH?.
Instead, if I put 'BH[ZNE12]' or 'BL[ZNE12]' at the first position in channel_priorities, we can download data at 'BH[ZNE12]' or 'BL[ZNE12]'.
Possible reason
I guess the bug may be caused by how ObsPy determines if an instrument has seismic data. When we use set channel_priorities to be ('HH[ZNE12]', 'HL[ZNE12]', 'BH[ZNE12]', 'BL[ZNE12]'), the client found GE.CSS has the instrument HH[ZNE12] and skip the left channels. Unluckily, this instrument has no data, so we finally miss seismic data at 'BH[ZNE12]' or 'BL[ZNE12]'.
If the client could go on to the next channel if the previous channel does not have data, the bug could be resolved. In other words, we should check waveform data availability instead of instrument availability, because the instrument may exist but has no data at that time. However, waveform data availability may take more time than instrument availability.
Other notes
I think the same thing could be applied to location_priorities.
Version information
ObsPy version, Python version and Platform (Windows, OSX, Linux ...) 1.2.2
How did you install ObsPy and Python (pip, anaconda, from source ...) anaconda
The text was updated successfully, but these errors were encountered:
…issing data
currently (at least when only "weak" availability data is available),
any channels that are in principle available according to metadata
overrule all other channels that come later in the channel_priority
listing, e.g. if the the first item in channel_priority successfully
matches a channel, all other channels are ignored, even if the former
selected channel actually yields "No data available at server" while
some other channels actually do have data but are later in the
channel_priority (see #2794)
Currently the only way to fix this is to first try and download *all*
channels' data that match any of the given channel_priority wildards,
and then at the very end it is evaluated if some higher priority data
was downloaded and lower priority data get deleted again.
This certainly is not ideal, since it might blow up the amount of data
downloaded and subsequently discarded, but it is likely the lesser evil
compared to losing whole stations from the final download result
See #3188 (comment), I'll postpone this for now as the current fix is less than ideal and to properly tackle this would mean a major refactoring of the code
Codes
I used the following code to download seismic waveforms at station GE.CSS from GFZ data center.
No data is downloaded:
If I commented
channel_priorities
, and directly indicatedchannel
to be"HH*,HL*,BH*,BL*,SH*"
in restrictions:Data can be downloaded:
Descriptions of the bug
I checked this station by http://ds.iris.edu/mda/GE/CSS/. GE.CSS has some instruments, e.g.,
HL?
,HH?
,BL?
,BH?
,SH?
.Based on the second test, we know GE.CSS has data for
BL?
,BL?
,SH?
. But if we indicate channel priorities as in the first test, we may miss the data. For example, ifchannel_priorities=('HH[ZNE12]', 'HL[ZNE12]', 'BH[ZNE12]', 'BL[ZNE12]')
,the client will firstly try to find if the station has the
HH?
instrument. Unluckily, GE.CSS has this instrument although this instrument does not have data at that time. Therefore, we miss the data atBH?
.Instead, if I put
'BH[ZNE12]'
or'BL[ZNE12]'
at the first position inchannel_priorities
, we can download data at'BH[ZNE12]'
or'BL[ZNE12]'
.Possible reason
I guess the bug may be caused by how ObsPy determines if an instrument has seismic data. When we use set
channel_priorities
to be('HH[ZNE12]', 'HL[ZNE12]', 'BH[ZNE12]', 'BL[ZNE12]')
, the client found GE.CSS has the instrumentHH[ZNE12]
and skip the left channels. Unluckily, this instrument has no data, so we finally miss seismic data at'BH[ZNE12]'
or'BL[ZNE12]'
.If the client could go on to the next channel if the previous channel does not have data, the bug could be resolved. In other words, we should check waveform data availability instead of instrument availability, because the instrument may exist but has no data at that time. However, waveform data availability may take more time than instrument availability.
Other notes
I think the same thing could be applied to
location_priorities
.Version information
The text was updated successfully, but these errors were encountered: