[GRASS-SVN] r46725 - grass/trunk/raster3d/r3.to.rast

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Jun 16 09:58:44 EDT 2011


Author: huhabla
Date: 2011-06-16 06:58:43 -0700 (Thu, 16 Jun 2011)
New Revision: 46725

Added:
   grass/trunk/raster3d/r3.to.rast/test.r3.to.rast.sh
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00001.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00002.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00003.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00004.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00005.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00001.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00002.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00003.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00004.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00005.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00001.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00002.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00003.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00004.ref
   grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00005.ref
Modified:
   grass/trunk/raster3d/r3.to.rast/main.c
Log:
Implemented new row order for volume data. Added tests and reference
data.


Modified: grass/trunk/raster3d/r3.to.rast/main.c
===================================================================
--- grass/trunk/raster3d/r3.to.rast/main.c	2011-06-16 12:38:11 UTC (rev 46724)
+++ grass/trunk/raster3d/r3.to.rast/main.c	2011-06-16 13:58:43 UTC (rev 46725)
@@ -1,20 +1,20 @@
 
 /****************************************************************************
-*
-* MODULE:       r3.to.rast 
-*   	    	
-* AUTHOR(S):    Original author 
-*               Soeren Gebbert soerengebbert at gmx.de
-* 		08 01 2005 Berlin
-* PURPOSE:      Converts 3D raster maps to 2D raster maps  
-*
-* COPYRIGHT:    (C) 2005 by the GRASS Development Team
-*
-*               This program is free software under the GNU General Public
-*   	    	License (>=v2). Read the file COPYING that comes with GRASS
-*   	    	for details.
-*
-*****************************************************************************/
+ *
+ * MODULE:       r3.to.rast 
+ *   	    	
+ * AUTHOR(S):    Original author 
+ *               Soeren Gebbert soerengebbert at gmx.de
+ * 		08 01 2005 Berlin
+ * PURPOSE:      Converts 3D raster maps to 2D raster maps  
+ *
+ * COPYRIGHT:    (C) 2005 by the GRASS Development Team
+ *
+ *               This program is free software under the GNU General Public
+ *   	    	License (>=v2). Read the file COPYING that comes with GRASS
+ *   	    	for details.
+ *
+ *****************************************************************************/
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -23,28 +23,27 @@
 #include <grass/G3d.h>
 #include <grass/glocale.h>
 
-
 /*- Parameters and global variables -----------------------------------------*/
