From 911aaa105e51c110fe3ce475c5ac87fe7a4aae2d Mon Sep 17 00:00:00 2001
From: Gjorgji <g.noveski@yahoo.com>
Date: Wed, 29 Mar 2023 16:29:57 +0200
Subject: [PATCH] Added messina parameters, nm_inhabitants_travel demand and
 updated simulation iteration count

---
 .../simserver/scripts/ScriptsService.java     |  2 ++
 .../simulation/SimulationRunService.java      |  6 ++---
 .../simulation/SimulationWithParamsDTO.java   | 24 +++++++++++++++++++
 .../TravelDemandGenerationMessina.java        |  7 ++++--
 4 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/src/main/java/si/ijs/urbanite/simserver/scripts/ScriptsService.java b/src/main/java/si/ijs/urbanite/simserver/scripts/ScriptsService.java
index b292545..98e58a0 100644
--- a/src/main/java/si/ijs/urbanite/simserver/scripts/ScriptsService.java
+++ b/src/main/java/si/ijs/urbanite/simserver/scripts/ScriptsService.java
@@ -101,6 +101,7 @@ public class ScriptsService {
         try {
             switch (city_name) {
                 case "amsterdam": {
+                    //use TravelDemandAmsterdamCyclistsCut instead
                     TravelDemandAmsterdam.generateTravelDemand(net_id, plan_id);
                     break;
                 }
@@ -109,6 +110,7 @@ public class ScriptsService {
                     break;
                 }
                 case "helsinki": {
+                    //use TravelDemandHelsinkiCut instead
                     TravelDemandGenerationHelsinki.generateTravelDemand(net_id, plan_id, paramsDTO);
                     break;
                 }
diff --git a/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationRunService.java b/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationRunService.java
index 4f0234b..1ebe1ac 100644
--- a/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationRunService.java
+++ b/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationRunService.java
@@ -136,7 +136,7 @@ public class SimulationRunService {
                 break;
             }
             case "messina": {
-                TravelDemandGenerationMessina.generateTravelDemand(String.valueOf(networkId), String.valueOf(planId));
+                TravelDemandGenerationMessina.generateTravelDemand(String.valueOf(networkId), String.valueOf(planId), params);
                 break;
             }
         }
@@ -381,8 +381,8 @@ public class SimulationRunService {
         controler.getConfig().controler()
                 .setEventsFileFormats(Collections.singleton(ControlerConfigGroup.EventsFileFormat.xml));
 
-        controler.getConfig().controler().setWriteEventsInterval(1);
-        controler.getConfig().controler().setLastIteration(1);
+        controler.getConfig().controler().setWriteEventsInterval(5);
+        controler.getConfig().controler().setLastIteration(50);
         controler.getConfig().network().setInputFile(Paths.get(city,"original_input","networks",String.valueOf(networkId),"network.xml").toString());
         controler.getConfig().plans().setInputFile(Paths.get(city,"original_input","networks",String.valueOf(networkId),"plans",String.valueOf(planId),"plans.xml").toString());
 
diff --git a/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationWithParamsDTO.java b/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationWithParamsDTO.java
index 9cfbeab..1826633 100644
--- a/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationWithParamsDTO.java
+++ b/src/main/java/si/ijs/urbanite/simserver/simulation/SimulationWithParamsDTO.java
@@ -176,4 +176,28 @@ public class SimulationWithParamsDTO {
         all_helsinki_districts.put("Ă–stersundom", 7);
         return all_helsinki_districts;
     }
+
+
+    //messina districts
+    public ArrayMap<String, Integer> messina_districts(){
+        ArrayMap<String, Integer> all_messina_districts = new ArrayMap<>();
+        all_messina_districts.put("1_Circoscrizione", percentage_population_change_1_Circoscrizione);
+        all_messina_districts.put("2_Circoscrizione", percentage_population_change_2_Circoscrizione);
+        all_messina_districts.put("3_Circoscrizione", percentage_population_change_3_Circoscrizione);
+        all_messina_districts.put("4_Circoscrizione", percentage_population_change_4_Circoscrizione);
+        all_messina_districts.put("5_Circoscrizione", percentage_population_change_5_Circoscrizione);
+        all_messina_districts.put("6_Circoscrizione", percentage_population_change_6_Circoscrizione);
+        return  all_messina_districts;
+    }
+
+    public ArrayMap<String, Integer> messina_districts_index(){
+        ArrayMap<String, Integer> all_messina_districts = new ArrayMap<>();
+        all_messina_districts.put("1_Circoscrizione", 0);
+        all_messina_districts.put("2_Circoscrizione", 1);
+        all_messina_districts.put("3_Circoscrizione", 2);
+        all_messina_districts.put("4_Circoscrizione", 3);
+        all_messina_districts.put("5_Circoscrizione", 4);
+        all_messina_districts.put("6_Circoscrizione", 5);
+        return  all_messina_districts;
+    }
 }
diff --git a/src/main/java/si/ijs/urbanite/simserver/travel_demand/TravelDemandGenerationMessina.java b/src/main/java/si/ijs/urbanite/simserver/travel_demand/TravelDemandGenerationMessina.java
index 3dce8f6..4e00356 100644
--- a/src/main/java/si/ijs/urbanite/simserver/travel_demand/TravelDemandGenerationMessina.java
+++ b/src/main/java/si/ijs/urbanite/simserver/travel_demand/TravelDemandGenerationMessina.java
@@ -12,6 +12,7 @@ import org.matsim.core.scenario.ScenarioUtils;
 import org.matsim.core.utils.geometry.CoordinateTransformation;
 import org.matsim.core.utils.geometry.transformations.TransformationFactory;
 import org.poly2tri.geometry.polygon.PolygonPoint;
+import si.ijs.urbanite.simserver.simulation.SimulationWithParamsDTO;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
@@ -21,7 +22,9 @@ import java.util.ArrayList;
 import java.util.Random;
 
 public class TravelDemandGenerationMessina {
-    public static void generateTravelDemand(String net_id, String plan_id) throws IOException {
+    public static void generateTravelDemand(String net_id, String plan_id, SimulationWithParamsDTO paramsDTO) throws IOException {
+
+        ChangeNumberInhabitants.changeNumberInhabitants("messina",paramsDTO.messina_districts(),paramsDTO.messina_districts_index());
         Integer scale_facotr = 10; // 10% of the full population
 
         Random random = new Random();
@@ -317,6 +320,6 @@ public class TravelDemandGenerationMessina {
     }
 
     public static void main(String[] args) throws IOException {
-        generateTravelDemand("2","2");
+//        generateTravelDemand("2","2");
     }
 }
-- 
GitLab