[GRASS-dev] [GRASS GIS] #3682: t.rast.algebra: Error wrong type of input

GRASS GIS trac at osgeo.org
Sat Dec 8 11:48:25 PST 2018


#3682: t.rast.algebra: Error wrong type of input
--------------------------+-------------------------------------
  Reporter:  veroandreo   |      Owner:  grass-dev@…
      Type:  defect       |     Status:  new
  Priority:  major        |  Milestone:  7.8.0
 Component:  Temporal     |    Version:  svn-trunk
Resolution:               |   Keywords:  t.rast.algebra, python3
       CPU:  Unspecified  |   Platform:  Unspecified
--------------------------+-------------------------------------
Description changed by neteler:

Old description:

> When running any expression with G7:t.rast.algebra in trunk, I get ERROR:
> Wrong type of input. Here's how to reproduce:
>
> {{{
> for map in `seq 1 10` ; do r.mapcalc "prueba_${map} = ${map}" ; done
> t.create output=A type=strds temporaltype=absolute title="test"
> description="test"
> t.register input=A maps=`g.list rast pat=prueba* sep=, map=.`
> start="2000-01-01" increment="1 months" -i
>
> t.rast.algebra expression="test = (A[1] - A[0]) / 2" basename=test
> suffix=gran
> t.rast.algebra expression="test = A * 2" basename=test suffix=gran
> }}}
>
> Both algebra commands yield the following error:
>
> {{{
> ERROR: Wrong type of input A
> Traceback (most recent call last):
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/scripts/t.rast.algebra", line 132, in <module>
>     sys.exit(main())
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/scripts/t.rast.algebra", line 124, in main
>     pc = p.parse(expression, basename, grass.script.overwrite())
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/etc/python/grass/temporal/temporal_raster_algebra.py", line 112, in
> parse
>     self.parser.parse(expression)
>   File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 331, in parse
>     return self.parseopt_notrack(input, lexer, debug, tracking,
> tokenfunc)
>   File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 1118, in
> parseopt_notrack
>     p.callable(pslice)
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/etc/python/grass/temporal/temporal_raster_algebra.py", line 137, in
> p_ts_neighbour_operation
>     maplist = self.check_stds(t[1])
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/etc/python/grass/temporal/temporal_algebra.py", line 1226, in
> check_stds
>     self.msgr.fatal(_("Wrong type of input " + str(input)))
>   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
> gnu/etc/python/grass/pygrass/messages/__init__.py", line 269, in fatal
>     raise FatalError(message)
> grass.exceptions.FatalError: Wrong type of input A
> }}}
>
> Is this related to the python3 encoding issues? It works fine in 76
> relbranch.

New description:

 When running any expression with G7:t.rast.algebra in trunk, I get ERROR:
 Wrong type of input. Here's how to reproduce:

 {{{
 # NC location:
 g.region raster=elevation -p
 for map in `seq 1 10` ; do r.mapcalc "prueba_${map} = ${map}" ; done
 t.create output=A type=strds temporaltype=absolute title="test"
 description="test"
 t.register input=A maps=`g.list rast pat=prueba* sep=, map=.`
 start="2000-01-01" increment="1 months" -i

 t.rast.algebra expression="test = (A[1] - A[0]) / 2" basename=test
 suffix=gran
 t.rast.algebra expression="test = A * 2" basename=test suffix=gran
 }}}

 Both algebra commands yield the following error:

 {{{
 ERROR: Wrong type of input A
 Traceback (most recent call last):
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/scripts/t.rast.algebra", line 132, in <module>
     sys.exit(main())
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/scripts/t.rast.algebra", line 124, in main
     pc = p.parse(expression, basename, grass.script.overwrite())
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/etc/python/grass/temporal/temporal_raster_algebra.py", line 112, in
 parse
     self.parser.parse(expression)
   File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 331, in parse
     return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
   File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 1118, in
 parseopt_notrack
     p.callable(pslice)
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/etc/python/grass/temporal/temporal_raster_algebra.py", line 137, in
 p_ts_neighbour_operation
     maplist = self.check_stds(t[1])
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/etc/python/grass/temporal/temporal_algebra.py", line 1226, in
 check_stds
     self.msgr.fatal(_("Wrong type of input " + str(input)))
   File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-
 gnu/etc/python/grass/pygrass/messages/__init__.py", line 269, in fatal
     raise FatalError(message)
 grass.exceptions.FatalError: Wrong type of input A
 }}}

 Is this related to the python3 encoding issues? It works fine in 76
 relbranch.

--

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/3682#comment:3>
GRASS GIS <https://grass.osgeo.org>



More information about the grass-dev mailing list