Open lukestegeman opened 7 months ago
In meeting discussions we decided we want to require that a trigger always be present. For SWPC this means we will create a new trigger type, "human_evaluation".
For sphinx, this means that we ought to give a warning and mark invalid/skip any forecast that doesn't have a trigger.
"give a warning and mark invalid/skip any forecast that doesn't have a trigger" - this is the current behavior of SPHINX. Do we want to close this out or keep until we get a "human_evaluation" field?
In
match.py
, within thematch_all_clear()
function, see lines 1577-1587:This chunk of code checks 1) if a threshold crossing has occurred within the prediction window (
contains_thresh_cross
), and 2) if all triggers and inputs for the forecast are dated prior to the threshold crossing time (trigger_input_start
).trigger_input_start
can take on valuesTrue
(if all triggers/inputs are dated prior to the threshold crossing time),False
(one or more triggers/inputs are dated after or at the threshold crossing time), andNone
(no triggers or threshold exist for the forecast).Since
if None:
yields the same result asif False:
, SPHINX objects associated with forecasts in which there are no triggers/inputs are incorrectly assignedsphinx.all_clear_match_status = 'Trigger/Input after Observed Phenomenon'
.To fix this issue, we could simply include an
or (trigger_input_start is None)
, e.g.,