From b9f3470668ed1103f922f2d0f7e9cdffcdc4af4a Mon Sep 17 00:00:00 2001 From: Bborie Park Date: Mon, 16 Apr 2012 20:06:19 +0000 Subject: [PATCH] Replaced testing of two rasters' geotransform matrix with alignment test git-svn-id: http://svn.osgeo.org/postgis/trunk@9645 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/loader/raster2pgsql.c | 37 +++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/raster/loader/raster2pgsql.c b/raster/loader/raster2pgsql.c index 89ffa61c2..b6e371f63 100644 --- a/raster/loader/raster2pgsql.c +++ b/raster/loader/raster2pgsql.c @@ -594,14 +594,37 @@ diff_rastinfo(RASTERINFO *x, RASTERINFO *ref) { } } - /* geotransform */ + /* alignment */ if (!msg[4]) { - for (i = 0; i < 6; i++) { - if (FLT_NEQ(x->gt[i], ref->gt[i])) { - rtwarn(_("Different geotransform matrices found in the set of rasters being converted to PostGIS raster")); - msg[4]++; - break; - } + rt_raster rx = NULL; + rt_raster rref = NULL; + int err; + int aligned; + + if ( + (rx = rt_raster_new(1, 1)) == NULL || + (rref = rt_raster_new(1, 1)) == NULL + ) { + rterror(_("diff_rastinfo: Could not allocate memory for raster alignment test")); + if (rx != NULL) rt_raster_destroy(rx); + if (rref != NULL) rt_raster_destroy(rref); + return; + } + + rt_raster_set_geotransform_matrix(rx, x->gt); + rt_raster_set_geotransform_matrix(rref, ref->gt); + + err = rt_raster_same_alignment(rx, rref, &aligned); + rt_raster_destroy(rx); + rt_raster_destroy(rref); + if (!err) { + rterror(_("diff_rastinfo: Could not run raster alignment test")); + return; + } + + if (!aligned) { + rtwarn(_("Raster with different alignment found in the set of rasters being converted to PostGIS raster")); + msg[4]++; } } -- 2.50.1