コード例 #1
0
def _build_executable_model(mediator, context):
    # set the name of the EMAModel
    name = mediator.name

    # set the dir path for the model
    model_dir_path = mediator.model['dir']

    # set the name of the model
    model_file = mediator.model['name']

    # set the dir path where NetLogo is located
    netlogo_home = mediator.netlogo['dir']

    # set the NetLogo version
    netlogo_version = mediator.netlogo['version']

    # create the NetLogoModel object
    ema_model = NetLogoModel(name=name,
                             wd=model_dir_path,
                             model_file=model_file,
                             netlogo_home=netlogo_home,
                             netlogo_version=netlogo_version,
                             gui=False)

    # set the max run length of this model
    ema_model.run_length = context.max_run_length

    # set the number of replications
    ema_model.replications = context.num_replications

    uncertainties, outcomes, constants = _determine_parameters(
        mediator, context)
    ema_model.uncertainties = uncertainties
    ema_model.outcomes = outcomes
    ema_model.constants = constants
    return ema_model
コード例 #2
0
import numpy as np
import pandas as pd
import pyNetLogo
import os

from ema_workbench.connectors.netlogo import NetLogoModel

ema_logging.log_to_stderr(ema_logging.INFO)

if __name__ == '__main__':

    model = NetLogoModel("PoRModel",
                         wd="./",
                         model_file='git/model/PoR_Model.nlogo')
    model.run_length = 31
    model.replications = 10

    #netlogo = pyNetLogo.NetLogoLink(gui=False)
    #netlogo.load_model(os.path.abspath('git/model/PoR_Model.nlogo'))

    #netlogo.command('setup')

    # set levers
    model.levers = [
        RealParameter('total-available-subsidy', 0, 100000000),
        RealParameter('subsidy-for-industries', 0, 200),
        RealParameter('total-subsidy-increase-for-target', 0, 15),
        RealParameter('industry-subsidy-increase-for-target', 0, 15),
        RealParameter('extensible-storage-price', 0, 50)
    ]
コード例 #3
0
from ema_workbench import (RealParameter, ema_logging,
                           perform_experiments,TimeSeriesOutcome, save_results)
from ema_workbench.em_framework.evaluators import MultiprocessingEvaluator
from ema_workbench.analysis.plotting import lines
from ema_workbench.analysis.plotting_util import BOXPLOT


if __name__ == '__main__':
    #turn on logging
    ema_logging.log_to_stderr(ema_logging.INFO)

    model = NetLogoModel('predprey', 
                          wd="./models/predatorPreyNetlogo", 
                          model_file="Wolf Sheep Predation.nlogo")
    model.run_length = 100
    model.replications = 1
    
    model.uncertainties = [RealParameter("grass-regrowth-time", 1, 99),
                           RealParameter("initial-number-sheep", 1, 200),
                           RealParameter("initial-number-wolves", 1, 200),
                           RealParameter("sheep-reproduce", 1, 20),
                           RealParameter("wolf-reproduce", 1, 20),
                     ]
    
    model.outcomes = [TimeSeriesOutcome('sheep'),
                      TimeSeriesOutcome('wolves'),
                      TimeSeriesOutcome('grass'),
                      TimeSeriesOutcome('TIME') ]
     
    #perform experiments
    n = 10