@@ -139,43 +139,11 @@ def __init__(self, filename=None, name=None, gridfile=None, standard_name_mappin
139
139
140
140
self .name = name or 'roms native'
141
141
142
- # TODO: the below section is to be removed after some period with
143
- # testing of new common opener method: open_dataset_opendrift
144
- #if isinstance(filename, xr.Dataset):
145
- # self.Dataset = filename
146
- #else:
147
-
148
- # filestr = str(filename)
149
-
150
- # try:
151
- # # Open file, check that everything is ok
152
- # logger.info('Opening dataset: ' + filestr)
153
- # if ('*' in filestr) or ('?' in filestr) or ('[' in filestr):
154
- # logger.info('Opening files with MFDataset')
155
- # def drop_non_essential_vars_pop(ds):
156
- # dropvars = [v for v in ds.variables if v not in
157
- # list(self.ROMS_variable_mapping.keys()) + gls_param +
158
- # ['ocean_time', 'time', 'bulk_time', 's_rho',
159
- # 'Cs_r', 'hc', 'angle', 'Vtransform']
160
- # and v[0:3] not in ['lon', 'lat', 'mas']]
161
- # logger.debug('Dropping variables: %s' % dropvars)
162
- # ds = ds.drop_vars(dropvars)
163
- # return ds
164
- # self.Dataset = xr.open_mfdataset(filename,
165
- # chunks={'ocean_time': 1}, compat='override', decode_times=False,
166
- # preprocess=drop_non_essential_vars_pop,
167
- # data_vars='minimal', coords='minimal')
168
- # else:
169
- # logger.info('Opening file with Dataset')
170
- # self.Dataset = xr.open_dataset(filename, decode_times=False)
171
- # except Exception as e:
172
- # raise ValueError(e)
173
-
174
142
def drop_non_essential_vars_pop (ds ):
175
143
dropvars = [v for v in ds .variables if v not in
176
144
list (self .ROMS_variable_mapping .keys ()) + gls_param +
177
145
['ocean_time' , 'time' , 'bulk_time' , 's_rho' ,
178
- 'Cs_r' , 'hc' , 'angle' , 'Vtransform' ]
146
+ 'Cs_r' , 'Cs_rho' , ' hc' , 'angle' , 'Vtransform' ]
179
147
and v [0 :3 ] not in ['lon' , 'lat' , 'mas' ]]
180
148
logger .debug ('Dropping variables: %s' % dropvars )
181
149
ds = ds .drop_vars (dropvars )
@@ -217,11 +185,20 @@ def drop_non_essential_vars_pop(ds):
217
185
self .sigma = (np .arange (num_sigma )+ .5 - num_sigma )/ num_sigma
218
186
219
187
# Read sigma-coordinate transform parameters
220
- try :
221
- self .Dataset .variables ['Cs_r' ].set_auto_mask (False )
222
- except :
223
- pass
224
- self .Cs_r = self .Dataset .variables ['Cs_r' ][:]
188
+ if 'Cs_r' in self .Dataset .variables :
189
+ csr = 'Cs_r' # ROMS
190
+ elif 'Cs_rho' in self .Dataset .variables :
191
+ csr = 'Cs_rho' # CROCO
192
+ else :
193
+ csr = None
194
+
195
+ if csr is not None :
196
+ try :
197
+ self .Dataset .variables [csr ].set_auto_mask (False )
198
+ except :
199
+ pass
200
+ self .Cs_r = self .Dataset .variables [csr ][:]
201
+
225
202
try :
226
203
self .hc = self .Dataset .variables ['hc' ][:]
227
204
except :
0 commit comments