swirlspy.ver package

Submodules

swirlspy.ver.gen_contingency module

swirlspy.ver.gen_contingency.contingency(threshold, forecast, observed)

Generates contingency table statistics for traditional binary verification

threshold: float

Threshold value of variable for verification.

forecast: xarray

An xarray containing forecasted values of variable

observed: xarray

An xarray containing observed values of variable

Returns

contingency – tuple structure is (hit, miss, false_alarm, corrneg)

Return type

tuple

Notes

hit: int

number of hits

miss: int

number of misses

false_alarm: int

number of false alarms

corrneg: int

number of correct negatives

swirlspy.ver.gen_metrics module

swirlspy.ver.gen_metrics.accuracy(hit, miss, false_alarm, corrneg)

Calculates accuracy

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

  • corrneg (int) – number of correct negatives

Returns

accuracy – accuracy = (hit+corrneg)/total total = hit+miss+false_alarm+corrneg

Return type

float

swirlspy.ver.gen_metrics.csi(hit, miss, false_alarm)

Calculates Critical Success Index

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

Returns

  • critical success index (float)

  • csi = hit/(hit+false_alarm+miss)

swirlspy.ver.gen_metrics.ets(hit, miss, false_alarm, corrneg)

Returns Equitable Threat Score[0 = no skill][1 = perfect]

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

  • corrneg (int) – number of correct negatives

Returns

  • equitable threat score (float)

  • ets = (hit - hit_expected)/(hit+miss+false_alarm-hit_expected)

  • where hit_expected = hit+miss)*(hit+false_alarm)/total

  • total = hit + miss + false_alarm + corrneg

swirlspy.ver.gen_metrics.far(hit, false_alarm)

Calculates False Alarm Ratio

Parameters
  • hit (int) – number of hits

  • false_alarm (int) – number of false alarms

Returns

false alarm ratio – far = false_alarm/(hit+false_alarm)

Return type

float

swirlspy.ver.gen_metrics.freq_bias(hit, miss, false_alarm)

Calculates Frequency Bias

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

Returns

  • frequency bias (float or int)

  • freq_bias = (hit+false_alarm)/(hit+miss)

swirlspy.ver.gen_metrics.hss(hit, miss, false_alarm, corrneg)

Calculates Heidke Skill Score [0 = no skill][1=perfect]

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

  • corrneg (int) – number of correct negatives

Returns

Heidke Success Score – hss = (hit+corrneg-hit_corrneg_expected)/(total-hit_corrneg_expected) hit_corrneg_expected = ((hit+miss)*(hit+false_alarm)

  • (false_alarm+corrneg) * (miss+corrneg)) / total

Return type

int or float

swirlspy.ver.gen_metrics.pod(hit, miss)

Calculates Probability of Detection

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

Returns

probability of detection – pod = hit/(hit+miss)

Return type

float

swirlspy.ver.gen_metrics.pofd(false_alarm, corrneg)

Calculates Probability of False Detection

Parameters
  • hit (int) – number of hits

  • miss (int) – number of misses

  • false_alarm (int) – number of false alarms

  • corrneg (int) – number of correct negatives

Returns

probability of false detection – pofd = false_alarm/(false_alarm + corrneg)

Return type

float