From: Bborie Park Date: Tue, 31 May 2011 22:47:33 +0000 (+0000) Subject: code refactored and added copying of raster attributes to new raster in rt_raster_fro... X-Git-Tag: 2.0.0alpha1~1512 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=47629e9ccdd718d86954e5ed7df680f623a86989;p=postgis code refactored and added copying of raster attributes to new raster in rt_raster_from_band git-svn-id: http://svn.osgeo.org/postgis/trunk@7302 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_core/rt_api.c b/raster/rt_core/rt_api.c index 09d5d3eab..57a115b80 100644 --- a/raster/rt_core/rt_api.c +++ b/raster/rt_core/rt_api.c @@ -5192,12 +5192,22 @@ rt_raster_from_band(rt_raster raster, uint32_t *bandNums, int count) { rt_raster_get_num_bands(raster)); /* create new raster */ - rast = rt_raster_new(raster->width, raster->height); - if (!rast) { + rast = rt_raster_new(rt_raster_get_width(raster), rt_raster_get_height(raster)); + if (NULL == rast) { rterror("rt_raster_from_band: Out of memory allocating new raster\n"); return 0; } + /* copy raster attributes */ + /* scale */ + rt_raster_set_scale(rast, rt_raster_get_x_scale(raster), rt_raster_get_y_scale(raster)); + /* offset */ + rt_raster_set_offsets(rast, rt_raster_get_x_offset(raster), rt_raster_get_y_offset(raster)); + /* skew */ + rt_raster_set_skews(rast, rt_raster_get_x_skew(raster), rt_raster_get_y_skew(raster)); + /* srid */ + rt_raster_set_srid(rast, rt_raster_get_srid(raster)); + /* copy bands */ for (i = 0; i < count; i++) { idx = bandNums[i]; @@ -5480,12 +5490,13 @@ rt_raster_to_gdal_mem(rt_raster raster, char *srs, GDALRegister_MEM(); if (NULL == *rtn_drv) { drv = GDALGetDriverByName("MEM"); - *rtn_drv = drv; - drv_gen = 1; if (NULL == drv) { rterror("rt_raster_to_gdal_mem: Unable to load the MEM GDAL driver\n"); return 0; } + + *rtn_drv = drv; + drv_gen = 1; } ds = GDALCreate(drv, "", rt_raster_get_width(raster),