rtn != -1 && (
!exclude_nodata_value || (
exclude_nodata_value &&
- (hasnodata != FALSE) &&
- FLT_NEQ(value, nodata)
+ (hasnodata != FALSE) && (
+ FLT_NEQ(value, nodata) &&
+ (rt_band_clamped_value_is_nodata(band, value) != 1)
+ )
)
)
) {
status != -1 && (
!exclude_nodata_value || (
exclude_nodata_value &&
- (hasnodata != FALSE) &&
- FLT_NEQ(value, nodata)
+ (hasnodata != FALSE) && (
+ FLT_NEQ(value, nodata) &&
+ (rt_band_clamped_value_is_nodata(band, value) != 1)
+ )
)
)
) {
if (
!exclude_nodata_value || (
exclude_nodata_value &&
- (hasnodata != FALSE) &&
- FLT_NEQ(pxlval, nodata)
+ (hasnodata != FALSE) && (
+ FLT_NEQ(pxlval, nodata) &&
+ (rt_band_clamped_value_is_nodata(band, pxlval) != 1)
+ )
)
) {
total++;
do_nv = 0;
/* no data*/
- if (src_hasnodata && hasnodata && ov == src_nodataval) {
+ if (src_hasnodata && hasnodata && FLT_EQ(ov, src_nodataval)) {
do_nv = 1;
break;
}
/**
* Get pixel value
*
- * @param band : the band to set nodata value to
+ * @param band : the band to get pixel value from
* @param x : x ordinate (0-based)
* @param y : x ordinate (0-based)
* @param *result: result if there is a value
/* Free raster objects used */
rt_raster_destroy(raster);
- rtdealloc(wkb);
+ pfree(wkb);
PG_RETURN_POINTER(result);
}
/* Free raster objects used */
rt_raster_destroy(raster);
- rtdealloc(wkb);
+ pfree(wkb);
PG_RETURN_POINTER(result);
}