*/
GDALResampleAlg
rt_util_gdal_resample_alg(const char *algname) {
- if (!algname || !strlen(algname)) return GRA_NearestNeighbour;
+ assert(algname != NULL && strlen(algname) > 0);
if (strcmp(algname, "NEARESTNEIGHBOUR") == 0)
return GRA_NearestNeighbour;
*/
rt_extenttype
rt_util_extent_type(const char *name) {
+ assert(name != NULL && strlen(name) > 0);
+
if (strcmp(name, "UNION") == 0)
return ET_UNION;
else if (strcmp(name, "FIRST") == 0)
OGRSpatialReferenceH hsrs;
char *rtn = NULL;
+ assert(srs != NULL);
+
hsrs = OSRNewSpatialReference(NULL);
if (OSRSetFromUserInput(hsrs, srs) == OGRERR_NONE) {
if (proj4)
OGRSpatialReferenceH hsrs;
OGRErr rtn = OGRERR_NONE;
+ assert(srs != NULL);
+
hsrs = OSRNewSpatialReference(NULL);
rtn = OSRSetFromUserInput(hsrs, srs);
OSRDestroySpatialReference(hsrs);
void init_rt_warnreporter(const char * fmt, va_list ap);
void init_rt_inforeporter(const char * fmt, va_list ap);
-
-
/*
* Default allocators
*
free(mem);
}
-
void
default_rt_error_handler(const char *fmt, va_list ap) {
va_end(ap);
}
-
void
default_rt_info_handler(const char *fmt, va_list ap) {
va_end(ap);
}
-
/**
* Struct definition here
*/
int _x;
int _y;
- assert(npixel != NULL);
- assert(count > 0);
+ assert(npixel != NULL && count > 0);
+ assert(value != NULL);
+ assert(nodata != NULL);
/* dimensions */
dim[0] = distancex * 2 + 1;
rt_band
rt_band_duplicate(rt_band band) {
rt_band rtn = NULL;
+
assert(band != NULL);
/* offline */
rt_raster _rast = NULL;
rt_band _band = NULL;
+ int aligned = 0;
assert(band != NULL);
assert(band->raster != NULL);
RASTER_DEBUGF(3, "Offline geotransform (%f, %f, %f, %f, %f, %f)",
ogt[0], ogt[1], ogt[2], ogt[3], ogt[4], ogt[5]);
- /* check that geotransforms match */
- for (i = 0; i < 6; i++) {
- if (FLT_NEQ(gt[i], ogt[i])) {
- rtwarn("Georeferencing metadata does not match. Incorrect band data may be loaded");
- RASTER_DEBUGF(3, "Geotransform matrix element %d does not match", i);
- break;
- }
+ /* are rasters aligned? */
+ _rast = rt_raster_new(1, 1);
+ rt_raster_set_geotransform_matrix(_rast, ogt);
+ rt_raster_set_srid(_rast, band->raster->srid);
+ if (rt_raster_same_alignment(band->raster, _rast, &aligned, NULL) != ES_NONE) {
+ rterror("rt_band_load_offline_data: : Could not test alignment of in-db representation of out-db raster");
+ GDALClose(hdsSrc);
+ return ES_ERROR;
}
+ else if (!aligned) {
+ rtwarn("The in-db representation of the out-db raster is not aligned. Band data may be incorrect");
+ }
+ rt_raster_destroy(_rast);
/* get offsets */
rt_raster_geopoint_to_cell(
char ival = val;
+ assert(ch != NULL);
assert(8 - bitOffset >= bits);
RASTER_DEBUGF(4, "ival:%d bits:%d mask:%hhx bitoffset:%d\n",
uint32_t offset = 0;
assert(NULL != band);
+ assert(vals != NULL && len > 0);
RASTER_DEBUGF(3, "length of values = %d", len);
uint8_t *ptr = NULL;
assert(NULL != band);
+ assert(vals != NULL && nvals != NULL);
/* initialize to no values */
*nvals = 0;
uint32_t offset = 0;
assert(NULL != band);
+ assert(NULL != value);
/* set nodata to 0 */
if (nodata != NULL)
assert(NULL != band);
assert(NULL != pixels);
+ assert(NULL != searchset && searchcount > 0);
if (!band->hasnodata)
exclude_nodata_value = FALSE;
rt_errorstate
rt_band_get_nodata(rt_band band, double *nodata) {
assert(NULL != band);
+ assert(NULL != nodata);
*nodata = band->nodataval;