From 781902e9bbf8442fa34805b1732e9ea5201ace12 Mon Sep 17 00:00:00 2001 From: Bborie Park Date: Mon, 22 Oct 2012 17:19:20 +0000 Subject: [PATCH] Changed signature of rt_band_get_nodata() as there was no way to indicate an error if the band has no NODATA. git-svn-id: http://svn.osgeo.org/postgis/trunk@10512 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/rt_core/rt_api.c | 66 ++++---- raster/rt_core/rt_api.h | 9 +- raster/rt_pg/rt_pg.c | 75 +++------ raster/test/core/testapi.c | 183 +++++++++++---------- raster/test/core/testwkb.c | 24 ++- raster/test/regress/rt_pixelvalue_expected | 3 +- 6 files changed, 175 insertions(+), 185 deletions(-) diff --git a/raster/rt_core/rt_api.c b/raster/rt_core/rt_api.c index 9d41d9940..7078473cb 100644 --- a/raster/rt_core/rt_api.c +++ b/raster/rt_core/rt_api.c @@ -2083,7 +2083,8 @@ rt_band_set_pixel_line( #endif /* set band's isnodata flag to FALSE */ - rt_band_set_isnodata_flag(band, 0); + if (rt_band_get_hasnodata_flag(band)) + rt_band_set_isnodata_flag(band, 0); return 1; } @@ -2393,8 +2394,6 @@ rt_band_get_pixel( ) { *nodata = 1; } - else - *nodata = 0; } return 0; @@ -2761,18 +2760,27 @@ rt_band_get_pixel_of_value( return count; } -// WORK FROM HERE -double -rt_band_get_nodata(rt_band band) { +/** + * Get NODATA value + * + * @param band: the band whose NODATA value will be returned + * @param nodata: the band's NODATA value + * + * @return 0 if error, 1 otherwise + */ +int +rt_band_get_nodata(rt_band band, double *nodata) { + assert(NULL != band); - assert(NULL != band); - - if (!band->hasnodata) - RASTER_DEBUGF(3, "Getting nodata value for a band without NODATA values. Using %g", band->nodataval); + *nodata = band->nodataval; + if (!band->hasnodata) { + rterror("rt_band_get_nodata: Band has no NODATA value"); + return 0; + } - return band->nodataval; + return 1; } double @@ -3021,7 +3029,7 @@ rt_band_get_summary_stats( hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata != FALSE) - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); else exclude_nodata_value = 0; @@ -3904,7 +3912,7 @@ rt_band_get_quantiles_stream(rt_band band, hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata != FALSE) - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); else exclude_nodata_value = 0; RASTER_DEBUGF(3, "nodata = %f", nodata); @@ -4499,7 +4507,7 @@ rt_band_get_value_count(rt_band band, int exclude_nodata_value, hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata != FALSE) - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); else exclude_nodata_value = 0; @@ -4744,7 +4752,8 @@ rt_band_reclass(rt_band srcband, rt_pixtype pixtype, /* source nodata */ src_hasnodata = rt_band_get_hasnodata_flag(srcband); - src_nodataval = rt_band_get_nodata(srcband); + if (src_hasnodata) + rt_band_get_nodata(srcband, &src_nodataval); /* size of memory block to allocate */ width = rt_band_get_width(srcband); @@ -5874,7 +5883,7 @@ rt_raster_gdal_polygonize( if (exclude_nodata_value) { iBandHasNodataValue = rt_band_get_hasnodata_flag(band); if (iBandHasNodataValue) - dBandNoData = rt_band_get_nodata(band); + rt_band_get_nodata(band, &dBandNoData); else exclude_nodata_value = FALSE; } @@ -8828,7 +8837,7 @@ rt_raster_to_gdal_mem( /* Add nodata value for band */ if (rt_band_get_hasnodata_flag(rtband) != FALSE && excludeNodataValues[i]) { - nodata = rt_band_get_nodata(rtband); + rt_band_get_nodata(rtband, &nodata); if (GDALSetRasterNoDataValue(band, nodata) != CE_None) rtwarn("rt_raster_to_gdal_mem: Could not set nodata value for band"); RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL)); @@ -9807,7 +9816,7 @@ rt_raster rt_raster_gdal_warp( /* set nodata */ if (rt_band_get_hasnodata_flag(rtband) != FALSE) { - nodata = rt_band_get_nodata(rtband); + rt_band_get_nodata(rtband, &nodata); if (GDALSetRasterNoDataValue(band, nodata) != CE_None) rtwarn("rt_raster_gdal_warp: Could not set nodata value for band %d", i); RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL)); @@ -9965,7 +9974,7 @@ rt_raster rt_raster_gdal_warp( wopts->padfSrcNoDataReal[i] = -123456.789; } else { - wopts->padfSrcNoDataReal[i] = rt_band_get_nodata(band); + rt_band_get_nodata(band, &(wopts->padfSrcNoDataReal[i])); } wopts->padfDstNoDataReal[i] = wopts->padfSrcNoDataReal[i]; @@ -11590,7 +11599,7 @@ rt_raster_intersects( hasnodataS = rt_band_get_hasnodata_flag(bandS); if (hasnodataS != FALSE) - nodataS = rt_band_get_nodata(bandS); + rt_band_get_nodata(bandS, &nodataS); /* load band of larger raster */ bandL = rt_raster_get_band(rastL, nbandL); @@ -11602,7 +11611,7 @@ rt_raster_intersects( hasnodataL = rt_band_get_hasnodata_flag(bandL); if (hasnodataL != FALSE) - nodataL = rt_band_get_nodata(bandL); + rt_band_get_nodata(bandL, &nodataL); /* no band to use, ignore nodata */ if (nband1 < 0) { @@ -13305,6 +13314,7 @@ rt_raster_iterator( double minval; double value; + int isnodata; int nodata; RASTER_DEBUG(3, "Starting..."); @@ -13747,7 +13757,7 @@ rt_raster_iterator( _param->band[i], x, y, &value, - NULL + &isnodata ) < 0) { rterror("rt_raster_iterator: Unable to get the pixel value of band"); @@ -13764,11 +13774,12 @@ rt_raster_iterator( RASTER_DEBUG(4, "Outside band extent, setting value to NODATA"); /* has NODATA, use NODATA */ if (rt_band_get_hasnodata_flag(_param->band[i])) - value = rt_band_get_nodata(_param->band[i]); + rt_band_get_nodata(_param->band[i], &value); /* no NODATA, use min possible value */ else value = rt_band_get_min_value(_param->band[i]); inextent = 0; + isnodata = 1; } /* add pixel to neighborhood */ @@ -13794,14 +13805,7 @@ rt_raster_iterator( npixels[status - 1].value = value; /* set nodata flag */ - if ( - (!rt_band_get_hasnodata_flag(_param->band[i]) && inextent) || ( - (rt_band_get_hasnodata_flag(_param->band[i]) != FALSE) && ( - FLT_NEQ(value, rt_band_get_nodata(_param->band[i])) && - (rt_band_clamped_value_is_nodata(_param->band[i], value) != 1) - ) - ) - ) { + if ((!rt_band_get_hasnodata_flag(_param->band[i]) && inextent) || !isnodata) { npixels[status - 1].nodata = 0; } RASTER_DEBUGF(4, "value, nodata: %f, %d", value, npixels[status - 1].nodata); diff --git a/raster/rt_core/rt_api.h b/raster/rt_core/rt_api.h index 3ff78a616..3ce57c28d 100644 --- a/raster/rt_core/rt_api.h +++ b/raster/rt_core/rt_api.h @@ -547,13 +547,14 @@ int rt_band_get_isnodata_flag(rt_band band); int rt_band_set_nodata(rt_band band, double val); /** - * Get nodata value + * Get NODATA value * - * @param band : the band to set nodata value to + * @param band: the band whose NODATA value will be returned + * @param nodata: the band's NODATA value * - * @return nodata value + * @return 0 if error, 1 otherwise */ -double rt_band_get_nodata(rt_band band); +int rt_band_get_nodata(rt_band band, double *nodata); /** * Set values of multiple pixels. Unlike rt_band_set_pixel, diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c index b0a9fcd16..45f7bf98a 100644 --- a/raster/rt_pg/rt_pg.c +++ b/raster/rt_pg/rt_pg.c @@ -2112,7 +2112,7 @@ Datum RASTER_getBandNoDataValue(PG_FUNCTION_ARGS) PG_RETURN_NULL(); } - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); rt_raster_destroy(raster); PG_FREE_IF_COPY(pgraster, 0); @@ -2377,7 +2377,8 @@ Datum RASTER_getPixelValue(PG_FUNCTION_ARGS) int32_t x = 0; int32_t y = 0; int result = 0; - bool hasnodata = TRUE; + bool exclude_nodata_value = TRUE; + int isnodata = 0; /* Index is 1-based */ bandindex = PG_GETARG_INT32(1); @@ -2390,7 +2391,7 @@ Datum RASTER_getPixelValue(PG_FUNCTION_ARGS) y = PG_GETARG_INT32(3); - hasnodata = PG_GETARG_BOOL(4); + exclude_nodata_value = PG_GETARG_BOOL(4); POSTGIS_RT_DEBUGF(3, "Pixel coordinates (%d, %d)", x, y); @@ -2415,12 +2416,11 @@ Datum RASTER_getPixelValue(PG_FUNCTION_ARGS) PG_RETURN_NULL(); } /* Fetch pixel using 0-based coordinates */ - result = rt_band_get_pixel(band, x - 1, y - 1, &pixvalue, NULL); + result = rt_band_get_pixel(band, x - 1, y - 1, &pixvalue, &isnodata); /* If the result is -1 or the value is nodata and we take nodata into account * then return nodata = NULL */ - if (result == -1 || (hasnodata && rt_band_get_hasnodata_flag(band) && - pixvalue == rt_band_get_nodata(band))) { + if (result == -1 || (exclude_nodata_value && isnodata)) { rt_raster_destroy(raster); PG_FREE_IF_COPY(pgraster, 0); PG_RETURN_NULL(); @@ -2714,7 +2714,7 @@ Datum RASTER_dumpValues(PG_FUNCTION_ARGS) /* band's hasnodata and nodataval */ hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata) - nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodataval); POSTGIS_RT_DEBUGF(4, "(hasnodata, nodataval) = (%d, %f)", hasnodata, nodataval); /* allocate memory for values and nodata flags */ @@ -2924,7 +2924,7 @@ Datum RASTER_setPixelValue(PG_FUNCTION_ARGS) PG_RETURN_POINTER(pgraster); } else { - pixvalue = rt_band_get_nodata(band); + rt_band_get_nodata(band, &pixvalue); rt_band_set_pixel(band, x - 1, y - 1, pixvalue); } } @@ -3298,7 +3298,7 @@ Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS) /* has NODATA, use NODATA */ hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata) - nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodataval); /* no NODATA, use min possible value */ else nodataval = rt_band_get_min_value(band); @@ -3559,7 +3559,7 @@ Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS) pixtype = rt_band_get_pixtype(band); hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata) - nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodataval); /* array of geomval (2) */ if (PG_ARGISNULL(2)) { @@ -3993,7 +3993,7 @@ Datum RASTER_getPixelPolygons(PG_FUNCTION_ARGS) hasnodata = rt_band_get_hasnodata_flag(band); if (hasnodata) { - nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodataval); POSTGIS_RT_DEBUGF(4, "(hasnodata, nodataval) = (%d, %f)", hasnodata, nodataval); } else @@ -4492,6 +4492,7 @@ Datum RASTER_nearestValue(PG_FUNCTION_ARGS) rt_pixel npixels = NULL; double value = 0; int hasvalue = 0; + int isnodata = 0; if (PG_ARGISNULL(0)) PG_RETURN_NULL(); @@ -4580,7 +4581,7 @@ Datum RASTER_nearestValue(PG_FUNCTION_ARGS) (x >= 0 && x < rt_raster_get_width(raster)) && (y >= 0 && y < rt_raster_get_height(raster)) ) { - if (rt_band_get_pixel(band, x, y, &value, NULL) < 0) { + if (rt_band_get_pixel(band, x, y, &value, &isnodata) < 0) { elog(ERROR, "RASTER_nearestValue: Unable to get pixel value for band at index %d", bandindex); rt_raster_destroy(raster); PG_FREE_IF_COPY(pgraster, 0); @@ -4590,16 +4591,7 @@ Datum RASTER_nearestValue(PG_FUNCTION_ARGS) } /* value at point, return value */ - if ( - !exclude_nodata_value || - !rt_band_get_hasnodata_flag(band) || ( - exclude_nodata_value && - rt_band_get_hasnodata_flag(band) && ( - FLT_NEQ(value, rt_band_get_nodata(band)) && - (rt_band_clamped_value_is_nodata(band, value) != 1) - ) - ) - ) { + if (!exclude_nodata_value || !isnodata) { rt_raster_destroy(raster); PG_FREE_IF_COPY(pgraster, 0); lwgeom_free(lwgeom); @@ -4699,6 +4691,7 @@ Datum RASTER_neighborhood(PG_FUNCTION_ARGS) int distance[2] = {0}; bool exclude_nodata_value = TRUE; double pixval; + int isnodata = 0; int inextent = 0; rt_pixel npixels = NULL; @@ -4815,7 +4808,7 @@ Datum RASTER_neighborhood(PG_FUNCTION_ARGS) band, _x, _y, &pixval, - NULL + &isnodata ) < 0) { elog(NOTICE, "Unable to get the pixel of band at index %d. Returning NULL", bandindex); rt_band_destroy(band); @@ -4829,11 +4822,12 @@ Datum RASTER_neighborhood(PG_FUNCTION_ARGS) else { /* has NODATA, use NODATA */ if (rt_band_get_hasnodata_flag(band)) - pixval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &pixval); /* no NODATA, use min possible value */ else pixval = rt_band_get_min_value(band); inextent = 0; + isnodata = 1; } POSTGIS_RT_DEBUGF(4, "pixval: %f", pixval); @@ -4859,16 +4853,7 @@ Datum RASTER_neighborhood(PG_FUNCTION_ARGS) npixels[count - 1].value = pixval; /* set NODATA */ - if ( - !exclude_nodata_value || - (!rt_band_get_hasnodata_flag(band) && inextent) || ( - exclude_nodata_value && - (rt_band_get_hasnodata_flag(band) != FALSE) && ( - FLT_NEQ(pixval, rt_band_get_nodata(band)) && - (rt_band_clamped_value_is_nodata(band, pixval) != 1) - ) - ) - ) { + if (!exclude_nodata_value || !isnodata) { npixels[count - 1].nodata = 0; } @@ -5702,7 +5687,7 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS) POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Getting NODATA value for band..."); if (rt_band_get_hasnodata_flag(band)) { - newnodatavalue = rt_band_get_nodata(band); + rt_band_get_nodata(band, &newnodatavalue); } else { @@ -6363,7 +6348,7 @@ Datum RASTER_mapAlgebraFct(PG_FUNCTION_ARGS) POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Getting NODATA value for band..."); if (rt_band_get_hasnodata_flag(band)) { - newnodatavalue = rt_band_get_nodata(band); + rt_band_get_nodata(band, &newnodatavalue); } else { @@ -11241,7 +11226,7 @@ Datum RASTER_bandmetadata(PG_FUNCTION_ARGS) /* nodatavalue */ if (bmd[i].hasnodata) - bmd[i].nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &(bmd[i].nodataval)); else bmd[i].nodataval = 0; @@ -13191,7 +13176,7 @@ Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS) _hasnodata[i] = rt_band_get_hasnodata_flag(_band[i]); if (_hasnodata[i]) - _nodataval[i] = rt_band_get_nodata(_band[i]); + rt_band_get_nodata(_band[i], &(_nodataval[i])); } /* pixtype is PT_END, get pixtype based upon extent */ @@ -13269,12 +13254,6 @@ Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS) rt_raster_get_srid(raster) ); - POSTGIS_RT_DEBUGF(4, "bandmetadata = (%s, %d, %f)", - rt_pixtype_name(rt_band_get_pixtype(band)), - rt_band_get_hasnodata_flag(band), - rt_band_get_nodata(band) - ); - /* determine who called this function Arg 4 will either be text or regprocedure @@ -14055,7 +14034,7 @@ Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS) POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Getting NODATA value for band..."); if (rt_band_get_hasnodata_flag(band)) { - newnodatavalue = rt_band_get_nodata(band); + rt_band_get_nodata(band, &newnodatavalue); } else { @@ -15124,7 +15103,7 @@ Datum RASTER_nMapAlgebra(PG_FUNCTION_ARGS) /* set hasnodata and nodataval */ arg->hasnodata = 1; if (rt_band_get_hasnodata_flag(band)) - arg->nodataval = rt_band_get_nodata(band); + rt_band_get_nodata(band, &(arg->nodataval)); else arg->nodataval = rt_band_get_min_value(band); @@ -15810,7 +15789,7 @@ Datum RASTER_union_transfn(PG_FUNCTION_ARGS) pixtype = rt_band_get_pixtype(_band); hasnodata = 1; if (rt_band_get_hasnodata_flag(_band)) - nodataval = rt_band_get_nodata(_band); + rt_band_get_nodata(_band, &nodataval); else nodataval = rt_band_get_min_value(_band); } @@ -15946,7 +15925,7 @@ Datum RASTER_union_finalfn(PG_FUNCTION_ARGS) pixtype = rt_band_get_pixtype(_band); hasnodata = rt_band_get_hasnodata_flag(_band); if (hasnodata) - nodataval = rt_band_get_nodata(_band); + rt_band_get_nodata(_band, &nodataval); POSTGIS_RT_DEBUGF(4, "(pixtype, hasnodata, nodataval) = (%s, %d, %f)", rt_pixtype_name(pixtype), hasnodata, nodataval); itrset[0].raster = iwr->bandarg[i].raster[0]; diff --git a/raster/test/core/testapi.c b/raster/test/core/testapi.c index 42f274298..4c80c2470 100644 --- a/raster/test/core/testapi.c +++ b/raster/test/core/testapi.c @@ -371,13 +371,13 @@ static void testBand1BB(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - //printf("1BB nodata is %g\n", rt_band_get_nodata(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 1); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - //printf("1BB nodata is %g\n", rt_band_get_nodata(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 0); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 2); CHECK(failure); /* out of range value */ @@ -421,22 +421,22 @@ static void testBand2BUI(rt_band band) int failure; failure = rt_band_set_nodata(band, 1); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); CHECK(!failure); failure = rt_band_set_nodata(band, 0); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); CHECK(!failure); failure = rt_band_set_nodata(band, 2); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 2); CHECK(!failure); failure = rt_band_set_nodata(band, 3); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 3); CHECK(!failure); @@ -489,31 +489,31 @@ static void testBand4BUI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK(!failure); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 2); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK(!failure); CHECK_EQUALS(val, 2); failure = rt_band_set_nodata(band, 4); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK(!failure); CHECK_EQUALS(val, 4); failure = rt_band_set_nodata(band, 8); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK(!failure); CHECK_EQUALS(val, 8); failure = rt_band_set_nodata(band, 15); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK(!failure); CHECK_EQUALS(val, 15); @@ -570,42 +570,42 @@ static void testBand8BUI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 2); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 2); failure = rt_band_set_nodata(band, 4); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 4); failure = rt_band_set_nodata(band, 8); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 8); failure = rt_band_set_nodata(band, 15); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 15); failure = rt_band_set_nodata(band, 31); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 31); failure = rt_band_set_nodata(band, 255); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 255); failure = rt_band_set_nodata(band, 256); /* out of value range */ @@ -649,46 +649,46 @@ static void testBand8BSI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 2); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 2); failure = rt_band_set_nodata(band, 4); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 4); failure = rt_band_set_nodata(band, 8); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 8); failure = rt_band_set_nodata(band, 15); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 15); failure = rt_band_set_nodata(band, 31); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 31); failure = rt_band_set_nodata(band, -127); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, -127); failure = rt_band_set_nodata(band, 127); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 127); /* out of range (-127..127) */ @@ -750,27 +750,27 @@ static void testBand16BUI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 31); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 31); failure = rt_band_set_nodata(band, 255); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 255); failure = rt_band_set_nodata(band, 65535); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); //printf("set 65535 on %s band gets %g back\n", pixtypeName, val); CHECK_EQUALS(val, 65535); @@ -814,33 +814,33 @@ static void testBand16BSI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 31); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 31); failure = rt_band_set_nodata(band, 255); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 255); failure = rt_band_set_nodata(band, -32767); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); //printf("set 65535 on %s band gets %g back\n", pixtypeName, val); CHECK_EQUALS(val, -32767); failure = rt_band_set_nodata(band, 32767); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); //printf("set 65535 on %s band gets %g back\n", pixtypeName, val); CHECK_EQUALS(val, 32767); @@ -899,22 +899,22 @@ static void testBand32BUI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 65535); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 65535); failure = rt_band_set_nodata(band, 4294967295UL); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 4294967295UL); /* out of range */ @@ -971,22 +971,22 @@ static void testBand32BSI(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 65535); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 65535); failure = rt_band_set_nodata(band, 2147483647); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); /*printf("32BSI pix is %ld\n", (long int)val);*/ CHECK_EQUALS(val, 2147483647); @@ -1044,23 +1044,23 @@ static void testBand32BF(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 65535.5); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); //printf("set 65535.56 on %s band gets %g back\n", pixtypeName, val); CHECK_EQUALS_DOUBLE(val, 65535.5); failure = rt_band_set_nodata(band, 0.006); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS_DOUBLE(val, 0.0060000000521540); /* XXX: Alternatively, use CHECK_EQUALS_DOUBLE_EX */ { @@ -1105,22 +1105,22 @@ static void testBand64BF(rt_band band) failure = rt_band_set_nodata(band, 1); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 1); failure = rt_band_set_nodata(band, 0); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0); failure = rt_band_set_nodata(band, 65535.56); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 65535.56); failure = rt_band_set_nodata(band, 0.006); CHECK(!failure); - val = rt_band_get_nodata(band); + rt_band_get_nodata(band, &val); CHECK_EQUALS(val, 0.006); { @@ -1243,7 +1243,7 @@ static void testBandStats() { } } - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); CHECK_EQUALS(nodata, 0); stats = (rt_bandstats) rt_band_get_summary_stats(band, 1, 0, 1, NULL, NULL, NULL); @@ -1340,7 +1340,7 @@ static void testBandStats() { } } - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); CHECK_EQUALS(nodata, 0); quantile = (rt_quantile) rt_band_get_quantiles_stream( @@ -1374,7 +1374,7 @@ static void testBandStats() { } } - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); CHECK_EQUALS(nodata, 0); max_run = 5; @@ -1424,7 +1424,7 @@ static void testRasterReplaceBand() { rband = rt_raster_replace_band(raster, band, 0); CHECK(rband); - nodata = rt_band_get_nodata(rt_raster_get_band(raster, 0)); + rt_band_get_nodata(rt_raster_get_band(raster, 0), &nodata); CHECK((nodata == 1)); deepRelease(raster); @@ -1461,7 +1461,7 @@ static void testBandReclass() { } } - nodata = rt_band_get_nodata(band); + rt_band_get_nodata(band, &nodata); CHECK_EQUALS(nodata, 0); exprset = rtalloc(cnt * sizeof(rt_reclassexpr)); @@ -1822,7 +1822,8 @@ static void testGDALWarp() { CHECK(band); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK(FLT_EQ(rt_band_get_nodata(band), 0.)); + rt_band_get_nodata(band, &value); + CHECK(FLT_EQ(value, 0.)); CHECK(rt_band_get_pixel(band, 0, 0, &value, NULL) == 0); CHECK(FLT_EQ(value, 0.)); @@ -1942,7 +1943,7 @@ static void testIntersects() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); /* @@ -1967,7 +1968,7 @@ static void testIntersects() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_intersects( @@ -2181,7 +2182,7 @@ static void testIntersects() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_intersects( @@ -2405,7 +2406,7 @@ static void testOverlaps() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_overlaps( @@ -2438,7 +2439,7 @@ static void testOverlaps() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_overlaps( @@ -2652,7 +2653,7 @@ static void testOverlaps() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_overlaps( @@ -2876,7 +2877,7 @@ static void testTouches() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_touches( @@ -2909,7 +2910,7 @@ static void testTouches() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_touches( @@ -3175,7 +3176,7 @@ static void testTouches() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_touches( @@ -3399,7 +3400,7 @@ static void testContains() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains( @@ -3432,7 +3433,7 @@ static void testContains() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains( @@ -3698,7 +3699,7 @@ static void testContains() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains( @@ -3922,7 +3923,7 @@ static void testContainsProperly() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains_properly( @@ -3955,7 +3956,7 @@ static void testContainsProperly() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains_properly( @@ -4221,7 +4222,7 @@ static void testContainsProperly() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_contains_properly( @@ -4445,7 +4446,7 @@ static void testCovers() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_covers( @@ -4478,7 +4479,7 @@ static void testCovers() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_covers( @@ -4744,7 +4745,7 @@ static void testCovers() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_covers( @@ -4968,7 +4969,7 @@ static void testCoveredBy() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_coveredby( @@ -5001,7 +5002,7 @@ static void testCoveredBy() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_coveredby( @@ -5267,7 +5268,7 @@ static void testCoveredBy() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_coveredby( @@ -5491,7 +5492,7 @@ static void testDWithin() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_within_distance( @@ -5533,7 +5534,7 @@ static void testDWithin() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_within_distance( @@ -5774,7 +5775,7 @@ static void testDWithin() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_within_distance( @@ -6049,7 +6050,7 @@ static void testDFullyWithin() { rtn = rt_band_set_pixel(band1, 1, 0, 1); rtn = rt_band_set_pixel(band1, 1, 1, 1); - nodata = rt_band_get_nodata(band1); + rt_band_get_nodata(band1, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_fully_within_distance( @@ -6091,7 +6092,7 @@ static void testDFullyWithin() { rtn = rt_band_set_pixel(band2, 1, 0, 1); rtn = rt_band_set_pixel(band2, 1, 1, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_fully_within_distance( @@ -6332,7 +6333,7 @@ static void testDFullyWithin() { rtn = rt_band_set_pixel(band2, 2, 1, 1); rtn = rt_band_set_pixel(band2, 2, 2, 1); - nodata = rt_band_get_nodata(band2); + rt_band_get_nodata(band2, &nodata); CHECK_EQUALS(nodata, 0); rtn = rt_raster_fully_within_distance( diff --git a/raster/test/core/testwkb.c b/raster/test/core/testwkb.c index 16d100f06..76bb7c0c3 100644 --- a/raster/test/core/testwkb.c +++ b/raster/test/core/testwkb.c @@ -187,7 +187,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_1BB); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 0); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 0); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); CHECK_EQUALS(val, 1); @@ -252,7 +253,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_8BSI); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), -1); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, -1); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -350,7 +352,6 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_16BSI); CHECK(!rt_band_is_offline(band)); CHECK(!rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), -1); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -435,7 +436,6 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_16BSI); CHECK(!rt_band_is_offline(band)); CHECK(!rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), -1); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -510,12 +510,14 @@ main() CHECK_EQUALS(rt_raster_get_width(raster), 3); CHECK_EQUALS(rt_raster_get_height(raster), 2); { + double val; rt_band band = rt_raster_get_band(raster, 0); CHECK(band); CHECK_EQUALS(rt_band_get_pixtype(band), PT_16BSI); CHECK(rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), -1); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, -1); printf("ext band path: %s\n", rt_band_get_ext_path(band)); printf("ext band num: %u\n", rt_band_get_ext_band_num(band)); CHECK( ! strcmp(rt_band_get_ext_path(band), "/tmp/t.tif")); @@ -577,7 +579,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_16BSI); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 1); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 1); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -672,7 +675,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_8BUI); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 0); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 0); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -704,7 +708,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_8BUI); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 0); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 0); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); @@ -736,7 +741,8 @@ main() CHECK_EQUALS(rt_band_get_pixtype(band), PT_8BUI); CHECK(!rt_band_is_offline(band)); CHECK(rt_band_get_hasnodata_flag(band)); - CHECK_EQUALS(rt_band_get_nodata(band), 0); + rt_band_get_nodata(band, &val); + CHECK_EQUALS(val, 0); failure = rt_band_get_pixel(band, 0, 0, &val, NULL); CHECK(!failure); diff --git a/raster/test/regress/rt_pixelvalue_expected b/raster/test/regress/rt_pixelvalue_expected index 8f0eec921..5dbb56fd1 100644 --- a/raster/test/regress/rt_pixelvalue_expected +++ b/raster/test/regress/rt_pixelvalue_expected @@ -1,7 +1,5 @@ NOTICE: Band's isnodata flag is TRUE. Returning NODATA value NOTICE: Band's isnodata flag is TRUE. Returning NODATA value -NOTICE: Band's isnodata flag is TRUE. Returning NODATA value -NOTICE: Band's isnodata flag is TRUE. Returning NODATA value NOTICE: Attempting to get pixel value with out of range raster coordinates: (-2, -2) NOTICE: Attempting to get pixel value with out of range raster coordinates: (-2, -2) NOTICE: Attempting to get pixel value with out of range raster coordinates: (-2, -2) @@ -9,5 +7,6 @@ NOTICE: Attempting to get pixel value with out of range raster coordinates: (-2 NOTICE: Band's isnodata flag is TRUE. Returning NODATA value NOTICE: Raster do not have a nodata value defined. Set band nodata value first. Nodata value not set. Returning original raster NOTICE: Raster do not have a nodata value defined. Set band nodata value first. Nodata value not set. Returning original raster +NOTICE: Setting isnodata to FALSE as band no longer has NODATA NOTICE: Raster do not have a nodata value defined. Set band nodata value first. Nodata value not set. Returning original raster NOTICE: Raster do not have a nodata value defined. Set band nodata value first. Nodata value not set. Returning original raster -- 2.40.0