]> granicus.if.org Git - postgis/commitdiff
Removed rt_raster_transform from rt_api.c and any calls to it since rt_raster_gdal_wa...
authorBborie Park <bkpark at ucdavis.edu>
Thu, 23 Jun 2011 20:46:32 +0000 (20:46 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Thu, 23 Jun 2011 20:46:32 +0000 (20:46 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@7455 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_core/rt_api.c
raster/rt_core/rt_api.h
raster/rt_pg/rt_pg.c
raster/test/core/testapi.c

index b925a6cee932a3f56f9aba3394f0857dc344272d..8263f2085122dd68d2920e2ab6a1bd0c85bda1c4 100644 (file)
@@ -5896,156 +5896,6 @@ rt_raster_from_gdal_dataset(GDALDatasetH ds) {
        return rast;
 }
 
-/**
- * Return a transformed raster using GDALAutoCreateWarpedVRT()
- *
- * @param raster : raster to transform
- * @param src_srs : the raster's coordinate system in OGC WKT or PROJ.4
- * @param dst_srs : the transformed raster's coordinate system
- * @param resample_alg : the resampling algorithm
- * @param max_err : maximum error measured in input pixels permitted
- *   (0.0 for exact calculations)
- *
- * @return the transformed raster
- */
-rt_raster
-rt_raster_transform(rt_raster raster, char *src_srs, char *dst_srs,
-       GDALResampleAlg resample_alg, double max_err) {
-       GDALDriverH src_drv = NULL;
-       GDALDatasetH src_ds = NULL;
-       GDALWarpOptions *wopts = NULL;
-       GDALDatasetH dst_ds = NULL;
-
-       rt_raster rast = NULL;
-       rt_band band = NULL;
-       int i = 0;
-       int numBands = 0;
-       int hasnodata = 0;
-
-       RASTER_DEBUG(3, "starting");
-
-       assert(NULL != raster);
-       assert(NULL != src_srs);
-       assert(NULL != dst_srs);
-
-       /*
-               max_err must be gte zero
-
-               the value 0.125 is the default used in gdalwarp.cpp on line 283
-       */
-       if (max_err < 0.) max_err = 0.125;
-       RASTER_DEBUGF(4, "max_err = %f", max_err);
-
-       /* load raster into a GDAL MEM dataset */
-       src_ds = rt_raster_to_gdal_mem(raster, src_srs, NULL, 0, &src_drv);
-       if (NULL == src_ds) {
-               rterror("rt_raster_transform: Unable to convert raster to GDAL MEM format\n");
-               if (NULL != src_drv) {
-                       GDALDeregisterDriver(src_drv);
-                       GDALDestroyDriver(src_drv);
-               }
-               return NULL;
-       }
-       RASTER_DEBUG(3, "raster loaded into GDAL MEM dataset");
-
-       /* set nodata mapping */
-       RASTER_DEBUG(3, "Setting nodata mapping");
-       numBands = rt_raster_get_num_bands(raster);
-       wopts = GDALCreateWarpOptions();
-       wopts->nBandCount = numBands;
-       wopts->padfSrcNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
-       wopts->padfDstNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
-       wopts->padfSrcNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
-       wopts->padfDstNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
-       if (
-               NULL == wopts ||
-               NULL == wopts->padfSrcNoDataReal ||
-               NULL == wopts->padfDstNoDataReal ||
-               NULL == wopts->padfSrcNoDataImag ||
-               NULL == wopts->padfDstNoDataImag
-       ) {
-               rterror("rt_raster_transform: Out of memory allocating nodata mapping\n");
-               GDALDestroyWarpOptions(wopts);
-               GDALClose(src_ds);
-               GDALDeregisterDriver(src_drv);
-               GDALDestroyDriver(src_drv);
-               return NULL;
-       }
-       for (i = 0; i < numBands; i++) {
-               band = rt_raster_get_band(raster, i);
-               if (!band) {
-                       rterror("rt_raster_transform: Unable to process bands for nodata values\n");
-                       GDALDestroyWarpOptions(wopts);
-                       GDALClose(src_ds);
-                       GDALDeregisterDriver(src_drv);
-                       GDALDestroyDriver(src_drv);
-                       return NULL;
-               }
-
-               if (!rt_band_get_hasnodata_flag(band)) {
-                       /*
-                               based on line 1004 of gdalwarp.cpp
-                               the problem is that there is a chance that this number is a legitimate value
-                       */
-                       wopts->padfSrcNoDataReal[i] = -123456.789;
-               }
-               else {
-                       hasnodata = 1;
-                       wopts->padfSrcNoDataReal[i] = rt_band_get_nodata(band);
-                       RASTER_DEBUGF(4, "Added nodata value %f for band %d", wopts->padfSrcNoDataReal[i], i);
-               }
-
-               wopts->padfDstNoDataReal[i] = wopts->padfSrcNoDataReal[i];
-               wopts->padfDstNoDataImag[i] = wopts->padfSrcNoDataImag[i] = 0.0;
-       }
-       if (!hasnodata) {
-               RASTER_DEBUG(3, "No nodata mapping found");
-               GDALDestroyWarpOptions(wopts);
-               wopts = NULL;
-       }
-
-       /*
-               for now, just use GDALAutoCreateWarpedVRT as it gets the job done
-               in the future, it may be better to go down the more flexible but challenging path
-               of gdal/apps/gdalwarp.cpp
-       */
-       RASTER_DEBUG(3, "Reprojecting raster");
-       dst_ds = GDALAutoCreateWarpedVRT(
-               src_ds,
-               NULL, dst_srs,
-               resample_alg, max_err,
-               wopts
-       );
-       RASTER_DEBUG(3, "Raster reprojected");
-       if (NULL == dst_ds) {
-               rterror("rt_raster_transform: Unable to transform raster\n");
-               if (hasnodata) GDALDestroyWarpOptions(wopts);
-               GDALClose(src_ds);
-               GDALDeregisterDriver(src_drv);
-               GDALDestroyDriver(src_drv);
-               return NULL;
-       }
-
-       /* convert gdal dataset to raster */
-       RASTER_DEBUG(3, "Converting GDAL dataset to raster");
-       rast = rt_raster_from_gdal_dataset(dst_ds);
-
-       if (hasnodata) GDALDestroyWarpOptions(wopts);
-       GDALClose(dst_ds);
-       GDALClose(src_ds);
-       GDALDeregisterDriver(src_drv);
-       GDALDestroyDriver(src_drv);
-
-       if (NULL == rast) {
-               rterror("rt_raster_transform: Unable to transform raster\n");
-               return NULL;
-       }
-
-       RASTER_DEBUG(3, "done");
-
-       return rast;
-}
-
 /**
  * Return a warped raster using GDAL Warp API
  *
index e704485307d7fc61d0b07ddd10c95e8b58d1c0e3..086bf781652b6296c3a87b739ea3c79fa5aef498 100644 (file)
@@ -927,21 +927,6 @@ GDALDatasetH rt_raster_to_gdal_mem(rt_raster raster, char *srs,
  */
 rt_raster rt_raster_from_gdal_dataset(GDALDatasetH ds);
 
-/**
- * Return a transformed raster using GDALAutoCreateWarpedVRT()
- *
- * @param raster : raster to transform
- * @param src_srs : the raster's coordinate system in OGC WKT or PROJ.4
- * @param dst_srs : the transformed raster's coordinate system
- * @param resample_alg : the resampling algorithm
- * @param max_err : maximum error measured in input pixels permitted
- *   (0.0 for exact calculations)
- *
- * @return the transformed raster
- */
-rt_raster rt_raster_transform(rt_raster raster, char *src_srs,
-       char *dst_srs, GDALResampleAlg resample_alg, double max_err);
-
 /**
  * Return a warped raster using GDAL Warp API
  *
index c4297ad06cc22267ca5dba59703385fdeeb39d08..b640c727bb15354a39db1e8c00add6aa0c691092 100644 (file)
@@ -4990,9 +4990,6 @@ Datum RASTER_transform(PG_FUNCTION_ARGS)
        SPI_finish();
        pfree(sql);
 
-       /*
-       rast = rt_raster_transform(raster, src_srs, dst_srs, alg, max_err);
-       */
        rast = rt_raster_gdal_warp(raster, src_srs,
                dst_srs,
                NULL, NULL,
index 6352d3ae93eb7e81755772537fc8a6fcd108ecee..a0a593a38d9d378983e37a55e71dcbddbb7d5c4d 100644 (file)
@@ -1459,7 +1459,7 @@ static void testGDALToRaster() {
        deepRelease(raster);
 }
 
-static void testTransform() {
+static void testGDALWarp() {
        rt_raster raster;
        rt_raster rast;
        rt_band band;
@@ -1490,31 +1490,6 @@ static void testTransform() {
                }
        }
 
-       /*
-       rast = rt_raster_transform(
-               raster,
-               src_srs,
-               dst_srs,
-               GRA_NearestNeighbour,
-               -1
-       );
-       CHECK(rast);
-       CHECK((rt_raster_get_width(rast) == 124));
-       CHECK((rt_raster_get_height(rast) == 117));
-       CHECK((rt_raster_get_num_bands(rast) != 0));
-
-       band = rt_raster_get_band(rast, 0);
-       CHECK(band);
-
-       CHECK(rt_band_get_hasnodata_flag(band));
-       CHECK((fabs(rt_band_get_nodata(band) - 0.) < FLT_EPSILON));
-
-       CHECK(rt_band_get_pixel(band, 0, 0, &value) == 0);
-       CHECK(fabs(value - 0.) < FLT_EPSILON);
-
-       deepRelease(rast);
-       */
-
        rast = rt_raster_gdal_warp(
                raster,
                src_srs, dst_srs,
@@ -1927,9 +1902,9 @@ main()
                testGDALToRaster();
                printf("Successfully tested rt_raster_from_gdal_dataset\n");
 
-               printf("Testing rt_raster_transform\n");
-               testTransform();
-               printf("Successfully tested rt_raster_transform\n");
+               printf("Testing rt_raster_gdal_warp\n");
+               testGDALWarp();
+               printf("Successfully tested rt_raster_gdal_warp\n");
 
     deepRelease(raster);