File size: 11,405 Bytes
6ee917b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
import Foundation

/**
 List of all integrated domains
 */
enum DomainRegistry: String, CaseIterable {
    case meteofrance_arome_france0025
    case meteofrance_arome_france_hd
    case meteofrance_arome_france0025_15min
    case meteofrance_arome_france_hd_15min
    case meteofrance_arpege_europe
    case meteofrance_arpege_world025
    case meteofrance_arpege_europe_probabilities
    case meteofrance_arpege_world025_probabilities
    case meteofrance_wave
    case meteofrance_currents
    case meteofrance_sea_surface_temperature
    
    case cams_europe
    case cams_global
    case cams_global_greenhouse_gases
    case cams_europe_reanalysis_interim
    case cams_europe_reanalysis_validated
    case cams_europe_reanalysis_validated_pre2020
    case cams_europe_reanalysis_validated_pre2018
    
    case copernicus_dem90
    case copernicus_cerra
    case copernicus_era5
    case copernicus_era5_ensemble
    case copernicus_era5_daily
    case copernicus_era5_land
    case copernicus_era5_land_daily
    case copernicus_era5_ocean
    
    case cmc_gem_gdps
    case cmc_gem_geps
    case cmc_gem_hrdps
    case cmc_gem_rdps
    
    case ncep_gfs013
    case ncep_gfs025
    case ncep_gfswave025
    case ncep_gfswave016
    case ncep_gefswave025
    case ncep_gefs025
    case ncep_gefs05
    case ncep_hrrr_conus
    case ncep_hrrr_conus_15min
    case ncep_cfsv2
    case ncep_gfs_graphcast025
    case ncep_nbm_conus
    case ncep_nbm_alaska
    
    case glofas_consolidated_v4
    case glofas_consolidated_v3
    case glofas_forecast_v4
    case glofas_forecast_v3
    case glofas_intermediate_v4
    case glofas_intermediate_v3
    case glofas_seasonal_v3
    case glofas_seasonal_v4
    
    case dwd_icon
    case dwd_icon_eu
    case dwd_icon_d2
    case dwd_icon_d2_15min
    case dwd_icon_eps
    case dwd_icon_eu_eps
    case dwd_icon_d2_eps
    case dwd_ewam
    case dwd_gwam
    
    case ecmwf_ifs
    case ecmwf_ifs04
    case ecmwf_ifs04_ensemble
    case ecmwf_ifs025
    case ecmwf_ifs025_ensemble
    case ecmwf_aifs025
    case ecmwf_aifs025_single
    case ecmwf_wam025
    case ecmwf_wam025_ensemble
    case ecmwf_ifs_analysis
    case ecmwf_ifs_analysis_long_window
    case ecmwf_ifs_long_window
    
    case jma_msm
    case jma_gsm

    case metno_nordic_pp
    
    case nasa_imerg_daily
    
    case cma_grapes_global
    
    case bom_access_global
    case bom_access_global_ensemble
    
    case cmip_CMCC_CM2_VHR4
    case cmip_EC_Earth3P_HR
    case cmip_FGOALS_f3_H
    case cmip_HiRAM_SIT_HR
    case cmip_MPI_ESM1_2_XR
    case cmip_MRI_AGCM3_2_S
    case cmip_NICAM16_8S
    
    case arpae_cosmo_2i
    case arpae_cosmo_2i_ruc
    case arpae_cosmo_5m
    
    case knmi_harmonie_arome_europe
    case knmi_harmonie_arome_netherlands
    case dmi_harmonie_arome_europe
    
    case ukmo_global_deterministic_10km
    case ukmo_global_ensemble_20km
    case ukmo_uk_deterministic_2km
    
    case eumetsat_sarah3_30min
    case jma_jaxa_himawari_10min
    case eumetsat_lsa_saf_msg_15min
    case eumetsat_lsa_saf_iodc_15min
    
    case kma_gdps
    case kma_ldps
    
    var directory: String {
        return "\(OpenMeteo.dataDirectory)\(rawValue)/"
    }
    
