cloudnetpy 1.49.9__py3-none-any.whl → 1.87.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cloudnetpy/categorize/__init__.py +1 -2
- cloudnetpy/categorize/atmos_utils.py +297 -67
- cloudnetpy/categorize/attenuation.py +31 -0
- cloudnetpy/categorize/attenuations/__init__.py +37 -0
- cloudnetpy/categorize/attenuations/gas_attenuation.py +30 -0
- cloudnetpy/categorize/attenuations/liquid_attenuation.py +84 -0
- cloudnetpy/categorize/attenuations/melting_attenuation.py +78 -0
- cloudnetpy/categorize/attenuations/rain_attenuation.py +84 -0
- cloudnetpy/categorize/categorize.py +332 -156
- cloudnetpy/categorize/classify.py +127 -125
- cloudnetpy/categorize/containers.py +107 -76
- cloudnetpy/categorize/disdrometer.py +40 -0
- cloudnetpy/categorize/droplet.py +23 -21
- cloudnetpy/categorize/falling.py +53 -24
- cloudnetpy/categorize/freezing.py +25 -12
- cloudnetpy/categorize/insects.py +35 -23
- cloudnetpy/categorize/itu.py +243 -0
- cloudnetpy/categorize/lidar.py +36 -41
- cloudnetpy/categorize/melting.py +34 -26
- cloudnetpy/categorize/model.py +84 -37
- cloudnetpy/categorize/mwr.py +18 -14
- cloudnetpy/categorize/radar.py +215 -102
- cloudnetpy/cli.py +578 -0
- cloudnetpy/cloudnetarray.py +43 -89
- cloudnetpy/concat_lib.py +218 -78
- cloudnetpy/constants.py +28 -10
- cloudnetpy/datasource.py +61 -86
- cloudnetpy/exceptions.py +49 -20
- cloudnetpy/instruments/__init__.py +5 -0
- cloudnetpy/instruments/basta.py +29 -12
- cloudnetpy/instruments/bowtie.py +135 -0
- cloudnetpy/instruments/ceilo.py +138 -115
- cloudnetpy/instruments/ceilometer.py +164 -80
- cloudnetpy/instruments/cl61d.py +21 -5
- cloudnetpy/instruments/cloudnet_instrument.py +74 -36
- cloudnetpy/instruments/copernicus.py +108 -30
- cloudnetpy/instruments/da10.py +54 -0
- cloudnetpy/instruments/disdrometer/common.py +126 -223
- cloudnetpy/instruments/disdrometer/parsivel.py +453 -94
- cloudnetpy/instruments/disdrometer/thies.py +254 -87
- cloudnetpy/instruments/fd12p.py +201 -0
- cloudnetpy/instruments/galileo.py +65 -23
- cloudnetpy/instruments/hatpro.py +123 -49
- cloudnetpy/instruments/instruments.py +113 -1
- cloudnetpy/instruments/lufft.py +39 -17
- cloudnetpy/instruments/mira.py +268 -61
- cloudnetpy/instruments/mrr.py +187 -0
- cloudnetpy/instruments/nc_lidar.py +19 -8
- cloudnetpy/instruments/nc_radar.py +109 -55
- cloudnetpy/instruments/pollyxt.py +135 -51
- cloudnetpy/instruments/radiometrics.py +313 -59
- cloudnetpy/instruments/rain_e_h3.py +171 -0
- cloudnetpy/instruments/rpg.py +321 -189
- cloudnetpy/instruments/rpg_reader.py +74 -40
- cloudnetpy/instruments/toa5.py +49 -0
- cloudnetpy/instruments/vaisala.py +95 -343
- cloudnetpy/instruments/weather_station.py +774 -105
- cloudnetpy/metadata.py +90 -19
- cloudnetpy/model_evaluation/file_handler.py +55 -52
- cloudnetpy/model_evaluation/metadata.py +46 -20
- cloudnetpy/model_evaluation/model_metadata.py +1 -1
- cloudnetpy/model_evaluation/plotting/plot_tools.py +32 -37
- cloudnetpy/model_evaluation/plotting/plotting.py +327 -117
- cloudnetpy/model_evaluation/products/advance_methods.py +92 -83
- cloudnetpy/model_evaluation/products/grid_methods.py +88 -63
- cloudnetpy/model_evaluation/products/model_products.py +43 -35
- cloudnetpy/model_evaluation/products/observation_products.py +41 -35
- cloudnetpy/model_evaluation/products/product_resampling.py +17 -7
- cloudnetpy/model_evaluation/products/tools.py +29 -20
- cloudnetpy/model_evaluation/statistics/statistical_methods.py +30 -20
- cloudnetpy/model_evaluation/tests/e2e/conftest.py +3 -3
- cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +9 -5
- cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +15 -14
- cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +9 -5
- cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +15 -14
- cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +9 -5
- cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +15 -14
- cloudnetpy/model_evaluation/tests/unit/conftest.py +42 -41
- cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +41 -48
- cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +216 -194
- cloudnetpy/model_evaluation/tests/unit/test_model_products.py +23 -21
- cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +37 -38
- cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +43 -40
- cloudnetpy/model_evaluation/tests/unit/test_plotting.py +30 -36
- cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +68 -31
- cloudnetpy/model_evaluation/tests/unit/test_tools.py +33 -26
- cloudnetpy/model_evaluation/utils.py +2 -1
- cloudnetpy/output.py +170 -111
- cloudnetpy/plotting/__init__.py +2 -1
- cloudnetpy/plotting/plot_meta.py +562 -822
- cloudnetpy/plotting/plotting.py +1142 -704
- cloudnetpy/products/__init__.py +1 -0
- cloudnetpy/products/classification.py +370 -88
- cloudnetpy/products/der.py +85 -55
- cloudnetpy/products/drizzle.py +77 -34
- cloudnetpy/products/drizzle_error.py +15 -11
- cloudnetpy/products/drizzle_tools.py +79 -59
- cloudnetpy/products/epsilon.py +211 -0
- cloudnetpy/products/ier.py +27 -50
- cloudnetpy/products/iwc.py +55 -48
- cloudnetpy/products/lwc.py +96 -70
- cloudnetpy/products/mwr_tools.py +186 -0
- cloudnetpy/products/product_tools.py +170 -128
- cloudnetpy/utils.py +455 -240
- cloudnetpy/version.py +2 -2
- {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/METADATA +44 -40
- cloudnetpy-1.87.3.dist-info/RECORD +127 -0
- {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/WHEEL +1 -1
- cloudnetpy-1.87.3.dist-info/entry_points.txt +2 -0
- docs/source/conf.py +2 -2
- cloudnetpy/categorize/atmos.py +0 -361
- cloudnetpy/products/mwr_multi.py +0 -68
- cloudnetpy/products/mwr_single.py +0 -75
- cloudnetpy-1.49.9.dist-info/RECORD +0 -112
- {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info/licenses}/LICENSE +0 -0
- {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/top_level.txt +0 -0
|
@@ -13,7 +13,7 @@ PRODUCT = "cf"
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.mark.parametrize("name", ("ecmwf_cf_cirrus",))
|
|
16
|
-
def test_cf_cirrus_filter(obs_file, model_file, name):
|
|
16
|
+
def test_cf_cirrus_filter(obs_file, model_file, name) -> None:
|
|
17
17
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
18
18
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
19
19
|
AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -23,11 +23,17 @@ def test_cf_cirrus_filter(obs_file, model_file, name):
|
|
|
23
23
|
@pytest.mark.parametrize(
|
|
24
24
|
"name, data",
|
|
25
25
|
[
|
|
26
|
-
(
|
|
26
|
+
(
|
|
27
|
+
"cf",
|
|
28
|
+
ma.array(
|
|
29
|
+
[[-99, 2], [3, 6], [5, 8]],
|
|
30
|
+
mask=[[True, False], [False, False], [False, False]],
|
|
31
|
+
),
|
|
32
|
+
),
|
|
27
33
|
("h", np.array([[10, 14], [8, 14], [9, 15]])),
|
|
28
34
|
],
|
|
29
35
|
)
|
|
30
|
-
def test_getvar_from_object(obs_file, model_file, name, data):
|
|
36
|
+
def test_getvar_from_object(obs_file, model_file, name, data) -> None:
|
|
31
37
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
32
38
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
33
39
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -36,7 +42,7 @@ def test_getvar_from_object(obs_file, model_file, name, data):
|
|
|
36
42
|
|
|
37
43
|
|
|
38
44
|
@pytest.mark.parametrize("name", ("T",))
|
|
39
|
-
def test_getvar_from_object_None(obs_file, model_file, name):
|
|
45
|
+
def test_getvar_from_object_None(obs_file, model_file, name) -> None:
|
|
40
46
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
41
47
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
42
48
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -51,7 +57,7 @@ def test_getvar_from_object_None(obs_file, model_file, name):
|
|
|
51
57
|
(95, (0.00058, -0.00706, 0.0923, -0.992)),
|
|
52
58
|
],
|
|
53
59
|
)
|
|
54
|
-
def test_set_frequency_parameters(obs_file, model_file, radar_f, values):
|
|
60
|
+
def test_set_frequency_parameters(obs_file, model_file, radar_f, values) -> None:
|
|
55
61
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
56
62
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
57
63
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -60,40 +66,43 @@ def test_set_frequency_parameters(obs_file, model_file, radar_f, values):
|
|
|
60
66
|
assert x == values
|
|
61
67
|
|
|
62
68
|
|
|
63
|
-
def test_fit_z_sensitivity(obs_file, model_file):
|
|
69
|
+
def test_fit_z_sensitivity(obs_file, model_file) -> None:
|
|
64
70
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
65
71
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
66
72
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
67
73
|
h = np.array([[5000, 9000, 13000], [10000, 15000, 20000], [8000, 12000, 16000]])
|
|
68
|
-
compare =
|
|
74
|
+
compare = ma.masked_invalid([[np.nan, 0.15, 0.5], [0.1, 1, np.nan], [0.15, 0, 1]])
|
|
69
75
|
x = adv_pro.fit_z_sensitivity(h)
|
|
70
76
|
testing.assert_array_almost_equal(x, compare)
|
|
71
77
|
|
|
72
78
|
|
|
73
|
-
def test_filter_high_iwc_low_cf(obs_file, model_file):
|
|
79
|
+
def test_filter_high_iwc_low_cf(obs_file, model_file) -> None:
|
|
74
80
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
75
81
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
76
82
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
77
83
|
cf = ma.array([0.0001, 0.0002, 0, 0.0001, 1, 0.0006])
|
|
78
84
|
iwc = np.array([0.0, 0, 0, 0.2, 0.4, 0])
|
|
79
85
|
lwc = np.array([0.0, 0.02, 0.01, 0, 0.01, 0.01])
|
|
80
|
-
compare = ma.array(
|
|
86
|
+
compare = ma.array(
|
|
87
|
+
[0.0001, 0.0002, 0, -99, 1, 0.0006],
|
|
88
|
+
mask=[False, False, False, True, False, False],
|
|
89
|
+
)
|
|
81
90
|
x = adv_pro.filter_high_iwc_low_cf(cf, iwc, lwc)
|
|
82
91
|
testing.assert_array_almost_equal(x, compare)
|
|
83
92
|
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
def test_filter_high_iwc_low_cf_no_ice(obs_file, model_file):
|
|
94
|
+
def test_filter_high_iwc_low_cf_no_ice(obs_file, model_file) -> None:
|
|
87
95
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
88
96
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
89
97
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
90
98
|
cf = ma.array([0.0001, 0.0002, 0, 0, 0, 0.0006])
|
|
91
99
|
iwc = np.array([0.0, 0, 0, 0.2, 0.4, 0])
|
|
92
100
|
lwc = np.array([0.0, 0.02, 0.01, 0, 0.01, 0.01])
|
|
93
|
-
|
|
101
|
+
with pytest.raises(ValueError):
|
|
102
|
+
adv_pro.filter_high_iwc_low_cf(cf, iwc, lwc)
|
|
94
103
|
|
|
95
104
|
|
|
96
|
-
def test_mask_weird_indices(obs_file, model_file):
|
|
105
|
+
def test_mask_weird_indices(obs_file, model_file) -> None:
|
|
97
106
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
98
107
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
99
108
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -108,19 +117,22 @@ def test_mask_weird_indices(obs_file, model_file):
|
|
|
108
117
|
testing.assert_array_almost_equal(x, compare)
|
|
109
118
|
|
|
110
119
|
|
|
111
|
-
def test_mask_weird_indices_values(obs_file, model_file):
|
|
120
|
+
def test_mask_weird_indices_values(obs_file, model_file) -> None:
|
|
112
121
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
113
122
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
114
123
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
115
124
|
cf = ma.array([0.0001, 0.0002, 0, 0.0001, 1, 0.0006])
|
|
116
125
|
iwc = np.array([0.0, 0, 0, 0.2, 0.4, 0])
|
|
117
126
|
lwc = np.array([0.0, 0.02, 0.01, 0, 0.01, 0.01])
|
|
118
|
-
compare = ma.array(
|
|
127
|
+
compare = ma.array(
|
|
128
|
+
[0.0001, 0.0002, 0, -99, 1, 0.0006],
|
|
129
|
+
mask=[False, False, False, True, False, False],
|
|
130
|
+
)
|
|
119
131
|
x = adv_pro.mask_weird_indices(cf, iwc, lwc)
|
|
120
132
|
testing.assert_array_almost_equal(x, compare)
|
|
121
133
|
|
|
122
134
|
|
|
123
|
-
def test_find_ice_in_clouds(obs_file, model_file):
|
|
135
|
+
def test_find_ice_in_clouds(obs_file, model_file) -> None:
|
|
124
136
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
125
137
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
126
138
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -128,26 +140,26 @@ def test_find_ice_in_clouds(obs_file, model_file):
|
|
|
128
140
|
[
|
|
129
141
|
[-1, 0, 2, 3],
|
|
130
142
|
[-1, 1, 2, 3],
|
|
131
|
-
]
|
|
143
|
+
],
|
|
132
144
|
)
|
|
133
145
|
iwc = np.array(
|
|
134
146
|
[
|
|
135
147
|
[-1, 0, 2, 31],
|
|
136
148
|
[-1, 1, 200, 3],
|
|
137
|
-
]
|
|
149
|
+
],
|
|
138
150
|
)
|
|
139
151
|
lwc = np.array(
|
|
140
152
|
[
|
|
141
153
|
[0, 1, 2, 3],
|
|
142
154
|
[0, 1, 2, 3],
|
|
143
|
-
]
|
|
155
|
+
],
|
|
144
156
|
)
|
|
145
157
|
expected = np.array([31 / 3 * 1000, 200 / 2 * 1000])
|
|
146
158
|
x, _ = adv_pro.find_ice_in_clouds(cf_f, iwc, lwc)
|
|
147
159
|
testing.assert_array_almost_equal(x, expected)
|
|
148
160
|
|
|
149
161
|
|
|
150
|
-
def test_get_ice_indices(obs_file, model_file):
|
|
162
|
+
def test_get_ice_indices(obs_file, model_file) -> None:
|
|
151
163
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
152
164
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
153
165
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -155,19 +167,19 @@ def test_get_ice_indices(obs_file, model_file):
|
|
|
155
167
|
[
|
|
156
168
|
[-1, 0, 2, 3],
|
|
157
169
|
[-1, 1, 2, 3],
|
|
158
|
-
]
|
|
170
|
+
],
|
|
159
171
|
)
|
|
160
172
|
iwc = np.array(
|
|
161
173
|
[
|
|
162
174
|
[-1, 0, 2, 31],
|
|
163
175
|
[-1, 1, 200, 3],
|
|
164
|
-
]
|
|
176
|
+
],
|
|
165
177
|
)
|
|
166
178
|
lwc = np.array(
|
|
167
179
|
[
|
|
168
180
|
[0, 1, 2, 3],
|
|
169
181
|
[0, 1, 2, 3],
|
|
170
|
-
]
|
|
182
|
+
],
|
|
171
183
|
)
|
|
172
184
|
x = np.array([0, 1])
|
|
173
185
|
y = np.array([3, 2])
|
|
@@ -176,7 +188,7 @@ def test_get_ice_indices(obs_file, model_file):
|
|
|
176
188
|
testing.assert_array_almost_equal(result, expected)
|
|
177
189
|
|
|
178
190
|
|
|
179
|
-
def test_iwc_variance(obs_file, model_file):
|
|
191
|
+
def test_iwc_variance(obs_file, model_file) -> None:
|
|
180
192
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
181
193
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
182
194
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -188,7 +200,7 @@ def test_iwc_variance(obs_file, model_file):
|
|
|
188
200
|
assert len(x) == 3
|
|
189
201
|
|
|
190
202
|
|
|
191
|
-
def test_calculate_variance_iwc(obs_file, model_file):
|
|
203
|
+
def test_calculate_variance_iwc(obs_file, model_file) -> None:
|
|
192
204
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
193
205
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
194
206
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -200,7 +212,7 @@ def test_calculate_variance_iwc(obs_file, model_file):
|
|
|
200
212
|
testing.assert_array_almost_equal(x, compare)
|
|
201
213
|
|
|
202
214
|
|
|
203
|
-
def test_calculate_wind_shear(obs_file, model_file):
|
|
215
|
+
def test_calculate_wind_shear(obs_file, model_file) -> None:
|
|
204
216
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
205
217
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
206
218
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -213,7 +225,7 @@ def test_calculate_wind_shear(obs_file, model_file):
|
|
|
213
225
|
testing.assert_array_almost_equal(np.round(x, 2), compare)
|
|
214
226
|
|
|
215
227
|
|
|
216
|
-
def test_calculate_iwc_distribution(obs_file, model_file):
|
|
228
|
+
def test_calculate_iwc_distribution(obs_file, model_file) -> None:
|
|
217
229
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
218
230
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
219
231
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -227,7 +239,7 @@ def test_calculate_iwc_distribution(obs_file, model_file):
|
|
|
227
239
|
testing.assert_array_almost_equal(x, compare)
|
|
228
240
|
|
|
229
241
|
|
|
230
|
-
def test_gamma_distribution(obs_file, model_file):
|
|
242
|
+
def test_gamma_distribution(obs_file, model_file) -> None:
|
|
231
243
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
232
244
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
233
245
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
@@ -248,26 +260,7 @@ def test_gamma_distribution(obs_file, model_file):
|
|
|
248
260
|
testing.assert_array_almost_equal(x, compare)
|
|
249
261
|
|
|
250
262
|
|
|
251
|
-
def
|
|
252
|
-
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
253
|
-
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
254
|
-
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|
|
255
|
-
tZT = 0.01
|
|
256
|
-
z_sen = 0.02
|
|
257
|
-
temperature = -13
|
|
258
|
-
tT = 0.04
|
|
259
|
-
tZ = 0.05
|
|
260
|
-
t = 0.06
|
|
261
|
-
min_iwc = 10 ** (tZT * z_sen * temperature + tT * temperature + tZ * z_sen + t)
|
|
262
|
-
iwc_dist = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
|
|
263
|
-
compare = iwc_dist > min_iwc
|
|
264
|
-
x = adv_pro.get_observation_index(
|
|
265
|
-
iwc_dist, tZT, tT, tZ, np.array([t]), temperature, z_sen
|
|
266
|
-
)
|
|
267
|
-
testing.assert_array_almost_equal(x, compare)
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
def test_filter_cirrus(obs_file, model_file):
|
|
263
|
+
def test_filter_cirrus(obs_file, model_file) -> None:
|
|
271
264
|
obs = ObservationManager(PRODUCT, str(obs_file))
|
|
272
265
|
model = ModelManager(str(model_file), MODEL, OUTPUT_FILE, PRODUCT)
|
|
273
266
|
adv_pro = AdvanceProductMethods(model, str(model_file), obs)
|