[
https://issues.apache.org/jira/browse/CLIMATE-758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15170616#comment-15170616
]
Michael Anderson commented on CLIMATE-758:
------------------------------------------
I believe this is a result of the change introduced in CLIMATE-758.
#level_index = dimension_names.index(elev_names.pop())
level_index = 1
This always assumes the altitude is in the second dimension.
The file in the test case, however, creates altitude in the first dimension and
time in the second dimension so later when validate is run it gets the wrong
dimension.
> Fix failing tests in test_local.py
> ----------------------------------
>
> Key: CLIMATE-758
> URL: https://issues.apache.org/jira/browse/CLIMATE-758
> Project: Apache Open Climate Workbench
> Issue Type: Sub-task
> Components: tests
> Reporter: Lewis John McGibbney
> Fix For: 1.1
>
>
> {code}
> ======================================================================
> ERROR: Test adding a custom name to a dataset
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 69, in
> test_custom_dataset_name
> ds = local.load_file(self.file_path, 'value', name='foo')
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: test_dataset_origin (ocw.tests.test_local.test_load_file)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 73, in
> test_dataset_origin
> ds = local.load_file(self.file_path, 'value', elevation_index=1)
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: To test load_file function for latitudes
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 48, in
> test_function_load_file_lats
> self.assertItemsEqual(local.load_file(self.file_path, "value").lats,
> self.latitudes)
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: To test load_file function for longitudes
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 53, in
> test_function_load_file_lons
> self.assertItemsEqual(local.load_file(self.file_path, "value").lons,
> self.longitudes)
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: To test load_file function for times
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 59, in
> test_function_load_file_times
> self.assertItemsEqual(local.load_file(self.file_path, "value").times,
> newTimes)
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: To test load_file function for values
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/usr/local/climate/ocw/tests/test_local.py", line 65, in
> test_function_load_file_values
> self.assertTrue(numpy.allclose(local.load_file(self.file_path,
> "value").values, new_values))
> File "/usr/local/climate/ocw/data_source/local.py", line 283, in load_file
> units=variable_unit, name=name, origin=origin)
> File "/usr/local/climate/ocw/dataset.py", line 71, in __init__
> self._validate_inputs(lats, lons, times, values)
> File "/usr/local/climate/ocw/dataset.py", line 206, in _validate_inputs
> raise ValueError(err_msg)
> ValueError: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> -------------------- >> begin captured logging << --------------------
> ocw.dataset: ERROR: Value Array must be of shape (times, lats, lons).
> Expected shape (3, 5, 5) but received (2, 5, 5)
> --------------------- >> end captured logging << ---------------------
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)