[GRASS-SVN] r66788 - in grass-addons/grass7/raster/r.agent: . r.agent.aco

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Nov 11 08:45:39 PST 2015


Author: mic
Date: 2015-11-11 08:45:39 -0800 (Wed, 11 Nov 2015)
New Revision: 66788

Added:
   grass-addons/grass7/raster/r.agent/r.agent.aco/r.agent.aco.py
Removed:
   grass-addons/grass7/raster/r.agent/r.agent.aco.py
Log:
reorganizing r.agent module by copying the structure of r.modis

Copied: grass-addons/grass7/raster/r.agent/r.agent.aco/r.agent.aco.py (from rev 66787, grass-addons/grass7/raster/r.agent/r.agent.aco.py)
===================================================================
--- grass-addons/grass7/raster/r.agent/r.agent.aco/r.agent.aco.py	                        (rev 0)
+++ grass-addons/grass7/raster/r.agent/r.agent.aco/r.agent.aco.py	2015-11-11 16:45:39 UTC (rev 66788)
@@ -0,0 +1,381 @@
+#!/usr/bin/env python
+"""
+MODULE:       r.agent.aco
+AUTHOR(S):    michael lustenberger inofix.ch
+PURPOSE:      r.agent.aco is used to organize ant-like agents in a raster
+              based playground. As decribed by the Ant Colony Optimization
+              algorithm, the ants wander around looking for attractors,
+              marking their paths if they find any.
+COPYRIGHT:    (C) 2011 by Michael Lustenberger and the GRASS Development Team
+
+              This program is free software under the GNU General Public
+              License (>=v2). Read the file COPYING that comes with GRASS
+              for details.
+"""
+
+##TODO it is time to make this all multithreaded..
+
+#%Module
+#% description: Agents wander around on the terrain, marking paths to new locations.
+#%End
+#%option
+#% key: outputmap
+#% type: string
+#% gisprompt: old,cell,raster
+#% description: Name of pheromone output map
+#% required : yes
+#%end
+#%option
+#% key: inputmap
+#% type: string
+#% gisprompt: old,cell,raster
+#% description: Name of input pheromone raster map (e.g. from prior run)
+#% required : no
+#%end
+#%flag
+#% key: p
+#% description: Allow overwriting existing pheromone maps
+#%end
+#%flag
+#% key: s
+#% description: Produce a sequence of pheromone maps (by appending a number)
+#%end
+#%flag
+#% key: c
+#% description: Overwrite existing cost map (only used with penalty conversion)
+#%end
+#%option
+#% key: costmap
+#% type: string
+#% gisprompt: old,cell,raster
+#% description: Name of penalty resp. cost raster map (note conversion checkbox)
+#% required : yes
+#%end
+#%flag
+#% key: a
+#% description: Auto-convert cost (slope..) to penalty map (using "tobler", see docu)
+#%end
+#%option
+#% key: sitesmap
+#% type: string
+#% gisprompt: old,vect,vector
+#% description: Name of sites map, vector data with possible points of origin
+#% required : yes
+#%end
+#%option
+#% key: rounds
+#% type: integer
+#% gisprompt: number
+#% description: Number of iterations/rounds to run
+#% answer: 999
+#% options: 0-999999
+#% required : yes
+#%end
+#%option
+#% key: outrounds
+#% type: integer
+#% gisprompt: number
+#% description: Produce output after running this number of iterations/rounds
+#% options: 0-999999
+#% required : no
+#%end
+#%option
+#TODO evaluate..
+#% key: targetvisibility
+#% type: integer
+#% gisprompt: number
+#% description: Distance to target from where it might be 'sensed'
+#% options: 0-999999
+#% required : no
+#%end
+#%option
+#% key: highcostlimit
+#% type: integer
+#% gisprompt: number
+#% description: Penalty values above this point an ant considers as illegal/bogus when in 'costlymarked' modus
+#% options: 0-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: lowcostlimit
+#% type: integer
+#% gisprompt: number
+#% description: Penalty values below this point an ant considers as illegal/bogus when in 'costlymarked' modus
+#% options: -99999-99999
+#% required : no
+#%end
+#%option
+#% key: maxpheromone
+#% type: integer
+#% gisprompt: number
+#% description: Absolute maximum of pheromone intensity a position may have
+#% options: <minpheromone>-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: minpheromone
+#% type: integer
+#% gisprompt: number
+#% description: Absolute minimum of pheromone intensity to leave on playground
+#% options: 0-<maxpheromone>
+#% required : no
+#%end
+#%option
+#% key: volatilizationtime
+#% type: integer
+#% gisprompt: number
+#% description: Half-life for pheromone to volatize (e.g. =rounds)
+#% options: 0-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: stepintensity
+#% type: integer
+#% gisprompt: number
+#% description: Pheromone intensity to leave on each step
+#% options: 0-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: pathintensity
+#% type: integer
+#% gisprompt: number
+#% description: Pheromone intensity to leave on found paths
+#% options: 0-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: maxants
+#% type: integer
+#% gisprompt: number
+#% description: Maximum amount of ants that may live concurrently (x*y)
+#% options: 0-<the bigger the playground, the more space they have>
+#% required : no
+#%end
+#%option
+#% key: antslife
+#% type: integer
+#% gisprompt: number
+#% description: Time to live for an ant (e.g. four times points distance)
+#% options: 0-<max integer on system would make sense>
+#% required : no
+#%end
+#%option
+#% key: decisionalgorithm
+#% type: string
+#% gisprompt: algorithm
+#% description: Algorithm used for walking step
+#% answer: standard
+#% options: standard,marked,costlymarked,random,test
+#% required : yes
+#%end
+#%option
+#% key: evaluateposition
+#% type: string
+#% gisprompt: algorithm
+#% description: Algorithm used for finding and remembering paths
+#% answer: avoidorforgetloop
+#% options: standard,avoidloop,forgetloop,avoidorforgetloop
+#% required : yes
+#%end
+#%option
+#% key: agentfreedom
+#% type: integer
+#% gisprompt: number
+#% description: Number of possible directions the ant can take (4 or 8)
+#% options: 4,8
+#% required : no
+#%end
+#%option
+#% key: pheromoneweight
+#% type: integer
+#% gisprompt: number
+#% description: How is the pheromone value (P) weighted when walking (p*P:r*R:c*C)
+#% answer: 1
+#% options: 0-99999
+#% required : yes
+#%end
+#%option
+#% key: randomnessweight
+#% type: integer
+#% gisprompt: number
+#% description: How is the random value (R) weighted when walking (p*P:r*R:c*C)
+#% answer: 1
+#% options: 0-99999
+#% required : yes
+#%end
+#%option
+#% key: costweight
+#% type: integer
+#% gisprompt: number
+#% description: How is the penalty value (C) weighted when walking (p*P:r*R:c*C)
+#% answer: 0
+#% options: 0-99999
+#% required : yes
+#%end
+
+import sys
+from sys  import exit, maxsize
+from math import sqrt
+from math import exp
+from random import randint
+import grass.script as grass
+from grass.pygrass.utils import get_lib_path
+
+path = get_lib_path(modname='r.agent.aco', libname='libagent')
+if path is None:
+    grass.fatal("Not able to find the agent library directory.")
+sys.path.append(path)
+
+import error, grassland, anthill
+
+try:
+    from grass.script import core as grass
+except ImportError:
+    raise error.EnvError("r.agent.aco:", "Please run inside GRASS.")
+
+world = anthill.Anthill(grassland.Grassland())
+
+def setmaps(site, cost, wastecosts, inphero, outphero, wastephero):
+    """
+    Set the user maps in place
+    """
+    if site:
+        if -1 == site.find('@'):
+            site = site + '@' + grass.gisenv()['MAPSET']
+        # set sitemap and site list
+        world.sites = world.playground.parsevectorlayer(anthill.Anthill.SITE,
+                                                        site, -1, True)
+        if not world.sites:
+            raise error.DataError("r.agent.aco:",
+                                    "There were no sites in" + site)
+    else:
+        raise error.DataError("r.agent.aco:", "The site map is mandatory.")
+    if cost:
+        if -1 == cost.find('@'):
+            cost = cost + '@' + grass.gisenv()['MAPSET']
+        # set cost/penalty layer
+        world.playground.setgrasslayer(anthill.Anthill.COST, cost, True)
+        world.overwritepenalty = wastecosts
+    else:
+        raise error.DataError("r.agent.aco:", "The cost map is mandatory.")
+    if outphero:
+        if -1 == outphero.find('@'):
+            outphero = outphero + '@' + grass.gisenv()['MAPSET']
+    else:
+        raise error.DataError("r.agent.aco:", "The output map is mandatory.")
+    if inphero == outphero:
+        if not wastephero:
+            raise error.DataError("aco:", "May not overwrite the output map.")
+    if inphero:
+        if -1 == inphero.find('@'):
+            inphero = inphero + '@' + grass.gisenv()['MAPSET']
+        world.playground.setgrasslayer(anthill.Anthill.RESULT, inphero, True)
+    world.playground.grassmapnames[anthill.Anthill.RESULT] = outphero
+    #TODO hopefully not really needed - workaround for broken(?) garray
+    world.playground.createlayer("copy", outphero, True)
+    world.playground.grassmapnames["copy"] = outphero
+    world.overwritepheormone = wastephero
+
+def letantsdance(rounds, outrounds):
+    """
+    Organize the agents and the pheromone on the playground.
+    """
+    if world.addsequencenumber:
+        outputmapbasename = \
+            world.playground.grassmapnames[anthill.Anthill.RESULT].split("@")
+    else:
+        outputmapbasename = False
+        outputmapname = False
+    if 0 < outrounds < rounds:
+        # calculate when to write output
+        mainloops = rounds / outrounds
+        nextwrite = outrounds
+    else:
+        # produce output only at the end
+        mainloops = 1
+        nextwrite = rounds
+    run = 0
+    while run < mainloops:
+        if outputmapbasename:
+            outputmapname = outputmapbasename[0] + str(run) + "@" + \
+                            outputmapbasename[1]
+        # loop and write out the contents at the end
+        world.letantsdance(nextwrite)
+        # Print the number of found paths
+        grass.info("Number of found paths: " + str(world.numberofpaths))
+        # export the value maps
+        #TODO hopefully not really needed - workaround for broken(?) garray
+        for i in range(len(world.playground.layers[anthill.Anthill.RESULT])):
+            for j in range(len(
+                    world.playground.layers[anthill.Anthill.RESULT][0])):
+                world.playground.layers["copy"][i][j] = \
+                        world.playground.layers[anthill.Anthill.RESULT][i][j]
+        world.playground.writelayer("copy", outputmapname,
+                                            world.overwritepheormone)
+        #TODO world.playground.writelayer(anthill.Anthill.RESULT, False,
+        #TODO                                    world.overwritepheormone)
+#        print "nrofpaths:", world.nrop
+        # count down outer
+        run += 1
+#    print "nrofrounds", nrofrounds
+
+def main():
+
+    try:
+        setmaps(options['sitesmap'],
+            options['costmap'], flags['c'],
+            options['inputmap'], options['outputmap'], flags['p'])
+
+#        world.playground.setboundsfromlayer("costs")
+        if not options['outrounds']:
+            options['outrounds'] = 0
+        elif flags['s'] and options['outrounds'] > 0:
+            world.addsequencenumber = True
+
+        if options['lowcostlimit']:
+            world.minpenalty = int(options['lowcostlimit'])
+        if options['highcostlimit']:
+            world.maxpenalty = int(options['highcostlimit'])
+        if options['maxpheromone']:
+            world.maxpheromone = int(options['maxpheromone'])
+            world.maxrandom = world.maxpheromone
+        if options['minpheromone']:
+            world.minpheromone = int(options['minpheromone'])
+            world.minrandom = world.minpheromone
+        if options['volatilizationtime']:
+            world.volatilizationtime = int(options['volatilizationtime'])
+        if options['stepintensity']:
+            world.stepintensity = int(options['stepintensity'])
+        if options['pathintensity']:
+            world.pathintensity = int(options['pathintensity'])
+        if options['maxants']:
+            world.maxants = int(options['maxants'])
+        if options['antslife']:
+            world.antslife = int(options['antslife'])
+        if options['decisionalgorithm']:
+            world.decisionbase = str(options['decisionalgorithm'])
+        if options['evaluateposition']:
+            world.evaluationbase = str(options['evaluateposition'])
+#        if options['agentfreedom']:
+#            world.globalfreedom = int(options['agentfreedom'])
+        if options['pheromoneweight']:
+            world.pheroweight = int(options['pheromoneweight'])
+        if options['randomnessweight']:
+            world.randomweight = int(options['randomnessweight'])
+        if options['costweight']:
+            world.costweight = int(options['costweight'])
+        #if arglist[0] == "stability":
+            #TODO ask silvia..
+
+#        world.checkvalues()
+    except error.DataError:
+        grass.fatal("Failed to parse args..")
+        sys.exit(1)
+    letantsdance(int(options['rounds']), int(options['outrounds']))
+    grass.message("FINISH")
+
+if __name__ == "__main__":
+    options, flags = grass.parser()
+    main()
+