-typedef struct
-{
+typedef struct {
     struct Option *input, *output;
     struct Flag *mask;
-    struct Flag *res;		/*If set, use the same resolution as the input map */
+    struct Flag *res; /*If set, use the same resolution as the input map */
 } paramType;
 
-paramType param;		/*Parameters */
+paramType param; /*Parameters */
 
 /*- prototypes --------------------------------------------------------------*/
-void fatal_error(void *map, int *fd, int depths, char *errorMsg);	/*Simple Error message */
-void set_params();		/*Fill the paramType structure */
-void g3d_to_raster(void *map, G3D_Region region, int *fd);	/*Write the raster */
-int open_output_map(const char *name, int res_type);	/*opens the outputmap */
-void close_output_map(int fd);	/*close the map */
+void fatal_error(void *map, int *fd, int depths, char *errorMsg); /*Simple Error message */
+void set_params(); /*Fill the paramType structure */
+void g3d_to_raster(void *map, G3D_Region region, int *fd); /*Write the raster */
+int open_output_map(const char *name, int res_type); /*opens the outputmap */
+void close_output_map(int fd); /*close the map */
 
 
 
 /* ************************************************************************* */
 /* Error handling ********************************************************** */
+
 /* ************************************************************************* */
 void fatal_error(void *map, int *fd, int depths, char *errorMsg)
 {
@@ -52,13 +51,13 @@
 
     /* Close files and exit */
     if (map != NULL) {
-	if (!G3d_closeCell(map))
-	    G3d_fatalError(_("Unable to close the 3d raster map"));
+        if (!G3d_closeCell(map))
+            G3d_fatalError(_("Unable to close the 3d raster map"));
     }
 
     if (fd != NULL) {
-	for (i = 0; i < depths; i++)
-	    Rast_unopen(fd[i]);
+        for (i = 0; i < depths; i++)
+            Rast_unopen(fd[i]);
     }
 
     G3d_fatalError(errorMsg);
@@ -68,6 +67,7 @@
 
 /* ************************************************************************* */
 /* Set up the arguments we are expecting ********************************** */
+
 /* ************************************************************************* */
 void set_params()
 {
@@ -77,7 +77,7 @@
     param.input->required = YES;
     param.input->gisprompt = "old,grid3,3d-raster";
     param.input->description =
-	_("3d raster map(s) to be converted to 2D raster slices");
+        _("3d raster map(s) to be converted to 2D raster slices");
 
     param.output = G_define_option();
     param.output->key = "output";
@@ -93,12 +93,13 @@
     param.res = G_define_flag();
     param.res->key = 'r';
     param.res->description =
-	_("Use the same resolution as the input G3D map for the 2d output "
-	  "maps, independent of the current region settings");
+        _("Use the same resolution as the input G3D map for the 2d output "
+          "maps, independent of the current region settings");
 }
 
 /* ************************************************************************* */
 /* Write the slices to seperate raster maps ******************************** */
+
 /* ************************************************************************* */
 void g3d_to_raster(void *map, G3D_Region region, int *fd)
 {
@@ -114,62 +115,62 @@
 
 
     G_debug(2, "g3d_to_raster: Writing %i raster maps with %i rows %i cols.",
-	    depths, rows, cols);
+            depths, rows, cols);
 
     typeIntern = G3d_tileTypeMap(map);
 
     if (typeIntern == FCELL_TYPE)
-	fcell = Rast_allocate_f_buf();
+        fcell = Rast_allocate_f_buf();
     else if (typeIntern == DCELL_TYPE)
-	dcell = Rast_allocate_d_buf();
+        dcell = Rast_allocate_d_buf();
 
     pos = 0;
     /*Every Rastermap */
-    for (z = 0; z < depths; z++) {	/*From the bottom to the top */
-	G_debug(2, "Writing raster map %d of %d", z + 1, depths);
-	for (y = 0; y < rows; y++) {
-	    G_percent(y, rows - 1, 10);
+    for (z = 0; z < depths; z++) { /*From the bottom to the top */
+        G_debug(2, "Writing raster map %d of %d", z + 1, depths);
+        for (y = 0; y < rows; y++) {
+            G_percent(y, rows - 1, 10);
 
-	    for (x = 0; x < cols; x++) {            
-        /* Because we write raster rows from north to south, but the coordinate system
-         of the g3d cube read from south to north we need to adjust the
-         Cube coordinates row = rows - y - 1.
-         */
-		if (typeIntern == FCELL_TYPE) {
-		    G3d_getValue(map, x, rows - y - 1, z, &f1, typeIntern);
-		    if (G3d_isNullValueNum(&f1, FCELL_TYPE))
-			Rast_set_null_value(&fcell[x], 1, FCELL_TYPE);
-		    else
-			fcell[x] = (FCELL) f1;
-		}
-		else {
-		    G3d_getValue(map, x, rows - y - 1, z, &d1, typeIntern);
-		    if (G3d_isNullValueNum(&d1, DCELL_TYPE))
-			Rast_set_null_value(&dcell[x], 1, DCELL_TYPE);
-		    else
-			dcell[x] = (DCELL) d1;
-		}
-	    }
-	    if (typeIntern == FCELL_TYPE)
-		Rast_put_f_row(fd[pos], fcell);
+            for (x = 0; x < cols; x++) {
+                /* Because we write raster rows from north to south, but the coordinate system
+                 of the g3d cube read from south to north we need to adjust the
+                 Cube coordinates row = rows - y - 1.
+                 */
+                if (typeIntern == FCELL_TYPE) {
+                    G3d_getValue(map, x, rows - y - 1, z, &f1, typeIntern);
+                    if (G3d_isNullValueNum(&f1, FCELL_TYPE))
+                        Rast_set_null_value(&fcell[x], 1, FCELL_TYPE);
+                    else
+                        fcell[x] = (FCELL) f1;
+                } else {
+                    G3d_getValue(map, x, rows - y - 1, z, &d1, typeIntern);
+                    if (G3d_isNullValueNum(&d1, DCELL_TYPE))
+                        Rast_set_null_value(&dcell[x], 1, DCELL_TYPE);
+                    else
+                        dcell[x] = (DCELL) d1;
+                }
+            }
+            if (typeIntern == FCELL_TYPE)
+                Rast_put_f_row(fd[pos], fcell);
 
-	    if (typeIntern == DCELL_TYPE)
-		Rast_put_d_row(fd[pos], dcell);
-	}
-	G_debug(2, "Finished writing map %d.", z + 1);
-	pos++;
+            if (typeIntern == DCELL_TYPE)
+                Rast_put_d_row(fd[pos], dcell);
+        }
+        G_debug(2, "Finished writing map %d.", z + 1);
+        pos++;
     }
 
 
     if (dcell)
-	G_free(dcell);
+        G_free(dcell);
     if (fcell)
-	G_free(fcell);
+        G_free(fcell);
 
 }
 
 /* ************************************************************************* */
 /* Open the raster output map ********************************************** */
+
 /* ************************************************************************* */
 int open_output_map(const char *name, int res_type)
 {
@@ -178,6 +179,7 @@
 
 /* ************************************************************************* */
 /* Close the raster output map ********************************************* */
+
 /* ************************************************************************* */
 void close_output_map(int fd)
 {
@@ -186,6 +188,7 @@
 
 /* ************************************************************************* */
 /* Main function, open the G3D map and create the raster maps ************** */
+
 /* ************************************************************************* */
 int main(int argc, char *argv[])
 {
@@ -193,7 +196,7 @@
     struct Cell_head region2d;
     struct GModule *module;
     struct History history;
-    void *map = NULL;		/*The 3D Rastermap */
+    void *map = NULL; /*The 3D Rastermap */
     int i = 0, changemask = 0;
     int *fd = NULL, output_type, cols, rows;
     char *RasterFileName;
@@ -212,13 +215,13 @@
 
     /* Have GRASS get inputs */
     if (G_parser(argc, argv))
-	exit(EXIT_FAILURE);
+        exit(EXIT_FAILURE);
 
     G_debug(3, _("Open 3d raster map <%s>"), param.input->answer);
 
     if (NULL == G_find_grid3(param.input->answer, ""))
-	G3d_fatalError(_("3d raster map <%s> not found"),
-		       param.input->answer);
+        G3d_fatalError(_("3d raster map <%s> not found"),
+                       param.input->answer);
 
     /*Set the defaults */
     G3d_initDefaults();
@@ -226,55 +229,57 @@
     /*Set the resolution of the output maps */
     if (param.res->answer) {
 
-	/*Open the map with current region */
-	map = G3d_openCellOld(param.input->answer,
-			      G_find_grid3(param.input->answer, ""),
-			      G3D_DEFAULT_WINDOW, G3D_TILE_SAME_AS_FILE,
-			      G3D_USE_CACHE_DEFAULT);
-	if (map == NULL)
-	    G3d_fatalError(_("Error opening 3d raster map <%s>"),
-			   param.input->answer);
+        /*Open the map with current region */
+        map = G3d_openCellOld(param.input->answer,
+                              G_find_grid3(param.input->answer, ""),
+                              G3D_DEFAULT_WINDOW, G3D_TILE_SAME_AS_FILE,
+                              G3D_USE_CACHE_DEFAULT);
+        if (map == NULL)
+            G3d_fatalError(_("Error opening 3d raster map <%s>"),
+                           param.input->answer);
 
 
-	/*Get the region of the map */
-	G3d_getRegionStructMap(map, &region);
-	/*set this region as current 3d window for map */
-	G3d_setWindowMap(map, &region);
-	/*Set the 2d region appropriate */
-	G3d_extract2dRegion(&region, &region2d);
-	/*Make the new 2d region the default */
-	Rast_set_window(&region2d);
+        /*Get the region of the map */
+        G3d_getRegionStructMap(map, &region);
+        /*set this region as current 3d window for map */
+        G3d_setWindowMap(map, &region);
+        /*Set the 2d region appropriate */
+        G3d_extract2dRegion(&region, &region2d);
+        /*Make the new 2d region the default */
+        Rast_set_window(&region2d);
 
-    }
-    else {
-	/* Figure out the region from the map */
-	G3d_getWindow(&region);
+    } else {
+        /* Figure out the region from the map */
+        G3d_getWindow(&region);
 
-	/*Check if the g3d-region is equal to the 2d rows and cols */
-	rows = Rast_window_rows();
-	cols = Rast_window_cols();
+        /*Open the 3d raster map */
+        map = G3d_openCellOld(param.input->answer,
+                              G_find_grid3(param.input->answer, ""),
+                              &region, G3D_TILE_SAME_AS_FILE,
+                              G3D_USE_CACHE_DEFAULT);
 
-	/*If not equal, set the 3D window correct */
-	if (rows != region.rows || cols != region.cols) {
-	    G_message(_("The 2d and 3d region settings are different. "
-			"Using the 2D window settings to adjust the 2D part of the 3D region."));
-	    G_get_set_window(&region2d);
-	    region.ns_res = region2d.ns_res;
-	    region.ew_res = region2d.ew_res;
-	    region.rows = region2d.rows;
-	    region.cols = region2d.cols;
-	    G3d_setWindow(&region);
-	}
+        if (map == NULL)
+            G3d_fatalError(_("Error opening 3d raster map <%s>"),
+                           param.input->answer);
+    }
 
-	/*Open the 3d raster map */
-	map = G3d_openCellOld(param.input->answer,
-			      G_find_grid3(param.input->answer, ""),
-			      &region, G3D_TILE_SAME_AS_FILE,
-			      G3D_USE_CACHE_DEFAULT);
+    /*Check if the g3d-region is equal to the 2d rows and cols */
+    rows = Rast_window_rows();
+    cols = Rast_window_cols();
 
-	if (map == NULL)
-	    G3d_fatalError(_("Error opening 3d raster map <%s>"),
-			   param.input->answer);
+    /*If not equal, set the 3D window correct */
+    if (rows != region.rows || cols != region.cols) {
+        G_message(_("The 2d and 3d region settings are different. "
+                    "Using the 2D window settings to adjust the 2D part of the 3D region."));
+        G_get_set_window(&region2d);
+        region.ns_res = region2d.ns_res;
+        region.ew_res = region2d.ew_res;
+        region.rows = region2d.rows;
+        region.cols = region2d.cols;
+        
+        G3d_adjustRegion(&region);
+        
+        G3d_setWindowMap(map, &region);
     }
 
     /* save the input map region for later use (history meta-data) */
@@ -285,39 +290,39 @@
 
 
     /*prepare the filehandler */
-    fd = (int *)G_malloc(region.depths * sizeof(int));
+    fd = (int *) G_malloc(region.depths * sizeof (int));
 
     if (fd == NULL)
-	fatal_error(map, NULL, 0, _("Out of memory"));
+        fatal_error(map, NULL, 0, _("Out of memory"));
 
     G_message(_("Creating %i raster maps"), region.depths);
 
     /*Loop over all output maps! open */
     for (i = 0; i < region.depths; i++) {
-	/*Create the outputmaps */
-	G_asprintf(&RasterFileName, "%s_%05d", param.output->answer, i + 1);
-	G_message(_("Raster map %i Filename: %s"), i + 1, RasterFileName);
+        /*Create the outputmaps */
+        G_asprintf(&RasterFileName, "%s_%05d", param.output->answer, i + 1);
+        G_message(_("Raster map %i Filename: %s"), i + 1, RasterFileName);
 
-	if (G_find_raster2(RasterFileName, ""))
-	    G_message(_("Raster map %d Filename: %s already exists. Will be overwritten!"),
-		      i + 1, RasterFileName);
+        if (G_find_raster2(RasterFileName, ""))
+            G_message(_("Raster map %d Filename: %s already exists. Will be overwritten!"),
+                      i + 1, RasterFileName);
 
-	if (output_type == FCELL_TYPE)
-	    fd[i] = open_output_map(RasterFileName, FCELL_TYPE);
-	else if (output_type == DCELL_TYPE)
-	    fd[i] = open_output_map(RasterFileName, DCELL_TYPE);
+        if (output_type == FCELL_TYPE)
+            fd[i] = open_output_map(RasterFileName, FCELL_TYPE);
+        else if (output_type == DCELL_TYPE)
+            fd[i] = open_output_map(RasterFileName, DCELL_TYPE);
 
     }
 
     /*if requested set the Mask on */
     if (param.mask->answer) {
-	if (G3d_maskFileExists()) {
-	    changemask = 0;
-	    if (G3d_maskIsOff(map)) {
-		G3d_maskOn(map);
-		changemask = 1;
-	    }
-	}
+        if (G3d_maskFileExists()) {
+            changemask = 0;
+            if (G3d_maskIsOff(map)) {
+                G3d_maskOn(map);
+                changemask = 1;
+            }
+        }
     }
 
     /*Create the Rastermaps */
@@ -326,55 +331,55 @@
 
     /*Loop over all output maps! close */
     for (i = 0; i < region.depths; i++) {
-	close_output_map(fd[i]);
+        close_output_map(fd[i]);
 
-	/* write history */
-	G_asprintf(&RasterFileName, "%s_%i", param.output->answer, i + 1);
-	G_debug(4, "Raster map %d Filename: %s", i + 1, RasterFileName);
-	Rast_short_history(RasterFileName, "raster", &history);
+        /* write history */
+        G_asprintf(&RasterFileName, "%s_%i", param.output->answer, i + 1);
+        G_debug(4, "Raster map %d Filename: %s", i + 1, RasterFileName);
+        Rast_short_history(RasterFileName, "raster", &history);
 
-	Rast_set_history(&history, HIST_DATSRC_1, "3D Raster map:");
-	Rast_set_history(&history, HIST_DATSRC_2, param.input->answer);
+        Rast_set_history(&history, HIST_DATSRC_1, "3D Raster map:");
+        Rast_set_history(&history, HIST_DATSRC_2, param.input->answer);
 
-	Rast_append_format_history(&history, "Level %d of %d", i + 1, region.depths);
-	Rast_append_format_history(&history, "Level z-range: %f to %f",
-		region.bottom + (i * region.tb_res),
-		region.bottom + (i + 1 * region.tb_res));
+        Rast_append_format_history(&history, "Level %d of %d", i + 1, region.depths);
+        Rast_append_format_history(&history, "Level z-range: %f to %f",
+                                   region.bottom + (i * region.tb_res),
+                                   region.bottom + (i + 1 * region.tb_res));
 
-	Rast_append_format_history(&history, "Input map full z-range: %f to %f",
-		inputmap_bounds.bottom, inputmap_bounds.top);
-	Rast_append_format_history(&history, "Input map z-resolution: %f",
-		inputmap_bounds.tb_res);
+        Rast_append_format_history(&history, "Input map full z-range: %f to %f",
+                                   inputmap_bounds.bottom, inputmap_bounds.top);
+        Rast_append_format_history(&history, "Input map z-resolution: %f",
+                                   inputmap_bounds.tb_res);
 
-	if (!param.res->answer) {
-	    Rast_append_format_history(&history, "GIS region full z-range: %f to %f",
-		    region.bottom, region.top);
-	    Rast_append_format_history(&history, "GIS region z-resolution: %f",
-		    region.tb_res);
-	}
+        if (!param.res->answer) {
+            Rast_append_format_history(&history, "GIS region full z-range: %f to %f",
+                                       region.bottom, region.top);
+            Rast_append_format_history(&history, "GIS region z-resolution: %f",
+                                       region.tb_res);
+        }
 
-	Rast_command_history(&history);
-	Rast_write_history(RasterFileName, &history);
+        Rast_command_history(&history);
+        Rast_write_history(RasterFileName, &history);
     }
 
     /*We set the Mask off, if it was off before */
     if (param.mask->answer) {
-	if (G3d_maskFileExists())
-	    if (G3d_maskIsOn(map) && changemask)
-		G3d_maskOff(map);
+        if (G3d_maskFileExists())
+            if (G3d_maskIsOn(map) && changemask)
+                G3d_maskOff(map);
     }
 
 
     /*Cleaning */
     if (RasterFileName)
-	G_free(RasterFileName);
+        G_free(RasterFileName);
 
     if (fd)
-	G_free(fd);
+        G_free(fd);
 
     /* Close files and exit */
     if (!G3d_closeCell(map))
-	fatal_error(map, NULL, 0, _("Error closing 3d raster map"));
+        fatal_error(map, NULL, 0, _("Error closing 3d raster map"));
 
     map = NULL;
 

Added: grass/trunk/raster3d/r3.to.rast/test.r3.to.rast.sh
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test.r3.to.rast.sh	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test.r3.to.rast.sh	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,41 @@
+# This script tests the conversion of voxel data
+# into raster data slices. Validation data for each test
+# is located in the module source directory
+
+# We need to set a specific region in the
+# @preprocess step of this test. We generate
+# voxel data with r3.mapcalc. The region setting 
+# should work for UTM and LL test locations
+g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3
+# Now create a voxel map with value = col + row + depth. Beware the 
+# raster3d module count from south to north.
+r3.mapcalc --o expr="volume = col() + row() + depth()"
+# Add null value information
+r3.mapcalc --o expr="volume_null = if(row() == 1 || row() == 5, null(), volume)"
+
+# First we @test with identical region settings for raster and voxel data
+# Reference data for all generated @raster maps are located in the r3.to.rast source directory.
+r3.to.rast --o input=volume_null output=test_raster_slice_1
+
+# Export of the references
+# for i in `g.mlist type=rast pattern=test_raster_slice_1*` ; do r.out.ascii input=$i output=${i}.ref; done
+
+# The next @preprocess step adjusts the raster region to increase the resolution by 2
+g.region res=7.5 -p3
+
+# This @test should show the via nearest neighbour resampled data.  
+# Reference data for all generated @raster maps are located in the r3.to.rast source directory.
+r3.to.rast --o input=volume_null output=test_raster_slice_2
+
+# Export of the references
+# for i in `g.mlist type=rast pattern=test_raster_slice_2*` ; do r.out.ascii input=$i output=${i}.ref; done
+
+# The next @preprocess step adjusts the raster region to increase the resolution by 2 again
+g.region res=5 -p3
+
+# This @test should show the via nearest neighbour resampled data.  
+# Reference data for all generated @raster maps are located in the r3.to.rast source directory.
+r3.to.rast --o input=volume_null output=test_raster_slice_3
+
+# Export of the references
+# for i in `g.mlist type=rast pattern=test_raster_slice_3*` ; do r.out.ascii input=$i output=${i}.ref; done

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00001.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00001.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00001.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,14 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 8
+cols: 12
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+4 5 6 7 8 9 10 11 12 13 14 15 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00002.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00002.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00002.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,14 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 8
+cols: 12
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00003.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00003.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00003.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,14 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 8
+cols: 12
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00004.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00004.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00004.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,14 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 8
+cols: 12
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00005.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00005.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_1_00005.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,14 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 8
+cols: 12
+14 15 16 17 18 19 20 21 22 23 24 25 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00001.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00001.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00001.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,17 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 11
+cols: 16
+10 11 11 12 13 14 14 15 16 17 17 18 19 20 20 21 
+9 10 10 11 12 13 13 14 15 16 16 17 18 19 19 20 
+9 10 10 11 12 13 13 14 15 16 16 17 18 19 19 20 
+8 9 9 10 11 12 12 13 14 15 15 16 17 18 18 19 
+* * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * 
+6 7 7 8 9 10 10 11 12 13 13 14 15 16 16 17 
+5 6 6 7 8 9 9 10 11 12 12 13 14 15 15 16 
+4 5 5 6 7 8 8 9 10 11 11 12 13 14 14 15 
+4 5 5 6 7 8 8 9 10 11 11 12 13 14 14 15 
+* * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00002.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00002.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00002.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,17 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 11
+cols: 16
+11 12 12 13 14 15 15 16 17 18 18 19 20 21 21 22 
+10 11 11 12 13 14 14 15 16 17 17 18 19 20 20 21 
+10 11 11 12 13 14 14 15 16 17 17 18 19 20 20 21 
+9 10 10 11 12 13 13 14 15 16 16 17 18 19 19 20 
+* * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * 
+7 8 8 9 10 11 11 12 13 14 14 15 16 17 17 18 
+6 7 7 8 9 10 10 11 12 13 13 14 15 16 16 17 
+5 6 6 7 8 9 9 10 11 12 12 13 14 15 15 16 
+5 6 6 7 8 9 9 10 11 12 12 13 14 15 15 16 
+* * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00003.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00003.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00003.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,17 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 11
+cols: 16
+12 13 13 14 15 16 16 17 18 19 19 20 21 22 22 23 
+11 12 12 13 14 15 15 16 17 18 18 19 20 21 21 22 
+11 12 12 13 14 15 15 16 17 18 18 19 20 21 21 22 
+10 11 11 12 13 14 14 15 16 17 17 18 19 20 20 21 
+* * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * 
+8 9 9 10 11 12 12 13 14 15 15 16 17 18 18 19 
+7 8 8 9 10 11 11 12 13 14 14 15 16 17 17 18 
+6 7 7 8 9 10 10 11 12 13 13 14 15 16 16 17 
+6 7 7 8 9 10 10 11 12 13 13 14 15 16 16 17 
+* * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00004.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00004.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00004.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,17 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 11
+cols: 16
+13 14 14 15 16 17 17 18 19 20 20 21 22 23 23 24 
+12 13 13 14 15 16 16 17 18 19 19 20 21 22 22 23 
+12 13 13 14 15 16 16 17 18 19 19 20 21 22 22 23 
+11 12 12 13 14 15 15 16 17 18 18 19 20 21 21 22 
+* * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * 
+9 10 10 11 12 13 13 14 15 16 16 17 18 19 19 20 
+8 9 9 10 11 12 12 13 14 15 15 16 17 18 18 19 
+7 8 8 9 10 11 11 12 13 14 14 15 16 17 17 18 
+7 8 8 9 10 11 11 12 13 14 14 15 16 17 17 18 
+* * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00005.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00005.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_2_00005.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,17 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 11
+cols: 16
+14 15 15 16 17 18 18 19 20 21 21 22 23 24 24 25 
+13 14 14 15 16 17 17 18 19 20 20 21 22 23 23 24 
+13 14 14 15 16 17 17 18 19 20 20 21 22 23 23 24 
+12 13 13 14 15 16 16 17 18 19 19 20 21 22 22 23 
+* * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * 
+10 11 11 12 13 14 14 15 16 17 17 18 19 20 20 21 
+9 10 10 11 12 13 13 14 15 16 16 17 18 19 19 20 
+8 9 9 10 11 12 12 13 14 15 15 16 17 18 18 19 
+8 9 9 10 11 12 12 13 14 15 15 16 17 18 18 19 
+* * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00001.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00001.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00001.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,22 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 16
+cols: 24
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 
+5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 
+4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 
+4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00002.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00002.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00002.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,22 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 16
+cols: 24
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 
+5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00003.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00003.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00003.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,22 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 16
+cols: 24
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00004.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00004.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00004.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,22 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 16
+cols: 24
+13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 
+13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00005.ref
===================================================================
--- grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00005.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.to.rast/test_raster_slice_3_00005.ref	2011-06-16 13:58:43 UTC (rev 46725)
@@ -0,0 +1,22 @@
+north: 80
+south: 0
+east: 120
+west: 0
+rows: 16
+cols: 24
+14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 
+14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 
+13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 
+13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 
+* * * * * * * * * * * * * * * * * * * * * * * * 
+* * * * * * * * * * * * * * * * * * * * * * * * 



More information about the grass-commit mailing list