1010# fmt: off
1111pca_enkf_arg_values = [
1212 # Standard setting
13- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
13+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
1414 # Smooth radar mask
15- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,20 ),
15+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,20 , False ),
1616 # Coarser NWP temporal resolution
17- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,15 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
17+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,15 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
1818 # Coarser Obs temporal resolution
19- (20 ,30 ,0 ,- 60 ,False ,False ,10 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
19+ (20 ,30 ,0 ,- 60 ,False ,False ,10 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
2020 # Larger shift of the NWP init
21- (20 ,30 ,0 ,- 30 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
21+ (20 ,30 ,0 ,- 30 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
2222 # Zero rain case in observation
23- (20 ,30 ,0 ,- 60 ,True ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
23+ (20 ,30 ,0 ,- 60 ,True ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
2424 # Zero rain case in NWP
25- (20 ,30 ,0 ,- 60 ,False ,True ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
25+ (20 ,30 ,0 ,- 60 ,False ,True ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
2626 # Zero rain in both
27- (20 ,30 ,0 ,- 60 ,True ,True ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
27+ (20 ,30 ,0 ,- 60 ,True ,True ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
2828 # Accumulated sampling probability
29- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,True ,False ,0 ),
29+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,True ,False ,0 , False ),
3030 # Use full NWP weight
31- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,True ,0 ),
31+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,True ,0 , False ),
3232 # Both
33- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,True ,True ,0 ),
33+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,True ,True ,0 , False ),
3434 # Explained variance as sampling probability source
35- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"explained_var" ,False ,False ,0 ),
35+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"explained_var" ,False ,False ,0 , False ),
3636 # No combination
37- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,False ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
37+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,False ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
3838 # Standard deviation adjustment
39- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,"auto" ,1.0 ,"ensemble" ,False ,False ,0 ),
39+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,"auto" ,1.0 ,"ensemble" ,False ,False ,0 , False ),
4040 # Other number of ensemble members
41- (10 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
41+ (10 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
4242 # Other forecast length
43- (20 ,35 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),
43+ (20 ,35 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"ssft" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 , False ),
4444 # Other noise method
45- (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"nonparametric" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ),]
45+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"nonparametric" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ,False ),
46+ # Verbose output
47+ (20 ,30 ,0 ,- 60 ,False ,False ,5 ,5 ,0.05 ,0.01 ,"nonparametric" ,"masked_enkf" ,True ,None ,1.0 ,"ensemble" ,False ,False ,0 ,True ),]
4648# fmt: on
4749
4850pca_enkf_arg_names = (
6567 "use_accum_sampling_prob" ,
6668 "ensure_full_nwp_weight" ,
6769 "smooth_radar_mask_range" ,
70+ "verbose_output" ,
6871)
6972
7073
@@ -89,6 +92,7 @@ def test_pca_enkf_combination(
8992 use_accum_sampling_prob ,
9093 ensure_full_nwp_weight ,
9194 smooth_radar_mask_range ,
95+ verbose_output ,
9296):
9397 pytest .importorskip ("sklearn" )
9498
@@ -248,8 +252,13 @@ def test_pca_enkf_combination(
248252 noise_kwargs = None ,
249253 combination_kwargs = combination_kwargs ,
250254 measure_time = False ,
255+ verbose_output = verbose_output ,
251256 )
252257
258+ if verbose_output :
259+ assert len (combined_forecast ) == 2 , "Wrong amount of output data"
260+ combined_forecast = combined_forecast [0 ]
261+
253262 assert combined_forecast .ndim == 4 , "Wrong amount of dimensions in forecast output"
254263 assert (
255264 combined_forecast .shape [0 ] == n_ens_members
0 commit comments