Opened 6 years ago
Closed 6 years ago
#3682 closed defect (fixed)
t.rast.algebra: Error wrong type of input
Reported by: | veroandreo | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 7.8.0 |
Component: | Temporal | Version: | svn-trunk |
Keywords: | t.rast.algebra, python3 | Cc: | |
CPU: | Unspecified | Platform: | Unspecified |
Description (last modified by )
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.
Change History (7)
comment:1 by , 6 years ago
Keywords: | python3 added |
---|
comment:2 by , 6 years ago
Priority: | normal → major |
---|
comment:3 by , 6 years ago
Description: | modified (diff) |
---|
comment:4 by , 6 years ago
I tried to test with Python3 (to see if that works at least) but got stuck due to #3704
comment:5 by , 6 years ago
I tested this again in a virtualenv-3 (see here) and got stuck with
ctypes.ArgumentError: argument 1: <class 'TypeError'>: expected LP_c_char instance, got bytes
.. an encoding issue?
Full test:
GRASS 7.7.svn (nc_spm_08_grass7):~ > t.create output=A type=strds temporaltype=absolute title="test" description="test" Process Process-2: Traceback (most recent call last): File "/usr/lib64/python3.7/multiprocessing/process.py", line 297, in _bootstrap self.run() File "/usr/lib64/python3.7/multiprocessing/process.py", line 99, in run self._target(*self._args, **self._kwargs) File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/c_libraries_interface.py", line 959, in c_library_server functions[data[0]](lock, conn, data) File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/c_libraries_interface.py", line 241, in _get_driver_name drstring = libtgis.tgis_get_mapset_driver_name(mapset) ctypes.ArgumentError: argument 1: <class 'TypeError'>: expected LP_c_char instance, got bytes WARNING:root:Needed to restart the libgis server, caller: Server check thread Traceback (most recent call last): File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/rpc/base.py", line 161, in safe_receive ret = self.client_conn.recv() File "/usr/lib64/python3.7/multiprocessing/connection.py", line 250, in recv buf = self._recv_bytes() File "/usr/lib64/python3.7/multiprocessing/connection.py", line 407, in _recv_bytes buf = self._recv(4) File "/usr/lib64/python3.7/multiprocessing/connection.py", line 383, in _recv raise EOFError EOFError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/scripts/t.create", line 92, in <module> main() File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/scripts/t.create", line 85, in main tgis.init() File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/core.py", line 571, in init driver_string = ciface.get_driver_name() File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/temporal/c_libraries_interface.py", line 1487, in get_driver_name return self.safe_receive("get_driver_name") File "/home/mneteler/software/grass77/dist.x86_64-pc-linux-gnu/etc/python/grass/pygrass/rpc/base.py", line 168, in safe_receive raise FatalError("Exception raised: " + str(e) + " Message: " + message) grass.exceptions.FatalError: Exception raised: Message: get_driver_name WARNING:root:Needed to restart the libgis server, caller: Server check thread
comment:7 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Closing since functionality has been restored after r73903.
Note:
See TracTickets
for help on using tickets.
Increasing to major since the error makes it impossible to use G7:t.rast.algebra in trunk