Coverage for tests/probabilty/roc_test_data.py: 100%
12 statements
« prev ^ index » next coverage.py v7.3.2, created at 2024-02-28 12:51 +1100
« prev ^ index » next coverage.py v7.3.2, created at 2024-02-28 12:51 +1100
1"""Data for ROC tests"""
2import numpy as np
3import xarray as xr
5FCST_2X3X2_WITH_NAN = xr.DataArray(
6 [
7 [[0.4, np.nan, 0.2], [0.7, 0.4, 0.3], [0.2, 1, 0]],
8 [[0.3, 0.8, 0.9], [0.1, 0.1, 0.1], [0.8, 0.2, 0.1]],
9 ],
10 coords=[
11 ("lead_day", [0, 1]),
12 ("letter", ["a", "b", "c"]),
13 ("pet", ["muffin", "balthazar", "morpheus"]),
14 ],
15)
16FCST_2X3X2_WITH_NAN_MISALIGNED = xr.DataArray(
17 [
18 [[0.4, np.nan, 0.2], [0.2, 1, 0], [0.7, 0.4, 0.3], [0.2, 1, 0]],
19 [[0.3, 0.8, 0.9], [0.2, 1, 0], [0.1, 0.1, 0.1], [0.8, 0.2, 0.1]],
20 ],
21 coords=[
22 ("lead_day", [0, 1]),
23 ("letter", ["a", "CAT", "b", "c"]),
24 ("pet", ["muffin", "balthazar", "morpheus"]),
25 ],
26)
28DISCRETE_FCST_2X3X2_WITH_NAN = xr.DataArray(
29 [
30 [
31 [[1, 1, 0], [np.nan, np.nan, np.nan], [1, 0, 0]],
32 [[1, 1, 0], [1, 1, 0], [1, 1, 0]],
33 [[1, 0, 0], [1, 1, 1], [1, 0, 0]],
34 ],
35 [
36 [[1, 1, 0], [1, 1, 0], [1, 1, 0]],
37 [[1, 0, 0], [1, 0, 0], [1, 0, 0]],
38 [[1, 1, 0], [1, 0, 0], [1, 0, 0]],
39 ],
40 ],
41 coords=[
42 ("lead_day", [0, 1]),
43 ("letter", ["a", "b", "c"]),
44 ("pet", ["muffin", "balthazar", "morpheus"]),
45 ("threshold", [0, 0.3, 1]),
46 ],
47)
48OBS_3X3_WITH_NAN = xr.DataArray(
49 [[1, 0, 0], [0, 1, np.nan], [0, 1, 1]],
50 coords=[("letter", ["a", "b", "c"]), ("pet", ["muffin", "balthazar", "morpheus"])],
51)
52OBS_3X3_WITH_NAN_MISALIGNED = xr.DataArray(
53 [[1, 0, 0, 1], [0, 1, np.nan, 0], [0, 1, 1, np.nan]],
54 coords=[
55 ("letter", ["a", "b", "c"]),
56 ("pet", ["muffin", "balthazar", "morpheus", "rick"]),
57 ],
58)
60EXP_ROC_LEADDAY = xr.Dataset(
61 {
62 "POD": xr.DataArray(
63 [[1, 0.75, 0.25], [1, 0.25, 0]],
64 coords=[("lead_day", [0, 1]), ("threshold", [0, 0.3, 1])],
65 ),
66 "POFD": xr.DataArray(
67 [[1, 1 / 3, 0], [1, 0.75, 0]],
68 coords=[("lead_day", [0, 1]), ("threshold", [0, 0.3, 1])],
69 ),
70 "AUC": xr.DataArray([0.75, 0.25], coords=[("lead_day", [0, 1])]),
71 }
72)
73LEAD_DAY_WEIGHTS = xr.DataArray([1, 2], dims="lead_day", coords={"lead_day": [0, 1]})
75EXP_ROC_MULTI_DIMS = xr.Dataset(
76 {
77 "POD": xr.DataArray(
78 [
79 [[1.0, 1.0, 0.0], [1.0, 1.0, 0.0], [1.0, 0.5, 0.5]],
80 [[1.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 0.0, 0.0]],
81 ],
82 coords=[
83 ("lead_day", [0, 1]),
84 ("letter", ["a", "b", "c"]),
85 ("threshold", [0, 0.3, 1]),
86 ],
87 ),
88 "POFD": xr.DataArray(
89 [
90 [[1.0, 0.0, 0.0], [1.0, 1.0, 0.0], [1.0, 0.0, 0.0]],
91 [[1.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 1.0, 0.0]],
92 ],
93 coords=[
94 ("lead_day", [0, 1]),
95 ("letter", ["a", "b", "c"]),
96 ("threshold", [0, 0.3, 1]),
97 ],
98 ),
99 "AUC": xr.DataArray(
100 [[1, 0.5, 0.75], [0.5, 0.5, 0]],
101 coords=[("lead_day", [0, 1]), ("letter", ["a", "b", "c"])],
102 ),
103 }
104)
105EXP_ROC_NONE = xr.Dataset(
106 {
107 "POD": xr.DataArray([1, 0.5, 1 / 8], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}),
108 "POFD": xr.DataArray([1, 4 / 7, 0], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}),
109 "AUC": xr.DataArray([0.5]).squeeze(),
110 }
111)
113EXP_ROC_NONE_WEIGHTED = xr.Dataset(
114 {
115 "POD": xr.DataArray([1, 5 / 12, 1 / 12], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}),
116 "POFD": xr.DataArray([1, 0.6363636363636364, 0], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}),
117 "AUC": xr.DataArray([0.41666666666666663]).squeeze(),
118 }
119)