How to Run a Simulation Using the Simulator

citylearn.citylearn.simulator.Simulator provides an interface through its citylearn.citylearn.simulator.Simulator.simulate method that abstracts the source code needed to run a CityLearn simulation. See beloe for how to make use of the interface:

[1]:
from citylearn.citylearn import CityLearnEnv
from citylearn.simulator import Simulator

# initialize environment
schema = 'citylearn_challenge_2022_phase_1'
env = CityLearnEnv(schema)

# intialize agent as defined in schema,
# Alternatively, import and initialize the agent before initializing the simulator.
agent = env.load_agent()

# initialize simulator
simulator = Simulator(env, agent, episodes=1)
simulator.simulate()

# print cost functions
for n, nd in env.evaluate().groupby('name'):
    nd = nd.pivot(index='name', columns='cost_function', values='value').round(3)
    print(n, ':', nd.to_dict('records'))
Building_1 : [{'carbon_emissions': 1.134, 'electricity_consumption': 1.184, 'pricing': 1.043, 'zero_net_energy': 1.118}]
Building_2 : [{'carbon_emissions': 1.158, 'electricity_consumption': 1.215, 'pricing': 1.063, 'zero_net_energy': 1.101}]
Building_3 : [{'carbon_emissions': 1.272, 'electricity_consumption': 1.346, 'pricing': 1.145, 'zero_net_energy': 1.294}]
Building_4 : [{'carbon_emissions': 1.181, 'electricity_consumption': 1.237, 'pricing': 1.097, 'zero_net_energy': 1.085}]
Building_5 : [{'carbon_emissions': 1.186, 'electricity_consumption': 1.262, 'pricing': 1.075, 'zero_net_energy': 1.145}]
District : [{'1 - load_factor': 0.987, 'average_daily_peak': 1.15, 'carbon_emissions': 1.186, 'electricity_consumption': 1.249, 'peak_demand': 1.052, 'pricing': 1.085, 'ramping': 1.162, 'zero_net_energy': 1.148}]