[GRASS-user] Getting an error using r.mask in a GRASS shell script

Thomas Adams tea3rd at gmail.com
Tue Jan 27 09:00:51 PST 2015


Anna,

Below is my script. I am running on Ubuntu 10.10, GRASS 7 RC1 (built
today). I have tried running my script two ways:

(1) external from GRASS, where I set the GRASS environment (the attached
script) — this is how I have done almost all my GRASS scripting for years

(2) I remove the section where I set the GRASS environment and run from the
GRASS prompt — this works perfectly fine!!!! (I had not tried this
previously when I first reported this problem)

Running as (1) is where I get the r.mask errors I have been seeing; I get
the errors both when I simply remove any existing MASKs (r.mask -r) or
where I attempt to set the MASK.

Cheers!
Tom

#!/bin/bash


# Read the GRASS LOCATION and BASIN MASK as command line arguments

location=$1

basin_mask=$2


###############################################################

# Set GRASS Environment

###############################################################

GISDBASE=/home/tadams/grass/data

MAPSET=$USER

LOCATION_NAME=$location


export USER=$USER

export GISBASE=/usr/local/grass-7.0.0RC1

export GISDBASE=$GISDBASE

export MAPSET=$USER

export LOCATION_NAME=$location

export GISRC=$HOME/.grass7/rc

export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GISBASE/lib



###################################################################################

# High resolution DEM analysis

###################################################################################

echo "Starting GRASS processing..."

r.mask -r

echo "Set GRASS region..."

g.region rast=dem_filled@$MAPSET


g.region -dp e=509808.1892 w=170352.36895319 n=-504196.824054
s=-739405.268029


echo "Running r.watershed..."

r.watershed --overwrite elevation=dem_filled@$MAPSET threshold=75000
max_slope_length=1000 accumulation=basin_accum tci=basin_atanb
drainage=basin_dir basin=basin_basins stream=basin_streamsegs
length_slope=basin_slopelen slope_steepness=basin_steep convergence=5
memory=300


r.slope.aspect --overwrite elevation=dem_filled@$MAPSET
slope=basin_slope_pct format=percent


r.mapcalc expression="basin_slope=basin_slope_pct/100." --overwrite




###################################################################################

# 250 meter resolution DEM analysis

###################################################################################


g.region res=250


echo "Running r.resamp.stats..."

r.resamp.stats --overwrite input=basin_accum@$MAPSET output=basin_accum_250
method=maximum

r.resamp.stats --overwrite input=basin_slope@$MAPSET output=basin_slope_250
method=average


echo "Set GRASS raster mask..."

r.mask raster=$basin_mask@$MAPSET maskcats=* --overwrite


echo "Calculate Drainage Area (in sq mi)..."

r.mapcalc  expression="da_mi=basin_accum_250*900/2589988." --overwrite


echo "Calculate TOPWIDTH (in meters)..."

r.mapcalc expression="topwidth=(11.33*exp(da_mi,0.476))*0.3048"  --overwrite


r.mapcalc
expression="nc=exp(basin_slope_250,0.272)*exp(basin_accum_250*900,-0.00011)*0.05"
--overwrite


echo "Calculate alpha..."

r.mapcalc
expression="alpha=exp(basin_slope_250,0.5)/(nc*exp(topwidth,0.66667))"
--overwrite


rm rutpix_Q0CHN


r.out.gdal input=alpha@$MAPSET output=rutpix_Q0CHN format=GTiff



# Cleanup -- Remove temporary GRASS files

$GISBASE/etc/clean_temp



On Tue, Jan 27, 2015 at 8:45 AM, Anna Petrášová <kratochanna at gmail.com>
wrote:

>
>
> On Tue, Jan 27, 2015 at 10:41 AM, Thomas Adams <tea3rd at gmail.com> wrote:
>
>> Anna,
>>
>> I'm building RC1 on a different Linux box (where I had beta3); I'll try
>> again and  if I get the same error, I'll offer up an example — how would I
>> do that? tar things up and put it on GoogleDrive?
>>
>
> I was thinking ideally about a short .sh file which can be attached. I
> don't know how complicated that would be for you.
>
>>
>> Tom
>>
>> On Tue, Jan 27, 2015 at 8:34 AM, Anna Petrášová <kratochanna at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Tue, Jan 27, 2015 at 8:31 AM, Thomas Adams <tea3rd at gmail.com> wrote:
>>>
>>>> Markus,
>>>>
>>>> Thank you for your help; I did try using RC1 (which I built shortly
>>>> after it's release) and got the same error -- but I'll try again. I can't
>>>> do that right now because I just kicked-off something else in a different
>>>> GRASS LOCATION that's taking a while to process. So, I won't be able to try
>>>> again until later.
>>>>
>>>
>>> Maybe a short but complete example would help us to test?
>>>
>>> Anna
>>>
>>>>
>>>> Thank you,
>>>> Tom
>>>>
>>>> On Tue, Jan 27, 2015 at 1:39 AM, Markus Neteler <neteler at osgeo.org>
>>>> wrote:
>>>>
>>>>> Tom,
>>>>>
>>>>> On Tue, Jan 27, 2015 at 8:38 AM, Hermann Peifer <peifer at gmx.eu> wrote:
>>>>> > On 2015-01-26 23:57, Thomas Adams wrote:
>>>>> >>
>>>>> >> All:
>>>>> >>
>>>>> >> I have a GRASS bash shell script where all my GRASS commands
>>>>> >> (7.0.0beta3) execute just fine except for my call to set a MASK:
>>>>> >>
>>>>> >> r.mask --overwrite input=$basin_mask@$MAPSET
>>>>> >>
>>>>> >> I get this error...
>>>>> >>
>>>>> >> Traceback (most recent call last):
>>>>> >>    File "/usr/local/grass-7.0.0beta3/scripts/r.mask", line 71, in
>>>>> <module>
>>>>>
>>>>> Please consider to update to RC1, we have fixed all these errors.
>>>>>
>>>>> >>      import grass.script as grass
>>>>> >> ImportError: No module named grass.script
>>>>> >>
>>>>> >
>>>>> > There is no input parameter in G7:r.mask [1]. This info is however
>>>>> missing
>>>>> > in [2], as I just noted. I am not sure of the behaviour of
>>>>> 7.0.0beta3, but
>>>>> > my GRASS 7.1.svn comes up with:
>>>>> >
>>>>> > ERROR: Sorry, <input> is not a valid parameter
>>>>> >
>>>>> > Hermann
>>>>> >
>>>>> > [1] http://grass.osgeo.org/grass70/manuals/r.mask.html
>>>>> > [2]
>>>>> http://trac.osgeo.org/grass/wiki/Grass7/NewFeatures#Rastermodulechanges
>>>>>
>>>>> The lookup mechanism should now work fine (otherwise please report),
>>>>> just beta3 didn't have it yet.
>>>>>
>>>>> Markus
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> grass-user mailing list
>>>> grass-user at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>>
>>>
>>>
>>
>>
>>
>>
>


-- 
Thomas E Adams, III
718 McBurney Drive
Lebanon, OH 45036

1 (513) 739-9512 (cell)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20150127/6dcd6338/attachment.html>


More information about the grass-user mailing list