def test_pixel_coordinates(self): dataset = Dataset(inputfile=self.inputfile) spatial_ref = dataset.GetSpatialReference() # Upper-left corner coords = dataset.PixelCoordinates(0, 0) self.assertAlmostEqual(coords.x, -spatial_ref.GetMajorCircumference() / 2, places=2) self.assertAlmostEqual(coords.y, spatial_ref.GetMinorCircumference() / 2, places=2) # Bottom-right corner coords = dataset.PixelCoordinates(dataset.RasterXSize, dataset.RasterYSize) self.assertAlmostEqual(coords.x, spatial_ref.GetMajorCircumference() / 2, places=2) self.assertAlmostEqual(coords.y, -spatial_ref.GetMinorCircumference() / 2, places=2) # Out of bounds self.assertRaises(ValueError, dataset.PixelCoordinates, -1, 0) self.assertRaises(ValueError, dataset.PixelCoordinates, dataset.RasterXSize, dataset.RasterYSize + 1)
def test_get_extents_partial_aligned(self): dataset = Dataset(inputfile=self.alignedfile) mercator = dataset.GetSpatialReference() major_circumference = mercator.GetMajorCircumference() minor_circumference = mercator.GetMinorCircumference() ll, ur = dataset.GetExtents() self.assertAlmostEqual(ll.x, -major_circumference / 4, places=0) self.assertAlmostEqual(ll.y, -minor_circumference / 4, places=0) self.assertAlmostEqual(ur.x, 0.0, places=0) self.assertAlmostEqual(ur.y, 0.0, places=0)
def test_get_extents(self): dataset = Dataset(inputfile=self.inputfile) mercator = dataset.GetSpatialReference() major_half_circumference = mercator.GetMajorCircumference() / 2 minor_half_circumference = mercator.GetMinorCircumference() / 2 ll, ur = dataset.GetExtents() self.assertAlmostEqual(ll.x, -major_half_circumference, places=0) self.assertAlmostEqual(ll.y, -minor_half_circumference, places=0) self.assertAlmostEqual(ur.x, major_half_circumference, places=0) self.assertAlmostEqual(ur.y, minor_half_circumference, places=0)
def test_get_extents_partial_spanning(self): dataset = Dataset(inputfile=self.spanningfile) mercator = dataset.GetSpatialReference() major_half_circumference = mercator.GetMajorCircumference() / 2 minor_half_circumference = mercator.GetMinorCircumference() / 2 # Spanning file is 50 pixels in from alignment pixel_size = mercator.GetPixelDimensions( resolution=dataset.GetNativeResolution()) border = 50 * pixel_size.x ll, ur = dataset.GetExtents() self.assertAlmostEqual(ll.x, -major_half_circumference + border, places=0) self.assertAlmostEqual(ll.y, -minor_half_circumference + border, places=0) self.assertAlmostEqual(ur.x, 0.0 - border, places=0) self.assertAlmostEqual(ur.y, 0.0 - border, places=0)
def test_get_coordinate_transformation(self): dataset = Dataset(inputfile=self.inputfile) wgs84 = SpatialReference(osr.SRS_WKT_WGS84) transform = dataset.GetCoordinateTransformation(dst_ref=wgs84) self.assertEqual(transform.src_ref, dataset.GetSpatialReference()) self.assertEqual(transform.dst_ref, wgs84)