Skip to content

Commit

Permalink
data_table converter update (#57)
Browse files Browse the repository at this point in the history
* Set the override_file, subregion, and multi-file to be array instead of object

* Fix issue with the multi_file block
  • Loading branch information
uramirez8707 authored Jul 31, 2024
1 parent 3bf6f6c commit 4b4823d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 34 deletions.
11 changes: 8 additions & 3 deletions fms_yaml_tools/data_table/data_table_to_yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ def parse_data_table(self):
myval = 'bilinear'
if ("false" in myval):
myval = 'none'
if ("default" in myval):
myval = 'bilinear'
tmp_list[mykey] = myval
except Exception:
raise TableParseError(self.data_table_file,
Expand Down Expand Up @@ -181,7 +183,8 @@ def reformat_yaml(tmp_list):
multi_file['prev_file_name'] = file_names[0]
multi_file['next_file_name'] = file_names[2]
override_file['file_name'] = file_names[1]
override_file['multi_file'] = multi_file
override_file['multi_file'] = []
override_file['multi_file'].append(multi_file)
else:
override_file['file_name'] = tmp_list['file_name']

Expand All @@ -192,8 +195,10 @@ def reformat_yaml(tmp_list):
subregion['lat_start'] = tmp_list['lat_start']
subregion['lat_end'] = tmp_list['lat_end']
subregion['type'] = tmp_list['type']
data_table_entry['subregion'] = subregion
data_table_entry['override_file'] = override_file
data_table_entry['subregion'] = []
data_table_entry['subregion'].append(subregion)
data_table_entry['override_file'] = []
data_table_entry['override_file'].append(override_file)

return data_table_entry

Expand Down
62 changes: 31 additions & 31 deletions test/test_data_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,66 +107,66 @@ def test_parse_data_table(self):
'fieldname_in_model': 'sic_obs',
'factor': 0.01,
'override_file':
{'file_name': 'INPUT/hadisst_ice.data.nc',
'fieldname_in_file': 'ice',
'interp_method': 'bilinear'}},
[{'file_name': 'INPUT/hadisst_ice.data.nc',
'fieldname_in_file': 'ice',
'interp_method': 'bilinear'}]},
{'grid_name': 'ICE',
'fieldname_in_model': 'sit_obs',
'factor': 2.0},
{'grid_name': 'ICE',
'fieldname_in_model': 'sst_obs',
'factor': 1.0,
'override_file':
{'file_name': 'INPUT/hadisst_sst.data.nc',
'fieldname_in_file': 'sst',
'interp_method': 'bilinear'}},
[{'file_name': 'INPUT/hadisst_sst.data.nc',
'fieldname_in_file': 'sst',
'interp_method': 'bilinear'}]},
{'grid_name': 'LND',
'fieldname_in_model': 'phot_co2',
'factor': 1e-06,
'override_file':
{'file_name': 'INPUT/co2_data.nc',
'fieldname_in_file': 'co2',
'interp_method': 'bilinear'}},
[{'file_name': 'INPUT/co2_data.nc',
'fieldname_in_file': 'co2',
'interp_method': 'bilinear'}]},
{'grid_name': 'LND',
'fieldname_in_model': 'some_var',
'factor': 1.0,
'subregion':
{'lon_start': 10.0,
'lon_end': 20.0,
'lat_start': 80.0,
'lat_end': 100.0,
'type': 'inside_region'},
[{'lon_start': 10.0,
'lon_end': 20.0,
'lat_start': 80.0,
'lat_end': 100.0,
'type': 'inside_region'}],
'override_file':
{'file_name': 'INPUT/no_file.nc',
'fieldname_in_file': 'var',
'interp_method': 'default'}},
[{'file_name': 'INPUT/no_file.nc',
'fieldname_in_file': 'var',
'interp_method': 'bilinear'}]},
{'grid_name': 'OCN',
'fieldname_in_model': 'ocn_var1',
'factor': 2.1,
'subregion':
{'lon_start': 10.0,
'lon_end': 20.0,
'lat_start': 80.0,
'lat_end': 100.0,
'type': 'outside_region'},
[{'lon_start': 10.0,
'lon_end': 20.0,
'lat_start': 80.0,
'lat_end': 100.0,
'type': 'outside_region'}],
'override_file':
{'file_name': 'INPUT/ocean_var1.nc',
'fieldname_in_file': 'var1',
'interp_method': 'bicubic'}},
[{'file_name': 'INPUT/ocean_var1.nc',
'fieldname_in_file': 'var1',
'interp_method': 'bicubic'}]},
{'grid_name': 'ATM',
'fieldname_in_model': 'atm_var',
'factor': 1.1,
'override_file':
{'file_name': 'INPUT/atm.data.nc',
'fieldname_in_file': 'atm',
'interp_method': 'bilinear'}},
[{'file_name': 'INPUT/atm.data.nc',
'fieldname_in_file': 'atm',
'interp_method': 'bilinear'}]},
{'grid_name': 'ATM',
'fieldname_in_model': 'atm_var1',
'factor': 1.2,
'override_file':
{'file_name': 'INPUT/atm1.data.nc',
'fieldname_in_file': 'atm1',
'interp_method': 'none'}}]
[{'file_name': 'INPUT/atm1.data.nc',
'fieldname_in_file': 'atm1',
'interp_method': 'none'}]}]
# Verify parse done correctly
self.assertListEqual(test_dt.data_type['data_table'],
dt_verify)
Expand Down

0 comments on commit 4b4823d

Please sign in to comment.