Deleted: grass-addons/grass7/raster/r.agent/r.agent.aco.py
===================================================================
--- grass-addons/grass7/raster/r.agent/r.agent.aco.py	2015-11-11 16:44:29 UTC (rev 66787)
+++ grass-addons/grass7/raster/r.agent/r.agent.aco.py	2015-11-11 16:45:39 UTC (rev 66788)
@@ -1,381 +0,0 @@
-#!/usr/bin/env python
-"""
-MODULE:       r.agent.aco
-AUTHOR(S):    michael lustenberger inofix.ch
-PURPOSE:      r.agent.aco is used to organize ant-like agents in a raster
-              based playground. As decribed by the Ant Colony Optimization
-              algorithm, the ants wander around looking for attractors,
-              marking their paths if they find any.
-COPYRIGHT:    (C) 2011 by Michael Lustenberger and the GRASS Development Team
-
-              This program is free software under the GNU General Public
-              License (>=v2). Read the file COPYING that comes with GRASS
-              for details.
-"""
-
-##TODO it is time to make this all multithreaded..
-
-#%Module
-#% description: Agents wander around on the terrain, marking paths to new locations.
-#%End
-#%option
-#% key: outputmap
-#% type: string
-#% gisprompt: old,cell,raster
-#% description: Name of pheromone output map
-#% required : yes
-#%end
-#%option
-#% key: inputmap
-#% type: string
-#% gisprompt: old,cell,raster
-#% description: Name of input pheromone raster map (e.g. from prior run)
-#% required : no
-#%end
-#%flag
-#% key: p
-#% description: Allow overwriting existing pheromone maps
-#%end
-#%flag
-#% key: s
-#% description: Produce a sequence of pheromone maps (by appending a number)
-#%end
-#%flag
-#% key: c
-#% description: Overwrite existing cost map (only used with penalty conversion)
-#%end
-#%option
-#% key: costmap
-#% type: string
-#% gisprompt: old,cell,raster
-#% description: Name of penalty resp. cost raster map (note conversion checkbox)
-#% required : yes
-#%end
-#%flag
-#% key: a
-#% description: Auto-convert cost (slope..) to penalty map (using "tobler", see docu)
-#%end
-#%option
-#% key: sitesmap
-#% type: string
-#% gisprompt: old,vect,vector
-#% description: Name of sites map, vector data with possible points of origin
-#% required : yes
-#%end
-#%option
-#% key: rounds
-#% type: integer
-#% gisprompt: number
-#% description: Number of iterations/rounds to run
-#% answer: 999
-#% options: 0-999999
-#% required : yes
-#%end
-#%option
-#% key: outrounds
-#% type: integer
-#% gisprompt: number
-#% description: Produce output after running this number of iterations/rounds
-#% options: 0-999999
-#% required : no
-#%end
-#%option
-#TODO evaluate..
-#% key: targetvisibility
-#% type: integer
-#% gisprompt: number
-#% description: Distance to target from where it might be 'sensed'
-#% options: 0-999999
-#% required : no
-#%end
-#%option
-#% key: highcostlimit
-#% type: integer
-#% gisprompt: number
-#% description: Penalty values above this point an ant considers as illegal/bogus when in 'costlymarked' modus
-#% options: 0-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: lowcostlimit
-#% type: integer
-#% gisprompt: number
-#% description: Penalty values below this point an ant considers as illegal/bogus when in 'costlymarked' modus
-#% options: -99999-99999
-#% required : no
-#%end
-#%option
-#% key: maxpheromone
-#% type: integer
-#% gisprompt: number
-#% description: Absolute maximum of pheromone intensity a position may have
-#% options: <minpheromone>-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: minpheromone
-#% type: integer
-#% gisprompt: number
-#% description: Absolute minimum of pheromone intensity to leave on playground
-#% options: 0-<maxpheromone>
-#% required : no
-#%end
-#%option
-#% key: volatilizationtime
-#% type: integer
-#% gisprompt: number
-#% description: Half-life for pheromone to volatize (e.g. =rounds)
-#% options: 0-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: stepintensity
-#% type: integer
-#% gisprompt: number
-#% description: Pheromone intensity to leave on each step
-#% options: 0-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: pathintensity
-#% type: integer
-#% gisprompt: number
-#% description: Pheromone intensity to leave on found paths
-#% options: 0-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: maxants
-#% type: integer
-#% gisprompt: number
-#% description: Maximum amount of ants that may live concurrently (x*y)
-#% options: 0-<the bigger the playground, the more space they have>
-#% required : no
-#%end
-#%option
-#% key: antslife
-#% type: integer
-#% gisprompt: number
-#% description: Time to live for an ant (e.g. four times points distance)
-#% options: 0-<max integer on system would make sense>
-#% required : no
-#%end
-#%option
-#% key: decisionalgorithm
-#% type: string
-#% gisprompt: algorithm
-#% description: Algorithm used for walking step
-#% answer: standard
-#% options: standard,marked,costlymarked,random,test
-#% required : yes
-#%end
-#%option
-#% key: evaluateposition
-#% type: string
-#% gisprompt: algorithm
-#% description: Algorithm used for finding and remembering paths
-#% answer: avoidorforgetloop
-#% options: standard,avoidloop,forgetloop,avoidorforgetloop
-#% required : yes
-#%end
-#%option
-#% key: agentfreedom
-#% type: integer
-#% gisprompt: number
-#% description: Number of possible directions the ant can take (4 or 8)
-#% options: 4,8
-#% required : no
-#%end
-#%option
-#% key: pheromoneweight
-#% type: integer
-#% gisprompt: number
-#% description: How is the pheromone value (P) weighted when walking (p*P:r*R:c*C)
-#% answer: 1
-#% options: 0-99999
-#% required : yes
-#%end
-#%option
-#% key: randomnessweight
-#% type: integer
-#% gisprompt: number
-#% description: How is the random value (R) weighted when walking (p*P:r*R:c*C)
-#% answer: 1
-#% options: 0-99999
-#% required : yes
-#%end
-#%option
-#% key: costweight
-#% type: integer
-#% gisprompt: number
-#% description: How is the penalty value (C) weighted when walking (p*P:r*R:c*C)
-#% answer: 0
-#% options: 0-99999
-#% required : yes
-#%end
-
-import sys
-from sys  import exit, maxsize
-from math import sqrt
-from math import exp
-from random import randint
-import grass.script as grass
-from grass.pygrass.utils import get_lib_path
-
-path = get_lib_path(modname='r.agent.aco', libname='libagent')
-if path is None:
-    grass.fatal("Not able to find the agent library directory.")
-sys.path.append(path)
-
-import error, grassland, anthill
-
-try:
-    from grass.script import core as grass
-except ImportError:
-    raise error.EnvError("r.agent.aco:", "Please run inside GRASS.")
-
-world = anthill.Anthill(grassland.Grassland())
-
-def setmaps(site, cost, wastecosts, inphero, outphero, wastephero):
-    """
-    Set the user maps in place
-    """
-    if site:
-        if -1 == site.find('@'):
-            site = site + '@' + grass.gisenv()['MAPSET']
-        # set sitemap and site list
-        world.sites = world.playground.parsevectorlayer(anthill.Anthill.SITE,
-                                                        site, -1, True)
-        if not world.sites:
-            raise error.DataError("r.agent.aco:",
-                                    "There were no sites in" + site)
-    else:
-        raise error.DataError("r.agent.aco:", "The site map is mandatory.")
-    if cost:
-        if -1 == cost.find('@'):
-            cost = cost + '@' + grass.gisenv()['MAPSET']
-        # set cost/penalty layer
-        world.playground.setgrasslayer(anthill.Anthill.COST, cost, True)
-        world.overwritepenalty = wastecosts
-    else:
-        raise error.DataError("r.agent.aco:", "The cost map is mandatory.")
-    if outphero:
-        if -1 == outphero.find('@'):
-            outphero = outphero + '@' + grass.gisenv()['MAPSET']
-    else:
-        raise error.DataError("r.agent.aco:", "The output map is mandatory.")
-    if inphero == outphero:
-        if not wastephero:
-            raise error.DataError("aco:", "May not overwrite the output map.")
-    if inphero:
-        if -1 == inphero.find('@'):
-            inphero = inphero + '@' + grass.gisenv()['MAPSET']
-        world.playground.setgrasslayer(anthill.Anthill.RESULT, inphero, True)
-    world.playground.grassmapnames[anthill.Anthill.RESULT] = outphero
-    #TODO hopefully not really needed - workaround for broken(?) garray
-    world.playground.createlayer("copy", outphero, True)
-    world.playground.grassmapnames["copy"] = outphero
-    world.overwritepheormone = wastephero
-
-def letantsdance(rounds, outrounds):
-    """
-    Organize the agents and the pheromone on the playground.
-    """
-    if world.addsequencenumber:
-        outputmapbasename = \
-            world.playground.grassmapnames[anthill.Anthill.RESULT].split("@")
-    else:
-        outputmapbasename = False
-        outputmapname = False
-    if 0 < outrounds < rounds:
-        # calculate when to write output
-        mainloops = rounds / outrounds
-        nextwrite = outrounds
-    else:
-        # produce output only at the end
-        mainloops = 1
-        nextwrite = rounds
-    run = 0
-    while run < mainloops:
-        if outputmapbasename:
-            outputmapname = outputmapbasename[0] + str(run) + "@" + \
-                            outputmapbasename[1]
-        # loop and write out the contents at the end
-        world.letantsdance(nextwrite)
-        # Print the number of found paths
-        grass.info("Number of found paths: " + str(world.numberofpaths))
-        # export the value maps
-        #TODO hopefully not really needed - workaround for broken(?) garray
-        for i in range(len(world.playground.layers[anthill.Anthill.RESULT])):
-            for j in range(len(
-                    world.playground.layers[anthill.Anthill.RESULT][0])):
-                world.playground.layers["copy"][i][j] = \
-                        world.playground.layers[anthill.Anthill.RESULT][i][j]
-        world.playground.writelayer("copy", outputmapname,
-                                            world.overwritepheormone)
-        #TODO world.playground.writelayer(anthill.Anthill.RESULT, False,
-        #TODO                                    world.overwritepheormone)
-#        print "nrofpaths:", world.nrop
-        # count down outer
-        run += 1
-#    print "nrofrounds", nrofrounds
-
-def main():
-
-    try:
-        setmaps(options['sitesmap'],
-            options['costmap'], flags['c'],
-            options['inputmap'], options['outputmap'], flags['p'])
-
-#        world.playground.setboundsfromlayer("costs")
-        if not options['outrounds']:
-            options['outrounds'] = 0
-        elif flags['s'] and options['outrounds'] > 0:
-            world.addsequencenumber = True
-
-        if options['lowcostlimit']:
-            world.minpenalty = int(options['lowcostlimit'])
-        if options['highcostlimit']:
-            world.maxpenalty = int(options['highcostlimit'])
-        if options['maxpheromone']:
-            world.maxpheromone = int(options['maxpheromone'])
-            world.maxrandom = world.maxpheromone
-        if options['minpheromone']:
-            world.minpheromone = int(options['minpheromone'])
-            world.minrandom = world.minpheromone
-        if options['volatilizationtime']:
-            world.volatilizationtime = int(options['volatilizationtime'])
-        if options['stepintensity']:
-            world.stepintensity = int(options['stepintensity'])
-        if options['pathintensity']:
-            world.pathintensity = int(options['pathintensity'])
-        if options['maxants']:
-            world.maxants = int(options['maxants'])
-        if options['antslife']:
-            world.antslife = int(options['antslife'])
-        if options['decisionalgorithm']:
-            world.decisionbase = str(options['decisionalgorithm'])
-        if options['evaluateposition']:
-            world.evaluationbase = str(options['evaluateposition'])
-#        if options['agentfreedom']:
-#            world.globalfreedom = int(options['agentfreedom'])
-        if options['pheromoneweight']:
-            world.pheroweight = int(options['pheromoneweight'])
-        if options['randomnessweight']:
-            world.randomweight = int(options['randomnessweight'])
-        if options['costweight']:
-            world.costweight = int(options['costweight'])
-        #if arglist[0] == "stability":
-            #TODO ask silvia..
-
-#        world.checkvalues()
-    except error.DataError:
-        grass.fatal("Failed to parse args..")
-        sys.exit(1)
-    letantsdance(int(options['rounds']), int(options['outrounds']))
-    grass.message("FINISH")
-
-if __name__ == "__main__":
-    options, flags = grass.parser()
-    main()
-



More information about the grass-commit mailing list