コード例 #1
0
    def test_only_scalar_coords(self):
        """Test with an input cube containing only scalar auxiliary
        coordinates."""
        plugin = SpotExtraction()

        expected_scalar = self.diagnostic_cube_yx.aux_coords
        expected_nonscalar = []
        x_indices, y_indices = self.coordinate_cube.data
        scalar, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_yx,
                                                  x_indices, y_indices)
        self.assertArrayEqual(scalar, expected_scalar)
        self.assertArrayEqual(nonscalar, expected_nonscalar)
コード例 #2
0
    def test_multiple_nonscalar_coords(self):
        """Test with an input cube containing multiple nonscalar auxiliary
        coordinates. The returned non-scalar coordinates are 1D representations
        of the 2D non-scalar input coordinates at spot sites."""
        plugin = SpotExtraction()

        additional_2d_crd = self.time_aux_coord.copy()
        additional_2d_crd.rename("kittens")
        self.diagnostic_cube_2d_time.add_aux_coord(additional_2d_crd,
                                                   data_dims=(0, 1))
        additional_expected = self.expected_spot_time_coord.copy()
        additional_expected.rename("kittens")
        expected_nonscalar = [
            additional_expected, self.expected_spot_time_coord
        ]
        x_indices, y_indices = self.coordinate_cube.data

        _, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_2d_time,
                                             x_indices, y_indices)
        self.assertArrayEqual(nonscalar, expected_nonscalar)
コード例 #3
0
    def test_scalar_and_nonscalar_coords(self):
        """Test with an input cube containing scalar and nonscalar auxiliary
        coordinates. The returned non-scalar coordinate is a 1D representation
        of the 2D non-scalar input coordinate at spot sites."""
        plugin = SpotExtraction()

        expected_scalar = [
            coord for coord in self.diagnostic_cube_2d_time.aux_coords
            if coord.name() in [
                "time_in_local_timezone", "forecast_reference_time",
                "forecast_period"
            ]
        ]
        expected_nonscalar = [self.expected_spot_time_coord]
        x_indices, y_indices = self.coordinate_cube.data

        scalar, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_2d_time,
                                                  x_indices, y_indices)
        self.assertArrayEqual(scalar, expected_scalar)
        self.assertArrayEqual(nonscalar, expected_nonscalar)