diff options
| author | Daniel Wiesmann <daniel.wiesmann@gmail.com> | 2017-05-23 20:07:16 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-06-07 11:30:35 -0400 |
| commit | e0b456bee7bcf37e2a55471255686ee59c6cf03c (patch) | |
| tree | 69823c29c563e009abd5dad777ce6fb363cde331 /tests | |
| parent | 23825b2494a1edb1e02d57dbdc7eca0614cefcc8 (diff) | |
Fixed #28232 -- Made raster metadata readable and writable on GDALRaster/Band.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/gis_tests/gdal_tests/test_raster.py | 139 |
1 files changed, 97 insertions, 42 deletions
diff --git a/tests/gis_tests/gdal_tests/test_raster.py b/tests/gis_tests/gdal_tests/test_raster.py index 5495178a13..f82b37a6a9 100644 --- a/tests/gis_tests/gdal_tests/test_raster.py +++ b/tests/gis_tests/gdal_tests/test_raster.py @@ -1,45 +1,3 @@ -""" -gdalinfo tests/gis_tests/data/rasters/raster.tif: - -Driver: GTiff/GeoTIFF -Files: tests/gis_tests/data/rasters/raster.tif -Size is 163, 174 -Coordinate System is: -PROJCS["NAD83 / Florida GDL Albers", - GEOGCS["NAD83", - DATUM["North_American_Datum_1983", - SPHEROID["GRS 1980",6378137,298.2572221010002, - AUTHORITY["EPSG","7019"]], - TOWGS84[0,0,0,0,0,0,0], - AUTHORITY["EPSG","6269"]], - PRIMEM["Greenwich",0], - UNIT["degree",0.0174532925199433], - AUTHORITY["EPSG","4269"]], - PROJECTION["Albers_Conic_Equal_Area"], - PARAMETER["standard_parallel_1",24], - PARAMETER["standard_parallel_2",31.5], - PARAMETER["latitude_of_center",24], - PARAMETER["longitude_of_center",-84], - PARAMETER["false_easting",400000], - PARAMETER["false_northing",0], - UNIT["metre",1, - AUTHORITY["EPSG","9001"]], - AUTHORITY["EPSG","3086"]] -Origin = (511700.468070655711927,435103.377123198588379) -Pixel Size = (100.000000000000000,-100.000000000000000) -Metadata: - AREA_OR_POINT=Area -Image Structure Metadata: - INTERLEAVE=BAND -Corner Coordinates: -Upper Left ( 511700.468, 435103.377) ( 82d51'46.16"W, 27d55' 1.53"N) -Lower Left ( 511700.468, 417703.377) ( 82d51'52.04"W, 27d45'37.50"N) -Upper Right ( 528000.468, 435103.377) ( 82d41'48.81"W, 27d54'56.30"N) -Lower Right ( 528000.468, 417703.377) ( 82d41'55.54"W, 27d45'32.28"N) -Center ( 519850.468, 426403.377) ( 82d46'50.64"W, 27d50'16.99"N) -Band 1 Block=163x50 Type=Byte, ColorInterp=Gray - NoData Value=15 -""" import os import struct import tempfile @@ -255,6 +213,103 @@ class GDALRasterTests(SimpleTestCase): # Band data is equal to zero becaues no nodata value has been specified. self.assertEqual(result, [0] * 4) + def test_raster_metadata_property(self): + # Check for required gdal version. + if GDAL_VERSION < (1, 11): + msg = 'GDAL ≥ 1.11 is required for using the metadata property.' + with self.assertRaisesMessage(ValueError, msg): + self.rs.metadata + return + + self.assertEqual( + self.rs.metadata, + {'DEFAULT': {'AREA_OR_POINT': 'Area'}, 'IMAGE_STRUCTURE': {'INTERLEAVE': 'BAND'}}, + ) + + # Create file-based raster from scratch + source = GDALRaster({ + 'datatype': 1, + 'width': 2, + 'height': 2, + 'srid': 4326, + 'bands': [{'data': range(4), 'nodata_value': 99}], + }) + # Set metadata on raster and on a band. + metadata = { + 'DEFAULT': {'OWNER': 'Django', 'VERSION': '1.0', 'AREA_OR_POINT': 'Point', }, + } + source.metadata = metadata + source.bands[0].metadata = metadata + self.assertEqual(source.metadata['DEFAULT'], metadata['DEFAULT']) + self.assertEqual(source.bands[0].metadata['DEFAULT'], metadata['DEFAULT']) + # Update metadata on raster. + metadata = { + 'DEFAULT': {'VERSION': '2.0', }, + } + source.metadata = metadata + self.assertEqual(source.metadata['DEFAULT']['VERSION'], '2.0') + # Remove metadata on raster. + metadata = { + 'DEFAULT': {'OWNER': None, }, + } + source.metadata = metadata + self.assertNotIn('OWNER', source.metadata['DEFAULT']) + + def test_raster_info_accessor(self): + if GDAL_VERSION < (2, 1): + msg = 'GDAL ≥ 2.1 is required for using the info property.' + with self.assertRaisesMessage(ValueError, msg): + self.rs.info + return + gdalinfo = """ + Driver: GTiff/GeoTIFF + Files: {0} + Size is 163, 174 + Coordinate System is: + PROJCS["NAD83 / Florida GDL Albers", + GEOGCS["NAD83", + DATUM["North_American_Datum_1983", + SPHEROID["GRS 1980",6378137,298.257222101, + AUTHORITY["EPSG","7019"]], + TOWGS84[0,0,0,0,0,0,0], + AUTHORITY["EPSG","6269"]], + PRIMEM["Greenwich",0, + AUTHORITY["EPSG","8901"]], + UNIT["degree",0.0174532925199433, + AUTHORITY["EPSG","9122"]], + AUTHORITY["EPSG","4269"]], + PROJECTION["Albers_Conic_Equal_Area"], + PARAMETER["standard_parallel_1",24], + PARAMETER["standard_parallel_2",31.5], + PARAMETER["latitude_of_center",24], + PARAMETER["longitude_of_center",-84], + PARAMETER["false_easting",400000], + PARAMETER["false_northing",0], + UNIT["metre",1, + AUTHORITY["EPSG","9001"]], + AXIS["X",EAST], + AXIS["Y",NORTH], + AUTHORITY["EPSG","3086"]] + Origin = (511700.468070655711927,435103.377123198588379) + Pixel Size = (100.000000000000000,-100.000000000000000) + Metadata: + AREA_OR_POINT=Area + Image Structure Metadata: + INTERLEAVE=BAND + Corner Coordinates: + Upper Left ( 511700.468, 435103.377) ( 82d51'46.16"W, 27d55' 1.53"N) + Lower Left ( 511700.468, 417703.377) ( 82d51'52.04"W, 27d45'37.50"N) + Upper Right ( 528000.468, 435103.377) ( 82d41'48.81"W, 27d54'56.30"N) + Lower Right ( 528000.468, 417703.377) ( 82d41'55.54"W, 27d45'32.28"N) + Center ( 519850.468, 426403.377) ( 82d46'50.64"W, 27d50'16.99"N) + Band 1 Block=163x50 Type=Byte, ColorInterp=Gray + NoData Value=15 + """.format(self.rs_path) + # Data + info_dyn = [line.strip() for line in self.rs.info.split('\n') if line.strip() != ''] + info_ref = [line.strip() for line in gdalinfo.split('\n') if line.strip() != ''] + self.assertEqual(info_dyn, info_ref) + def test_raster_warp(self): # Create in memory raster source = GDALRaster({ |
