578 {
579 static uint8_t msg[6] = {0};
580 uint32_t i = 0;
581
582
583 if (
584 !msg[0] &&
586 ) {
587 rtwarn(
_(
"Different number of bands found in the set of rasters being converted to PostGIS raster"));
588 msg[0]++;
589 }
590
591
592 if (!msg[1]) {
594 if (
x->bandtype[i] != ref->
bandtype[i]) {
595 rtwarn(
_(
"Different pixel types found for band %d in the set of rasters being converted to PostGIS raster"), ref->
nband[i]);
596 msg[1]++;
597 }
598 }
599 }
600
601
602 if (!msg[2]) {
605 rtwarn(
_(
"Different hasnodata flags found for band %d in the set of rasters being converted to PostGIS raster"), ref->
nband[i]);
606 msg[2]++;
607 }
608 }
609 }
610
611
612 if (!msg[3]) {
614 if (!
x->hasnodata[i] && !ref->
hasnodata[i])
continue;
616 rtwarn(
_(
"Different NODATA values found for band %d in the set of rasters being converted to PostGIS raster"), ref->
nband[i]);
617 msg[3]++;
618 }
619 }
620 }
621
622
623 if (!msg[4]) {
626 int err;
627 int aligned;
628
629 if (
632 ) {
633 rterror(
_(
"diff_rastinfo: Could not allocate memory for raster alignment test"));
636 return;
637 }
638
641
646 rterror(
_(
"diff_rastinfo: Could not run raster alignment test"));
647 return;
648 }
649
650 if (!aligned) {
651 rtwarn(
_(
"Raster with different alignment found in the set of rasters being converted to PostGIS raster"));
652 msg[4]++;
653 }
654 }
655
656
657 if (!msg[5]) {
658 for (i = 0; i < 2; i++) {
660 rtwarn(
_(
"Different tile sizes found in the set of rasters being converted to PostGIS raster"));
661 msg[5]++;
662 break;
663 }
664 }
665 }
666}
void rterror(const char *fmt,...)
Wrappers used for reporting errors and info.
void rt_raster_set_geotransform_matrix(rt_raster raster, double *gt)
Set raster's geotransform using 6-element array.
void rt_raster_destroy(rt_raster raster)
Release memory associated to a raster.
rt_raster rt_raster_new(uint32_t width, uint32_t height)
Construct a raster with given dimensions.
void rtwarn(const char *fmt,...)
rt_errorstate rt_raster_same_alignment(rt_raster rast1, rt_raster rast2, int *aligned, char **reason)