@@ -118,12 +118,16 @@ def __init__(self, model_type, model_name, set_type):
118
118
self .model_type = model_type
119
119
self .model_name = model_name
120
120
self .set_type = set_type
121
+ self .connected = False
122
+
123
+ def connect_to_catalog (self ):
121
124
self .catalog = TDSCatalog (self .catalog_url )
122
- self .fm_models = TDSCatalog (self .catalog .catalog_refs [model_type ].href )
125
+ self .fm_models = TDSCatalog (
126
+ self .catalog .catalog_refs [self .model_type ].href )
123
127
self .fm_models_list = sorted (list (self .fm_models .catalog_refs .keys ()))
124
128
125
129
try :
126
- model_url = self .fm_models .catalog_refs [model_name ].href
130
+ model_url = self .fm_models .catalog_refs [self . model_name ].href
127
131
except ParseError :
128
132
raise ParseError (self .model_name + ' model may be unavailable.' )
129
133
@@ -137,6 +141,7 @@ def __init__(self, model_type, model_name, set_type):
137
141
138
142
self .datasets_list = list (self .model .datasets .keys ())
139
143
self .set_dataset ()
144
+ self .connected = True
140
145
141
146
def __repr__ (self ):
142
147
return '{}, {}' .format (self .model_name , self .set_type )
@@ -224,6 +229,10 @@ def get_data(self, latitude, longitude, start, end,
224
229
forecast_data : DataFrame
225
230
column names are the weather model's variable names.
226
231
"""
232
+
233
+ if not self .connected :
234
+ self .connect_to_catalog ()
235
+
227
236
if vert_level is not None :
228
237
self .vert_level = vert_level
229
238
0 commit comments