Bug report #736
Some GRASS commands broken
Status: | Closed | ||
---|---|---|---|
Priority: | Low | ||
Assignee: | nobody - | ||
Category: | GRASS | ||
Affected QGIS version: | Regression?: | No | |
Operating System: | Windows | Easy fix?: | No |
Pull Request or Patch supplied: | Resolution: | invalid | |
Crashes QGIS or corrupts data: | Copied to github as #: | 10795 |
Description
Hi,
some GRASS commands are broken:
r.median base=CEA_cat@CEA_dati cover=CEA_aspect@CEA_dati output=aspect_median Illegal filename. Character <'> not allowed. Illegal filename. Character <'> not allowed. Raster map ['CEA_aspect@CEA_dati'] not found Illegal filename. Character <'> not allowed. r.stats: ['CEA_aspect@CEA_dati] not found Successfully finished
-> unclear why ' is present
r.mode base=delete cover=CEA_aspect output=del_aspetto Illegal filename. Character <'> not allowed. ERROR: r.stats: ['delete@CEA_dati] not found Illegal filename. Character <'> not allowed. Illegal filename. Character <'> not allowed. ERROR: Raster map ['delete@CEA_dati'] not found
Same thing here.
But r.average with the same syntax works perfectly.
g.manual index Starting browser <> for module index... C:/Programmi/Quantum_GIS/grass/scripts/g.manual: ./: is a directory
this indicates that GRASS_HTML_BROWSER is undefined.
Regards,
Markus
History
#1 Updated by Markus Neteler over 17 years ago
- Resolution set to invalid
- Status changed from Open to Closed
Update: Shame on GRASS :-)
Glynn Clements found it:
http://grass.itc.it/pipermail/grass-dev/2007-July/032140.html
"r.median invokes r.stats via system(), using a single quote: strcpy (command, "r.stats -a '"); strcat (command, G_fully_qualified_name (basemap, base_mapset)); strcat (command, ","); strcat (command, G_fully_qualified_name (covermap, cover_mapset)); strcat (command, "'"); /* strcpy (command,"cat /tmp/t"); */ stats_fd = popen (command, "r"); sprintf (command, "r.reclass i='%s' o='%s'", G_fully_qualified_name (basemap, base_mapset), outmap); system() uses the platform's shell: /bin/sh on Unix, cmd.exe on Windows NT/2K/XP, command.com on 95/98/ME. Single quotes won't work with the Windows shells. r.average doesn't quote the map names, and uses double quotes around the output filename: sprintf (command, "%s -anC input=%s,%s fs=space > \\"%s\\"", STATS, basemap->answer, covermap->answer, tempfile1); Using double quotes should suffice so long as the map name doesn't contain $ or @ (a double quote would also be problematic, but isn't legal in map names). Ultimately, we need a Windows implementation of G_spawn_ex(), so that we can avoid the shell altogether. "
#2 Updated by Markus Neteler over 17 years ago
I have fixed r.mode, r.median, and r.statistics in GRASS 6.3-CVS to use
double quotes which are supported by MS-Windows.
Once QGIS take a new GRASS version, the problem should be cured.
Markus
#3 Updated by Markus Neteler over 17 years ago
Additionally fixed:
- r.digit
- r.report
- r.transect
It seems that all raster commands are ok now.