コード例 #1
0
ファイル: test_area.py プロジェクト: senesis/ESMValCore
 def test_area_statistics_cell_measure_mean(self):
     """
     Test for area average of a 2D field.
     The area measure is pre-loaded in the cube"""
     cube = guess_bounds(self.grid, ['longitude', 'latitude'])
     grid_areas = iris.analysis.cartography.area_weights(cube)
     measure = iris.coords.CellMeasure(
         grid_areas,
         standard_name='cell_area',
         units='m2',
         measure='area')
     self.grid.add_cell_measure(measure, range(0, measure.ndim))
     result = area_statistics(self.grid, 'mean')
     expected = np.array([1.])
     self.assert_array_equal(result.data, expected)
コード例 #2
0
def test_area_statistics_rotated(case):
    """Test `area_statistics` with data on an rotated grid."""
    rotated_cube = create_rotated_grid_cube(case['data'])
    operator = case['operator']
    cube = area_statistics(
        rotated_cube,
        operator,
    )
    if operator != 'sum':
        np.testing.assert_array_equal(cube.data, case['expected'])
    else:
        cube_tmp = rotated_cube.copy()
        cube_tmp.remove_coord('latitude')
        cube_tmp.coord('grid_latitude').rename('latitude')
        cube_tmp.remove_coord('longitude')
        cube_tmp.coord('grid_longitude').rename('longitude')
        grid_areas = iris.analysis.cartography.area_weights(cube_tmp)
        expected = np.sum(grid_areas)
        np.testing.assert_array_equal(cube.data, expected)
コード例 #3
0
ファイル: test_area.py プロジェクト: senesis/ESMValCore
 def test_extract_region_mean(self):
     """
     Test for extracting a region and performing
     the area mean of a 2D field.
     """
     cube = guess_bounds(self.grid, ['longitude', 'latitude'])
     grid_areas = iris.analysis.cartography.area_weights(cube)
     measure = iris.coords.CellMeasure(
         grid_areas,
         standard_name='cell_area',
         units='m2',
         measure='area')
     self.grid.add_cell_measure(measure, range(0, measure.ndim))
     region = extract_region(self.grid, 1.5, 2.5, 1.5, 2.5)
     # expected outcome
     expected = np.ones((2, 2))
     self.assert_array_equal(region.data, expected)
     result = area_statistics(region, 'mean')
     expected_mean = np.array([1.])
     self.assert_array_equal(result.data, expected_mean)
コード例 #4
0
 def test_area_statistics_variance(self):
     """Test for area average of a 2D field."""
     result = area_statistics(self.grid, 'variance')
     expected = np.array([0.])
     self.assert_array_equal(result.data, expected)
コード例 #5
0
 def test_area_statistics_sum(self):
     """Test for sum of a 2D field."""
     result = area_statistics(self.grid, 'sum')
     grid_areas = iris.analysis.cartography.area_weights(self.grid)
     expected = np.sum(grid_areas)
     self.assert_array_equal(result.data, expected)
コード例 #6
0
 def test_area_statistics_rms(self):
     """Test for area rms of a 2D field."""
     result = area_statistics(self.grid, 'rms')
     expected = np.array([1.])
     self.assert_array_equal(result.data, expected)
コード例 #7
0
 def test_area_statistics_neg_lon(self):
     """Test for area average of a 2D field."""
     result = area_statistics(self.negative_grid, 'mean')
     expected = np.array([1.])
     self.assert_array_equal(result.data, expected)
コード例 #8
0
ファイル: test_area.py プロジェクト: mathause/ESMValCore
 def test_area_statistics_std_dev(self):
     """Test for area average of a 2D field."""
     result = area_statistics(self.grid, 'std_dev')
     expected = np.array([0.])
     self.assertArrayEqual(result.data, expected)