1# This script tests the conversion of raster maps
2# into a single voxel map with r.to.rast3elev
3
4# We need to set a specific region in the
5# @preprocess step of this test. We generate
6# raster data with r.mapcalc
7# The region setting should work for UTM and LL test locations
8g.region s=0 n=80 w=0 e=100 b=0 t=50 res=10 res3=10 -p3
9# We create several evlevation and value maps
10r.mapcalc --o expr="elev_5_float = float(5)"
11r.mapcalc --o expr="elev_5_double = double(5)"
12r.mapcalc --o expr="elev_45_float = float(45)"
13r.mapcalc --o expr="elev_45_double = double(45)"
14r.mapcalc --o expr="elev_25_float = float(25)"
15r.mapcalc --o expr="elev_25_double = double(25)"
16r.mapcalc --o expr="elev_20_float = float(20)"
17r.mapcalc --o expr="elev_20_double = double(20)"
18r.mapcalc --o expr="raster_float = float(1)"
19r.mapcalc --o expr="raster_double = double(2)"
20
21# We @test several methods to generate @raster3d maps from elevation and value raster maps
22# For validation a @precision=0 should be used. Several methods for voxel map creation are tested
23r.to.rast3elev --o lower=0 upper=2 input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_1
24r.to.rast3elev --o lower=0 upper=2 input=raster_double elevation=elev_25_double output=test_elev_volume_double_1
25r.to.rast3elev --o upper=2         input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_2
26r.to.rast3elev --o upper=2         input=raster_double elevation=elev_25_double output=test_elev_volume_double_2
27r.to.rast3elev --o                 input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_3
28r.to.rast3elev --o                 input=raster_double elevation=elev_25_double output=test_elev_volume_double_3
29r.to.rast3elev --o -u              input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_4
30r.to.rast3elev --o -u              input=raster_double elevation=elev_25_double output=test_elev_volume_double_4
31r.to.rast3elev --o -l              input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_5
32r.to.rast3elev --o -l              input=raster_double elevation=elev_25_double output=test_elev_volume_double_5
33r.to.rast3elev --o -lu             input=raster_float  elevation=elev_25_float  output=test_elev_volume_float_5
34r.to.rast3elev --o -lu             input=raster_double elevation=elev_25_double output=test_elev_volume_double_5
35# In case the elevation map is located between two layer, booth layer are filled with data
36r.to.rast3elev --o                 input=raster_float  elevation=elev_20_float  output=test_elev_volume_float_6
37r.to.rast3elev --o                 input=raster_double elevation=elev_20_double output=test_elev_volume_double_6
38# Test with two to three elevation and value maps using different fill styles
39r.to.rast3elev --o -u  input=elev_25_float,elev_45_float   elevation=elev_25_float,elev_45_float   output=test_elev_volume_float_7
40r.to.rast3elev --o -u  input=elev_25_double,elev_45_double elevation=elev_25_double,elev_45_double output=test_elev_volume_double_7
41r.to.rast3elev --o -l  input=elev_45_float,elev_25_float,elev_5_float    elevation=elev_45_float,elev_25_float,elev_5_float    output=test_elev_volume_float_8
42r.to.rast3elev --o -l  input=elev_45_double,elev_25_double,elev_5_double elevation=elev_45_double,elev_25_double,elev_5_double output=test_elev_volume_double_8
43# Seems to be a bug in this case, so commented out, need to be investigated
44# r.to.rast3elev --o -lu input=elev_25_float,elev_5_float   elevation=elev_25_float,elev_5_float   output=test_elev_volume_float_9
45# r.to.rast3elev --o -lu input=elev_25_double,elev_5_double elevation=elev_25_double,elev_5_double output=test_elev_volume_double_9
46
47# Export of the references
48# for i in `g.list type=raster3d pattern=test_elev_volume_*` ; do r3.out.ascii dp=0 input=$i output=${i}.ref; done
49