Closed mmesim closed 2 years ago
@mmesim, thanks for reporting.
That probably means that there are not 10 picks available, which seems weird.
Without having checked the reproducer's configuration yet, I guess that this might be an issue when trying to avoid to associate a single phase to be associated multiple times with a sensor location. This is required in certain configuration scenarios, e.g. given the following detector configuration:
{
"detectorId": "detector-01",
"createArrivals": true,
"originId": "originId",
"templatePhase": "Sg",
"templateWaveformStart": -0.25,
"templateWaveformEnd": 2,
"streams": [
{
"templateId": "template-01",
"waveformId": "CH.GRIMS..HHN"
},
{
"templateId": "template-02",
"waveformId": "CH.GRIMS..HHE"
}
]
}
I.e. in the example above, in order to avoid to associate an Arrival
with phase Sg
twice (regarding the sensor location CH.GRIMS..
) scdetect-cc
drops one of the arrivals including the respective pick. This is not ideal, however, AFAIU, in the SeisComP datamodel the relationship Pick <-> Origin
can be established only by means of an Arrival
.
Do you have a better idea how to circumvent this issue?
What I do not understand is why I didn't face this problem with the other testing datasets.
If what you mention above is the case, then it should have happened before. Still thinking about it...
What I do not understand is why I didn't face this problem with the other testing datasets.
I'll have a look into the reproducer and come back.
If what you mention above is the case, then it should have happened before. Still thinking about it...
"minimumArrivals"
configration parameter, as well?scevent
logs previously, too?You mean, while using the "minimumArrivals" configration parameter, as well?
Yes.
Did you check scevent logs previously, too?
Yes
Ok. So when trying to initialize detector-01
with
$ mkdir data.sds && \
scart -I data.mseed data.sds && \
scdetect-cc --templates-prepare --debug --offline --playback --ep=detections.scml --templates-json=$(realpath templates.json) --inventory-db="file://$(realpath inventory.scml)" --record-url="sdsarchive://$(realpath data.sds)" --event-db="file://$(realpath catalog.scml)" --config-db="file://$(realpath config.scml)" --amplitudes-force=0
I obtain the following logs:
The warnings
14:36:46 [warning] [CH.STLM2..HGN (CH.STLM2..HGN)] sensor location not found in inventory for time: 2020-10-25T19:38:48.784752Z. Skipping template waveform processor initialization.
14:36:46 [warning] [CH.STLM2..HGZ (CH.STLM2..HGZ)] sensor location not found in inventory for time: 2020-10-25T19:38:37.967674Z. Skipping template waveform processor initialization.
14:36:46 [warning] [8D.EML0..EHN (8D.EML0..EHN)] sensor location not found in inventory for time: 2020-10-25T19:38:48.784752Z. Skipping template waveform processor initialization.
14:36:46 [warning] [8D.EML0..EHE (8D.EML0..EHE)] sensor location not found in inventory for time: 2020-10-25T19:38:48.784752Z. Skipping template waveform processor initialization.
14:36:46 [warning] [CH.STLM2..HGE (CH.STLM2..HGE)] sensor location not found in inventory for time: 2020-10-25T19:38:48.784752Z. Skipping template waveform processor initialization.
14:36:46 [warning] [8D.EML0..EHZ (8D.EML0..EHZ)] sensor location not found in inventory for time: 2020-10-25T19:38:37.967674Z. Skipping template waveform processor initialization.
indicate that the inventory metadata was not available for the corresponding streams and time window. The detector is initialized, anyway, however, just with 6 streams. Due to the behaviour described previously (i.e. in https://github.com/damb/scdetect/issues/101#issuecomment-1073745094), only 4 picks will be associated in case of a detection.
Does this help?
I just realized that there was a typo. Instead of writing ELM0
I wrote EML0
. :face_exhaling:
Also, I do not know why STLM2.HG?
is not in the inventory. Perhaps I did not include acc? I don't remember.
To conclude, in the case that scdetect-cc
will not be able to identify 10 phases, what will it do and how is this trackable/manageable in real time application?
To conclude, in the case that
scdetect-cc
will not be able to identify 10 phases, what will it do and how is this trackable/manageable in real time application?
Warnings are already issued. Though, in case the "minimumArrivals"
is configured and the value is greater than the number of streams available scdetect-cc
may not initialize the detector at all. What do you suggest?
EDIT: Currently, scdetect-cc
does initialize the detector, but it resets the "minimumArrivals"
to the number of streams available.
Need to think about it.
Ok, this should be solved. Thanks for the discussion, @mmesim.
As a small enhancement, we're going to implement #102.
@damb Well, I shared with you the files. Here I'll report the problem. I run the shared example and set
minimumArrivals
: 10. However, when I runscevent
with the results.scml I received the following message multiple timesor
That probably means that there are not 10 picks available, which seems weird.
I still do not if it
scdetect-cc
orscevent
problem.I didn't include the results.scml to check whether you can fully reproduce the error.