Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DiscRates csv support #818

Merged
merged 2 commits into from
Dec 12, 2023

changelog

5e41203
Select commit
Loading
Failed to load commit list.
Merged

DiscRates csv support #818

changelog
5e41203
Select commit
Loading
Failed to load commit list.
Jenkins - WCR / Tests / Declarative: Post Actions failed Dec 12, 2023 in 0s

failed: 2, passed: 646

Send us feedback

Details

climada.hazard.test.test_base_xarray.TestReadDefaultNetCDF.test_missing_dims

AssertionError: 'Dataset is missing dimension/coordinate: time' not found in "Dataset is missing dimension/coordinate: No variable named 'time'. Variables on the dataset include ['intensity', 'latitude', 'longitude']. Dataset dimensions: ['latitude', 'longitude']"
Stack trace
self = <climada.hazard.test.test_base_xarray.TestReadDefaultNetCDF testMethod=test_missing_dims>

    def test_missing_dims(self):
        """Test if missing coordinates are expanded and correct errors are thrown"""
        # Drop time as dimension, but not as coordinate!
        with xr.open_dataset(self.netcdf_path) as ds:
            ds = ds.isel(time=0).squeeze()
            hazard = Hazard.from_xarray_raster(ds, "", "")
            self._assert_default_types(hazard)
            np.testing.assert_array_equal(
                hazard.event_name, [self.time[0].strftime("%Y-%m-%d")]
            )
            np.testing.assert_array_equal(hazard.date, [self.time[0].toordinal()])
            np.testing.assert_array_equal(hazard.centroids.lat, [0, 0, 0, 1, 1, 1])
            np.testing.assert_array_equal(hazard.centroids.lon, [0, 1, 2, 0, 1, 2])
            self.assertEqual(hazard.centroids.geometry.crs, DEF_CRS)
            np.testing.assert_array_equal(
                hazard.intensity.toarray(), [[0, 1, 2, 3, 4, 5]]
            )
            self.assertEqual(hazard.fraction.nnz, 0)
            np.testing.assert_array_equal(
                hazard.fraction.toarray(), [[0, 0, 0, 0, 0, 0]]
            )
    
            # Now drop variable altogether, should raise an error
            ds = ds.drop_vars("time")
            with self.assertRaises(RuntimeError) as cm:
                Hazard.from_xarray_raster(ds, "", "")
>           self.assertIn(
                "Dataset is missing dimension/coordinate: time", str(cm.exception)
            )
E           AssertionError: 'Dataset is missing dimension/coordinate: time' not found in "Dataset is missing dimension/coordinate: No variable named 'time'. Variables on the dataset include ['intensity', 'latitude', 'longitude']. Dataset dimensions: ['latitude', 'longitude']"

climada/hazard/test/test_base_xarray.py:364: AssertionError

climada.hazard.test.test_base_xarray.TestReadDimsCoordsNetCDF.test_errors

AssertionError: 'Dataset is missing dimension/coordinate: lalalatitude.' not found in "Dataset is missing dimension/coordinate: No variable named 'lalalatitude'. Variables on the dataset include ['intensity', 'fraction', 'time', 'x', 'y', 'lon', 'lat', 'years', 'latitude', 'longitude']. Dataset dimensions: ['time', 'y', 'x']"
Stack trace
self = <climada.hazard.test.test_base_xarray.TestReadDimsCoordsNetCDF testMethod=test_errors>

    def test_errors(self):
        """Check if expected errors are thrown"""
        # Wrong coordinate key
        with self.assertRaises(ValueError) as cm:
            Hazard.from_xarray_raster_file(
                self.netcdf_path,
                "",
                "",
                coordinate_vars=dict(bar="latitude", longitude="baz"),
            )
        self.assertIn("Unknown coordinates passed: '['bar']'.", str(cm.exception))
    
        # Correctly specified, but the custom dimension does not exist
        with self.assertRaises(RuntimeError) as cm:
            Hazard.from_xarray_raster_file(
                self.netcdf_path,
                "",
                "",
                coordinate_vars=dict(latitude="lalalatitude"),
            )
>       self.assertIn(
            "Dataset is missing dimension/coordinate: lalalatitude.", str(cm.exception)
        )
E       AssertionError: 'Dataset is missing dimension/coordinate: lalalatitude.' not found in "Dataset is missing dimension/coordinate: No variable named 'lalalatitude'. Variables on the dataset include ['intensity', 'fraction', 'time', 'x', 'y', 'lon', 'lat', 'years', 'latitude', 'longitude']. Dataset dimensions: ['time', 'y', 'x']"

climada/hazard/test/test_base_xarray.py:578: AssertionError