    func getDomain() -> GenericDomain {
        switch self {
        case .meteofrance_arome_france0025:
            return MeteoFranceDomain.arome_france
        case .meteofrance_arome_france_hd:
            return MeteoFranceDomain.arome_france_hd
        case .meteofrance_arpege_europe:
            return MeteoFranceDomain.arpege_europe
        case .meteofrance_arpege_world025:
            return MeteoFranceDomain.arpege_world
        case .meteofrance_arpege_europe_probabilities:
            return MeteoFranceDomain.arpege_europe_probabilities
        case .meteofrance_arpege_world025_probabilities:
            return MeteoFranceDomain.arpege_world_probabilities
        case .meteofrance_wave:
            return MfWaveDomain.mfwave
        case .meteofrance_currents:
            return MfWaveDomain.mfcurrents
        case .cams_europe:
            return CamsDomain.cams_europe
        case .cams_global:
            return CamsDomain.cams_global
        case .cams_global_greenhouse_gases:
            return CamsDomain.cams_global_greenhouse_gases
        case .copernicus_cerra:
            return CdsDomain.cerra
        case .copernicus_dem90:
            return Dem90()
        case .ecmwf_ifs:
            return CdsDomain.ecmwf_ifs
        case .ecmwf_ifs_analysis_long_window:
            return CdsDomain.ecmwf_ifs_analysis_long_window
        case .ecmwf_ifs_analysis:
            return CdsDomain.ecmwf_ifs_analysis
        case .ecmwf_ifs_long_window:
            return CdsDomain.ecmwf_ifs_long_window
        case .copernicus_era5:
            return CdsDomain.era5
        case .copernicus_era5_land:
            return CdsDomain.era5_land
        case .copernicus_era5_ocean:
            return CdsDomain.era5_ocean
        case .copernicus_era5_ensemble:
            return CdsDomain.era5_ensemble
        case .dwd_ewam:
            return IconWaveDomain.ewam
        case .cmc_gem_gdps:
            return GemDomain.gem_global
        case .cmc_gem_geps:
            return GemDomain.gem_global_ensemble
        case .cmc_gem_hrdps:
            return GemDomain.gem_hrdps_continental
        case .cmc_gem_rdps:
            return GemDomain.gem_regional
        case .ncep_gfs013:
            return GfsDomain.gfs013
        case .ncep_gfs025:
            return GfsDomain.gfs025
        case .ncep_gefs025:
            return GfsDomain.gfs025_ens
        case .ncep_gefs05:
            return GfsDomain.gfs05_ens
        case .glofas_consolidated_v4:
            return GloFasDomain.consolidated
        case .glofas_consolidated_v3:
            return GloFasDomain.consolidatedv3
        case .glofas_forecast_v4:
            return GloFasDomain.forecast
        case .glofas_forecast_v3:
            return GloFasDomain.forecastv3
        case .glofas_intermediate_v4:
            return GloFasDomain.intermediate
        case .glofas_intermediate_v3:
            return GloFasDomain.intermediatev3
        case .glofas_seasonal_v4:
            return GloFasDomain.seasonal
        case .glofas_seasonal_v3:
            return GloFasDomain.seasonalv3
        case .jma_gsm:
            return JmaDomain.gsm
        case .dwd_gwam:
            return IconWaveDomain.gwam
        case .ncep_hrrr_conus:
            return GfsDomain.hrrr_conus
        case .ncep_hrrr_conus_15min:
            return GfsDomain.hrrr_conus_15min
        case .dwd_icon:
            return IconDomains.icon
        case .dwd_icon_d2:
            return IconDomains.iconD2
        case .dwd_icon_d2_15min:
            return IconDomains.iconD2_15min
        case .dwd_icon_d2_eps:
            return IconDomains.iconD2Eps
        case .dwd_icon_eps:
            return IconDomains.iconEps
        case .dwd_icon_eu:
            return IconDomains.iconEu
        case .dwd_icon_eu_eps:
            return IconDomains.iconEuEps
        case .ecmwf_ifs04:
            return EcmwfDomain.ifs04
        case .ecmwf_ifs04_ensemble:
            return EcmwfDomain.ifs04_ensemble
        case .ecmwf_ifs025:
            return EcmwfDomain.ifs025
        case .ecmwf_ifs025_ensemble:
            return EcmwfDomain.ifs025_ensemble
        case .ecmwf_aifs025:
            return EcmwfDomain.aifs025
        case .ecmwf_aifs025_single:
            return EcmwfDomain.aifs025_single
        case .jma_msm:
            return JmaDomain.msm
        case .ncep_cfsv2:
            return SeasonalForecastDomain.ncep
        case .metno_nordic_pp:
            return MetNoDomain.nordic_pp
        case .nasa_imerg_daily:
            return SatelliteDomain.imerg_daily
        case .cmip_CMCC_CM2_VHR4:
            return Cmip6Domain.CMCC_CM2_VHR4
        case .cmip_EC_Earth3P_HR:
            return Cmip6Domain.EC_Earth3P_HR
        case .cmip_FGOALS_f3_H:
            return Cmip6Domain.FGOALS_f3_H
        case .cmip_HiRAM_SIT_HR:
            return Cmip6Domain.HiRAM_SIT_HR
        case .cmip_MPI_ESM1_2_XR:
            return Cmip6Domain.MPI_ESM1_2_XR
        case .cmip_MRI_AGCM3_2_S:
            return Cmip6Domain.MRI_AGCM3_2_S
        case .cmip_NICAM16_8S:
            return Cmip6Domain.NICAM16_8S
        case .copernicus_era5_daily:
            return CdsDomain.era5_daily
        case .copernicus_era5_land_daily:
            return CdsDomain.era5_land_daily
        case .cma_grapes_global:
            return CmaDomain.grapes_global
        case .bom_access_global:
            return BomDomain.access_global
        case .bom_access_global_ensemble:
            return BomDomain.access_global_ensemble
        case .meteofrance_arome_france0025_15min:
            return MeteoFranceDomain.arome_france_15min
        case .meteofrance_arome_france_hd_15min:
            return MeteoFranceDomain.arome_france_hd_15min
        case .arpae_cosmo_2i:
            return ArpaeDomain.cosmo_2i
        case .arpae_cosmo_2i_ruc:
            return ArpaeDomain.cosmo_2i_ruc
        case .arpae_cosmo_5m:
            return ArpaeDomain.cosmo_5m
        case .ncep_gfs_graphcast025:
            return GfsGraphCastDomain.graphcast025
        case .ecmwf_wam025:
            return EcmwfDomain.wam025
        case .ecmwf_wam025_ensemble:
            return EcmwfDomain.wam025_ensemble
        case .ncep_gfswave025:
            return GfsDomain.gfswave025
        case .ncep_gefswave025:
            return GfsDomain.gfswave025_ens
        case .knmi_harmonie_arome_europe:
            return KnmiDomain.harmonie_arome_europe
        case .knmi_harmonie_arome_netherlands:
            return KnmiDomain.harmonie_arome_netherlands
        case .dmi_harmonie_arome_europe:
            return DmiDomain.harmonie_arome_europe
        case .ukmo_global_deterministic_10km:
            return UkmoDomain.global_deterministic_10km
        case .ukmo_uk_deterministic_2km:
            return UkmoDomain.uk_deterministic_2km
        case .cams_europe_reanalysis_interim:
            return CamsDomain.cams_europe_reanalysis_interim
        case .cams_europe_reanalysis_validated:
            return CamsDomain.cams_europe_reanalysis_validated
        case .cams_europe_reanalysis_validated_pre2020:
            return CamsDomain.cams_europe_reanalysis_validated_pre2020
        case .cams_europe_reanalysis_validated_pre2018:
            return CamsDomain.cams_europe_reanalysis_validated_pre2018
        case .ncep_gfswave016:
            return GfsDomain.gfswave016
        case .ncep_nbm_conus:
            return NbmDomain.nbm_conus
        case .ncep_nbm_alaska:
            return NbmDomain.nbm_alaska
        case .ukmo_global_ensemble_20km:
            return UkmoDomain.global_ensemble_20km
        case .eumetsat_sarah3_30min:
            return EumetsatSarahDomain.sarah3_30min
        case .jma_jaxa_himawari_10min:
            return JaxaHimawariDomain.himawari_10min
        case .eumetsat_lsa_saf_msg_15min:
            return EumetsatLsaSafDomain.msg
        case .eumetsat_lsa_saf_iodc_15min:
            return EumetsatLsaSafDomain.iodc
        case .meteofrance_sea_surface_temperature:
            return MfWaveDomain.mfsst
        case .kma_gdps:
            return KmaDomain.gdps
        case .kma_ldps:
            return KmaDomain.ldps
        }
    }
}