Greetings All
I’m planning on developing an index to use over RASter images. Is quite an easy expression with a few sums and square roots. All those operations are included in r.mapcalc but instead of doing each operation using image calculation in GUI I want to do an automatic procedure in which I select image A, image B and Image C and he does the rest.
I can use a script file but I want the user to select which is image A, B and C and only then the script process the images.
Question: How can I call a wxpython form (just like the others) from a script file?
Thanks
Cheerios
Luis Lisboa
Luis Lisboa wrote:
I'm planning on developing an index to use over RASter images. Is quite an
easy expression with a few sums and square roots. All those operations are
included in r.mapcalc but instead of doing each operation using image
calculation in GUI I want to do an automatic procedure in which I select
image A, image B and Image C and he does the rest.
I can use a script file but I want the user to select which is image A, B
and C and only then the script process the images.
Question: How can I call a wxpython form (just like the others) from a
script file?
The GUI parameter forms are auto-generated from the parameter
descriptions (the same information that is used for the --help output
and the HTML documentation).
If you look at any of the provided scripts (in the "scripts"
directory), you will see that they start with a block of comments like
(this example was taken from r.blend):
#%Module
#% description: Blends color components of two raster maps by a given ratio.
#% keywords: raster
#%End
#%option
#% key: first
#% type: string
#% gisprompt: old,cell,raster
#% description: Name of first raster map for blending
#% key_desc : name
#% required : yes
#%end
Shortly after the comments will be something like:
if [ "$1" != "@ARGS_PARSED@" ] ; then
exec g.parser "$0" "$@"
fi
The g.parser module reads the script, and uses the comments to
generate a parameter dialog. Once the user fills in the parameters and
presses "OK", the script is executed with the supplied parameters
passed through environment variables (and with the string
"@ARGS_PARSED@" as the only argument, so that it doesn't just call
g.parser again).
See the g.parser manual page for more details.
This mechanism can be used in any language which treats the "#"
character as starting a comment (although for Python, there is a
standardised framework for scripts which includes an interface to
g.parser).
--
Glynn Clements <glynn@gclements.plus.com>