diff --git a/autotest/gcore/gcps2geotransform.py b/autotest/gcore/gcps2geotransform.py index e2cbdd775699..db803924d632 100755 --- a/autotest/gcore/gcps2geotransform.py +++ b/autotest/gcore/gcps2geotransform.py @@ -14,11 +14,13 @@ ############################################################################### import gdaltest + from osgeo import gdal ############################################################################### # Helper to make gcps + def _list2gcps(src_list): gcp_list = [] for src_tuple in src_list: @@ -30,9 +32,11 @@ def _list2gcps(src_list): gcp_list.append(gcp) return gcp_list + ############################################################################### # Test simple exact case of turning GCPs into a GeoTransform. + def test_gcps2gt_1(): gt = gdal.GCPsToGeoTransform( @@ -48,9 +52,11 @@ def test_gcps2gt_1(): gt, (400000.0, 100.0, 0.0, 370000.0, 0.0, -10.0), 0.000001 ) + ############################################################################### # Similar but non-exact. + def test_gcps2gt_2(): gt = gdal.GCPsToGeoTransform( @@ -67,9 +73,11 @@ def test_gcps2gt_2(): gt, (400000.0, 100.0, 0.0, 370000.0025, -5e-05, -9.999975), 0.000001 ) + ############################################################################### # bApproxOK false, and no good solution. + def test_gcps2gt_3(): approx_ok = False @@ -86,9 +94,11 @@ def test_gcps2gt_3(): ) assert gt is None, "Expected failure when no good solution." + ############################################################################### # Single point - Should return None. + def test_gcps2gt_4(): gt = gdal.GCPsToGeoTransform( @@ -100,9 +110,11 @@ def test_gcps2gt_4(): ) assert gt is None, "Expected failure for single GCP." + ############################################################################### # Two points - simple offset and scale, no rotation. + def test_gcps2gt_5(): gt = gdal.GCPsToGeoTransform( @@ -117,9 +129,11 @@ def test_gcps2gt_5(): gt, (400000.0, 100.0, 0.0, 370000.0, 0.0, -10.0), 0.000001 ) + ############################################################################### # Special case for four points in a particular order. Exact result. + def test_gcps2gt_6(): gt = gdal.GCPsToGeoTransform( @@ -134,9 +148,11 @@ def test_gcps2gt_6(): ) gdaltest.check_geotransform(gt, (0.0, 1.0, 0.0, 0.0, 0.0, 1.0), 0.000001) + ############################################################################### # Try a case that is hard to do without normalization. + def test_gcps2gt_7(): gt = gdal.GCPsToGeoTransform( @@ -151,9 +167,11 @@ def test_gcps2gt_7(): ) gdaltest.check_geotransform(gt, (0.0, 1.0, 0.0, 0.0, 0.0, 1.0), 0.000001) + ############################################################################### # A fairly messy real world case without a easy to predict result. + def test_gcps2gt_8(): gt = gdal.GCPsToGeoTransform(