2
2
import pathlib
3
3
from typing import Union
4
4
5
+ import pandas as pd
5
6
from pyesgf .search import SearchConnection
6
7
7
8
from climateset import META_DATA , RAW_DATA
@@ -101,25 +102,24 @@ def __init__( # noqa: C901
101
102
self .overwrite = overwrite
102
103
self .download_metafiles = download_metafiles
103
104
self .download_biomass_burning = download_biomassburning
105
+ self .plain_emission_vars = plain_emission_vars
104
106
self .start_year = start_year
105
107
self .end_year = end_year
106
108
107
109
# Args processing
108
- self ._hande_max_possible_member_number (
109
- df_model_source = DATA_CSV , experiments = experiments , max_ensemble_members = max_ensemble_members , model = model
110
- )
110
+ self ._hande_max_possible_member_number (df_model_source = DATA_CSV , max_ensemble_members = max_ensemble_members )
111
111
self ._handle_variables (
112
- download_biomassburning = download_biomassburning ,
113
- plain_emission_vars = plain_emission_vars ,
114
112
variables = variables ,
115
113
)
116
- self ._handle_model_params (model = model )
114
+ self ._handle_model_params ()
117
115
118
116
#
119
117
# Internal helper functions
120
118
#
121
- def _hande_max_possible_member_number (self , df_model_source , experiments , max_ensemble_members , model ):
122
- max_possible_member_number = get_max_ensemble_member_number (df_model_source , experiments , model )
119
+ def _hande_max_possible_member_number (self , df_model_source : pd .DataFrame , max_ensemble_members : int ):
120
+ max_possible_member_number = get_max_ensemble_member_number (
121
+ df_model_source = df_model_source , experiments = self .experiments , model = self .model
122
+ )
123
123
if max_ensemble_members == - 1 :
124
124
self .logger .info ("Trying to take all ensemble members available." )
125
125
self .max_ensemble_members = max_possible_member_number
@@ -130,31 +130,31 @@ def _hande_max_possible_member_number(self, df_model_source, experiments, max_en
130
130
self .max_ensemble_members = max_possible_member_number
131
131
self .logger .info (f"Downloading data for { self .max_ensemble_members } members." )
132
132
133
- def _handle_variables (self , download_biomassburning , plain_emission_vars , variables ):
134
- self ._generate_variables (variables )
135
- self ._generate_plain_emission_vars (download_biomassburning , plain_emission_vars )
133
+ def _handle_variables (self , variables : list [ str ] ):
134
+ self ._generate_variables (variables = variables )
135
+ self ._generate_plain_emission_vars ()
136
136
self .logger .info (f"Raw variables to download: { self .raw_vars } " )
137
137
self .logger .info (f"Model predicted vars to download: { self .model_vars } " )
138
138
if self .download_biomass_burning :
139
139
self .logger .info (f"Download biomass burning vars: { self .biomass_vars } " )
140
140
if self .download_metafiles :
141
141
self .logger .info (f"Downloading meta vars:\n \t { self .meta_vars_percentage } \n \t { self .meta_vars_share } " )
142
142
143
- def _handle_model_params (self , model ):
143
+ def _handle_model_params (self ):
144
144
try :
145
145
self .model_node_link = MODEL_SOURCES [self .model ]["node_link" ]
146
146
self .model_source_center = MODEL_SOURCES [self .model ]["center" ]
147
147
except KeyError :
148
148
self .model = next (iter (MODEL_SOURCES ))
149
- if model is not None :
149
+ if self . model is not None :
150
150
self .logger .info (f"WARNING: Model { self .model } unknown. Using default instead." )
151
151
self .logger .info (f"Using : { self .model } " )
152
152
# else None but we still need the links
153
153
self .model_node_link = MODEL_SOURCES [self .model ]["node_link" ]
154
154
self .model_source_center = MODEL_SOURCES [self .model ]["center" ]
155
155
156
- def _generate_plain_emission_vars (self , download_biomassburning , plain_emission_vars ):
157
- if plain_emission_vars :
156
+ def _generate_plain_emission_vars (self ):
157
+ if self . plain_emission_vars :
158
158
# plain vars are biomass vars
159
159
self .biomass_vars = self .raw_vars
160
160
self .meta_vars_percentage = [
@@ -186,8 +186,6 @@ def _generate_plain_emission_vars(self, download_biomassburning, plain_emission_
186
186
except Exception as error :
187
187
self .logger .warning (f"Caught the following exception but continuing : { error } " )
188
188
189
- self .download_biomass_burning = download_biomassburning
190
-
191
189
self .meta_vars_percentage = [
192
190
biomass_var + ending
193
191
for biomass_var in self .biomass_vars
@@ -201,7 +199,7 @@ def _generate_plain_emission_vars(self, download_biomassburning, plain_emission_
201
199
for ending in META_ENDINGS_SHAR
202
200
]
203
201
204
- def _generate_variables (self , variables ):
202
+ def _generate_variables (self , variables : list [ str ] ):
205
203
if variables is None :
206
204
variables = ["tas" , "pr" , "SO2_em_anthro" , "BC_em_anthro" ]
207
205
# take care of var mistype (node takes no spaces or '-' only '_')
0 commit comments