Documentation > Plug
The
Preliminary remark 🔗
GAMA is a modelling and simulation development environment for building spatially explicit agent-based simulations. OpenMOLE supports GAMA model natively through theGAMATask
.
The
GAMATask
uses the Singularity container system. You should install Singularity on your system otherwise you won't be able to use it.
The GAMATask 🔗
GAMA by example 🔗
You can provide your .gaml file to theGAMATask
to run your model and explore it with OpenMOLE.
The example below illustrates an exploration of the predator-prey model of the GAMA model library using a direct sampling:
// Declare the variables
val numberOfPreys = Val[Double]
val nbPreysInit = Val[Int]
val mySeed = Val[Long]
// Gama task
// The first argument is the gaml file
// The second argument is the Gama experiment name
// The third argument is the number of steps
val gama =
GAMATask(workDirectory / "predatorPrey.gaml", experiment = "prey_predatorExp", finalStep = 100, seed = mySeed) set (
inputs += (nbPreysInit mapped "nb_preys_init"),
outputs += (numberOfPreys mapped "Number of preys")
)
// Explore and replicate the model
DirectSampling(
evaluation =
Replication(
evaluation = gama,
seed = mySeed,
sample = 10,
aggregation = Seq(numberOfPreys aggregate average)) hook(workDirectory / "result.csv"),
sampling = nbPreysInit in (0 to 200 by 50)
)
Task arguments 🔗
The GAMA task uses the following arguments:gamlOrWorkspace
the location of your .gaml file or the location of your GAMA workspace directory (in this case the model argument must be set), mandatorymodel
the relative path of your .gaml file in your work directory, optional this parameter must bet set only whengamlOrWorkspace
is a directoryexperiment
the name of your experiment as implemented in the .gaml file, mandatoryfinalStep
the last simulation step of you simulation, mandatoryframeRate
the frame rate to sample you simulation dynamics, optionalseed
the OpenMOLE variable used to set the GAMA random number generator seed, optional the seed is randomly drawn if not setversion
the tag of the GAMA container used by OpenMOLE, optionalinstall
some command to run on the host system to initialise the container, for instanceSeq("apt update", "apt install mylib")
, optionalclearContainerCache
to remove existing GAMA container in OpenMOLE cache, download the image from the docker hub, and recreate it locally when set to true, optional