From c49d991c8b2decd2e8aaff16ee0ab2f0bede05bc Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Mon, 25 Mar 2024 12:20:02 +0100
Subject: [PATCH 01/24] simplify activities in kelheim test and remove
 SnzActivities class

---
 .../integration/RailsimIntegrationTest.java   | 27 +++++-
 .../railsim/integration/SnzActivities.java    | 91 -------------------
 2 files changed, 25 insertions(+), 93 deletions(-)
 delete mode 100644 contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/SnzActivities.java

diff --git a/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/RailsimIntegrationTest.java b/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/RailsimIntegrationTest.java
index b139bfd423b..7adbb41fc31 100644
--- a/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/RailsimIntegrationTest.java
+++ b/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/RailsimIntegrationTest.java
@@ -30,9 +30,14 @@
 import org.matsim.api.core.v01.TransportMode;
 import org.matsim.api.core.v01.events.Event;
 import org.matsim.api.core.v01.network.Link;
+import org.matsim.api.core.v01.population.Activity;
+import org.matsim.api.core.v01.population.Person;
+import org.matsim.api.core.v01.population.Plan;
+import org.matsim.api.core.v01.population.PlanElement;
 import org.matsim.core.api.experimental.events.VehicleArrivesAtFacilityEvent;
 import org.matsim.core.config.Config;
 import org.matsim.core.config.ConfigUtils;
+import org.matsim.core.config.groups.ScoringConfigGroup;
 import org.matsim.core.controler.AbstractModule;
 import org.matsim.core.controler.Controler;
 import org.matsim.core.scenario.ScenarioUtils;
@@ -51,6 +56,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.function.Consumer;
@@ -367,8 +373,25 @@ void testScenarioKelheim() {
 			type.setMaximumVelocity(30);
 			type.setLength(100);
 		}
-
-		SnzActivities.addScoringParams(config);
+		
+		// simplify the activity types, e.g. home_3600 -> home
+		Set<String> activityTypes = new HashSet<>();	
+		for (Person person : scenario.getPopulation().getPersons().values()) {
+			for (Plan plan : person.getPlans()) {
+				for (PlanElement pE : plan.getPlanElements()) {
+					if(pE instanceof Activity) {
+						Activity act = (Activity) pE;
+						String baseType = act.getType().split("_")[0];
+						act.setType(baseType);
+						activityTypes.add(baseType);
+					}
+				}
+			}
+		}
+		
+		for (String type : activityTypes) {
+			config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams(type).setTypicalDuration(1234.));
+		}
 
 		Controler controler = new Controler(scenario);
 		controler.addOverridingModule(new RailsimModule());
diff --git a/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/SnzActivities.java b/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/SnzActivities.java
deleted file mode 100644
index ac3a039f5a5..00000000000
--- a/contribs/railsim/src/test/java/ch/sbb/matsim/contrib/railsim/integration/SnzActivities.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Avoid dependency on vsp contrib, copy from:
- * https://github.com/matsim-org/matsim-libs/blob/b2305e5e0f744b357486c8bbab253bb7c38aaad4/contribs/vsp/src/main/java/org/matsim/contrib/vsp/scenario/SnzActivities.java
- */
-package ch.sbb.matsim.contrib.railsim.integration;
-
-import org.matsim.core.config.Config;
-import org.matsim.core.config.groups.ScoringConfigGroup;
-
-/**
- * Defines available activities and open- and closing times in Snz scenarios at vsp.
- */
-public enum SnzActivities {
-
-	home,
-	other,
-	visit,
-	accomp_children,
-	accomp_other,
-
-	educ_kiga(7, 17),
-	educ_primary(7, 16),
-	educ_secondary(7, 17),
-	educ_tertiary(7, 22),
-	educ_higher(7, 19),
-	educ_other(7, 22),
-
-	work(6, 20),
-	business(8, 20),
-	errands(8, 20),
-
-	leisure(9, 27),
-	restaurant(8, 27),
-	shop_daily(8, 20),
-	shop_other(8, 20);
-
-	/**
-	 * Start time of an activity in hours, can be -1 if not defined.
-	 */
-	private final double start;
-
-	/**
-	 * End time of an activity in hours, can be -1 if not defined.
-	 */
-	private final double end;
-
-	SnzActivities(double start, double end) {
-		this.start = start;
-		this.end = end;
-	}
-
-	SnzActivities() {
-		this.start = -1;
-		this.end = -1;
-	}
-
-
-	/**
-	 * Apply start and end time to params.
-	 */
-	public ScoringConfigGroup.ActivityParams apply(ScoringConfigGroup.ActivityParams params) {
-		if (start >= 0)
-			params = params.setOpeningTime(start * 3600.);
-		if (end >= 0)
-			params = params.setClosingTime(end * 3600.);
-
-		return params;
-	}
-
-	/**
-	 * Add activity params for the scenario config.
-	 */
-	public static void addScoringParams(Config config) {
-
-		for (SnzActivities value : SnzActivities.values()) {
-			for (long ii = 600; ii <= 97200; ii += 600) {
-				config.scoring().addActivityParams(value.apply(new ScoringConfigGroup.ActivityParams(value.name() + "_" + ii).setTypicalDuration(ii)));
-			}
-		}
-
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("car interaction").setTypicalDuration(60));
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("ride interaction").setTypicalDuration(60));
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("bike interaction").setTypicalDuration(60));
-
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("other").setTypicalDuration(600 * 3));
-
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("freight_start").setTypicalDuration(60 * 15));
-		config.scoring().addActivityParams(new ScoringConfigGroup.ActivityParams("freight_end").setTypicalDuration(60 * 15));
-
-	}
-}

From 3630417490a32482230ca7314eb21a552c208356 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Mon, 25 Mar 2024 17:35:10 +0100
Subject: [PATCH 02/24] adding a railway osm reader, similar to the existing
 highway approach

---
 .../osm/networkReader/OsmRailwayParser.java   | 143 ++++++++++++++++++
 .../osm/networkReader/OsmRailwayReader.java   |  66 ++++++++
 .../contrib/osm/networkReader/OsmTags.java    |  10 ++
 contribs/railsim/pom.xml                      |   7 +
 .../contrib/railsim/RunRailsimExample.java    |  12 +-
 .../prepare/RunRailOsmNetworkReader.java      |  43 ++++++
 6 files changed, 276 insertions(+), 5 deletions(-)
 create mode 100644 contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java
 create mode 100644 contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
 create mode 100644 contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java
new file mode 100644
index 00000000000..3e9c9053b55
--- /dev/null
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java
@@ -0,0 +1,143 @@
+package org.matsim.contrib.osm.networkReader;
+
+import de.topobyte.osm4j.core.model.iface.OsmNode;
+import de.topobyte.osm4j.core.model.iface.OsmWay;
+import de.topobyte.osm4j.core.model.util.OsmModelUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.matsim.api.core.v01.Coord;
+import org.matsim.core.utils.geometry.CoordinateTransformation;
+
+import java.nio.file.Path;
+import java.text.NumberFormat;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.function.BiPredicate;
+import java.util.stream.Collectors;
+
+class OsmRailwayParser extends OsmNetworkParser {
+
+	private static final Logger log = LogManager.getLogger(OsmRailwayParser.class);
+	private static final NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.UK);
+
+	private final CoordinateTransformation transformation;
+	private final Map<String, LinkProperties> linkProperties;
+	private final BiPredicate<Coord, Integer> linkFilter;
+	final ExecutorService executor;
+	Map<Long, ProcessedOsmWay> ways;
+	Map<Long, ProcessedOsmNode> nodes;
+	Map<Long, List<ProcessedOsmWay>> nodeReferences;
+
+	OsmRailwayParser(CoordinateTransformation transformation, Map<String, LinkProperties> linkProperties, BiPredicate<Coord, Integer> linkFilter, ExecutorService executor) {
+		super(transformation, linkProperties, linkFilter, executor);
+
+		this.transformation = transformation;
+		this.linkProperties = linkProperties;
+		this.linkFilter = linkFilter;
+		this.executor = executor;
+	}
+
+	public Map<Long, ProcessedOsmWay> getWays() {
+		return ways;
+	}
+
+	public Map<Long, ProcessedOsmNode> getNodes() {
+		return nodes;
+	}
+
+	void parse(Path inputFile) {
+
+		// make sure we have empty collections
+		ways = new ConcurrentHashMap<>();
+		nodes = new ConcurrentHashMap<>();
+		nodeReferences = new ConcurrentHashMap<>();
+
+		new PbfParser.Builder()
+				.setWaysHandler(this::handleWay)
+				.setExecutor(executor)
+				.build()
+				.parse(inputFile);
+
+		log.info("Finished reading ways");
+		log.info("Starting to read nodes");
+
+		new PbfParser.Builder()
+				.setNodeHandler(this::handleNode)
+				.setExecutor(executor)
+				.build()
+				.parse(inputFile);
+
+		log.info("finished reading nodes");
+	}
+
+	void handleNode(OsmNode osmNode) {
+
+		if (nodeReferences.containsKey(osmNode.getId())) {
+
+			List<ProcessedOsmWay> waysThatReferenceNode = nodeReferences.get(osmNode.getId());
+			Coord transformedCoord = transformation.transform(new Coord(osmNode.getLongitude(), osmNode.getLatitude()));
+
+			// 'testWhetherReferencingLinksAreInFilter' may be expensive because it might include a test whether the
+			// supplied coordinate is within a shape. Therefore we want to test as few cases as possible. Two cases are tested anyway:
+			//   1. if more than one way references this node, this node is an intersection and a possible end node for a
+			//      matsim link.
+			//   2. if this node is either the start- or end node of a referencing way which makes it a candidate for a node
+			//      in a matsim link as well
+			//
+			// if a way has both ends outside the filter and no intersections within the filter it will not be included
+			// in the final network. I think this is unlikely in real world scenarios, so I think we can live with this
+			// to achieve faster execution
+			List<ProcessedOsmWay> filteredReferencingLinks;
+			if (waysThatReferenceNode.size() > 1 || isEndNodeOfReferencingLink(osmNode, waysThatReferenceNode.get(0)))
+				filteredReferencingLinks = testWhetherReferencingLinksAreInFilter(transformedCoord, waysThatReferenceNode);
+			else
+				filteredReferencingLinks = Collections.emptyList();
+
+			ProcessedOsmNode result = new ProcessedOsmNode(osmNode.getId(), filteredReferencingLinks, transformedCoord);
+			this.nodes.put(result.getId(), result);
+
+			if (nodes.size() % 100000 == 0) {
+				log.info("Added " + numberFormat.format(nodes.size()) + " nodes");
+			}
+		}
+	}
+
+	void handleWay(OsmWay osmWay) {
+
+		Map<String, String> tags = OsmModelUtil.getTagsAsMap(osmWay);
+
+		if (isStreetOfInterest(tags)) {
+			LinkProperties linkProperty = linkProperties.get(tags.get(OsmTags.RAILWAY));
+			ProcessedOsmWay processedWay = ProcessedOsmWay.create(osmWay, tags, linkProperty);
+			ways.put(osmWay.getId(), processedWay);
+
+			// keep track of which node is referenced by which way
+			for (int i = 0; i < osmWay.getNumberOfNodes(); i++) {
+
+				long nodeId = osmWay.getNodeId(i);
+				nodeReferences.computeIfAbsent(nodeId, id -> Collections.synchronizedList(new ArrayList<>()))
+						.add(processedWay);
+			}
+
+			if (ways.size() % 10000 == 0) {
+				log.info("Added " + numberFormat.format(ways.size()) + " ways");
+			}
+		}
+	}
+
+	private boolean isStreetOfInterest(Map<String, String> tags) {
+		return tags.containsKey(OsmTags.RAILWAY) && linkProperties.containsKey(tags.get(OsmTags.RAILWAY));
+	}
+
+	private boolean isEndNodeOfReferencingLink(OsmNode node, ProcessedOsmWay processedOsmWay) {
+		return processedOsmWay.getEndNodeId() == node.getId() || processedOsmWay.getStartNode() == node.getId();
+	}
+
+	private List<ProcessedOsmWay> testWhetherReferencingLinksAreInFilter(Coord coord, List<ProcessedOsmWay> waysThatReferenceNode) {
+
+		return waysThatReferenceNode.stream()
+				.filter(way -> linkFilter.test(coord, way.getLinkProperties().hierarchyLevel))
+				.collect(Collectors.toList());
+	}
+}
diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
new file mode 100644
index 00000000000..faed409019c
--- /dev/null
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
@@ -0,0 +1,66 @@
+package org.matsim.contrib.osm.networkReader;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Executors;
+import java.util.function.BiPredicate;
+import java.util.function.Predicate;
+
+import org.matsim.api.core.v01.Coord;
+import org.matsim.api.core.v01.network.Link;
+import org.matsim.core.network.NetworkUtils;
+
+public final class OsmRailwayReader extends SupersonicOsmNetworkReader {
+
+	public OsmRailwayReader(OsmNetworkParser parser,
+							Predicate<Long> preserveNodeWithId,
+							BiPredicate<Coord, Integer> includeLinkAtCoordWithHierarchy,
+							AfterLinkCreated afterLinkCreated, double freeSpeedFactor, double adjustCapacityLength, boolean storeOriginalGeometry) {
+		
+		super(parser, preserveNodeWithId, includeLinkAtCoordWithHierarchy, (link, tags, direction) -> handleLink(link, tags, direction, afterLinkCreated), freeSpeedFactor, adjustCapacityLength, storeOriginalGeometry);
+	}
+
+	private static void handleLink(Link link, Map<String, String> tags, SupersonicOsmNetworkReader.Direction direction, AfterLinkCreated outfacingCallback) {
+		
+		String railwayType = tags.get(OsmTags.RAILWAY);
+		link.getAttributes().putAttribute("osm_way_type", "railway");
+		link.getAttributes().putAttribute(NetworkUtils.TYPE, railwayType);
+		
+		for (String tag : tags.keySet()) {
+			link.getAttributes().putAttribute(tag, tags.get(tag));
+		}
+		
+		setAllowedModes(link, tags);
+		
+		outfacingCallback.accept(link, tags, direction);
+	}
+
+	private static void setAllowedModes(Link link, Map<String, String> tags) {
+		if (tags.containsKey(OsmTags.SERVICE) && tags.get(OsmTags.SERVICE).equals("yard")) {
+			Set<String> allowedModes = new HashSet<>();
+			link.setAllowedModes(allowedModes);
+		} else {
+			// everything else should be allowed for rail
+			Set<String> allowedModes = new HashSet<>();
+			allowedModes.add("rail");
+			link.setAllowedModes(allowedModes);
+		}
+	}
+
+	@Override
+	Collection<Link> createLinks(WaySegment segment) {
+		Collection<Link> links = super.createLinks(segment);
+		return links;
+	}
+
+	public static class Builder extends AbstractBuilder<OsmRailwayReader> {
+
+		@Override
+		OsmRailwayReader createInstance() {
+			OsmRailwayParser parser = new OsmRailwayParser(coordinateTransformation, linkProperties, includeLinkAtCoordWithHierarchy, Executors.newWorkStealingPool());
+			return new OsmRailwayReader(parser, preserveNodeWithId, includeLinkAtCoordWithHierarchy, afterLinkCreated, freeSpeedFactor, adjustCapacityLength, storeOriginalGeometry);
+		}
+	}
+}
diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
index 4d18e1c6d22..22cba7f7c83 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
@@ -42,4 +42,14 @@ public class OsmTags {
 	public static final String CROSSING = "crossing";
 	public static final String TYPE = "type";
 	public static final String RESTRICTION = "restriction";
+	
+	public static final String RAILWAY = "railway";
+	public static final String RAIL = "rail";
+	public static final String NARROW_GAUGE = "narrow_gauge";
+	public static final String TRAM = "tram";
+	public static final String FUNICULAR = "funicular";
+	public static final String SUBWAY = "subway";
+	public static final String LIGHT_RAIL = "light_rail";
+	public static final String MONORAIL = "monorail";
+	public static final String USAGE = "usage";
 }
diff --git a/contribs/railsim/pom.xml b/contribs/railsim/pom.xml
index b6172ab206c..5398dba3ae7 100644
--- a/contribs/railsim/pom.xml
+++ b/contribs/railsim/pom.xml
@@ -28,6 +28,13 @@
 			<artifactId>mockito-core</artifactId>
 			<scope>test</scope>
 		</dependency>
+		
+		<dependency>
+      		<groupId>org.matsim.contrib</groupId>
+      		<artifactId>osm</artifactId>
+      		<version>16.0-SNAPSHOT</version>
+      		<scope>compile</scope>
+    	</dependency>
 
 	</dependencies>
 </project>
diff --git a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/RunRailsimExample.java b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/RunRailsimExample.java
index e4f69dbb5b7..5b5343ed8f6 100644
--- a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/RunRailsimExample.java
+++ b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/RunRailsimExample.java
@@ -19,7 +19,6 @@
 
 package ch.sbb.matsim.contrib.railsim;
 
-import ch.sbb.matsim.contrib.railsim.qsimengine.RailsimQSimModule;
 import org.matsim.api.core.v01.Scenario;
 import org.matsim.core.config.Config;
 import org.matsim.core.config.ConfigUtils;
@@ -27,6 +26,8 @@
 import org.matsim.core.controler.OutputDirectoryHierarchy;
 import org.matsim.core.scenario.ScenarioUtils;
 
+import ch.sbb.matsim.contrib.railsim.qsimengine.RailsimQSimModule;
+
 /**
  * Example script that shows how to use railsim included in this contrib.
  */
@@ -37,12 +38,13 @@ private RunRailsimExample() {
 
 	public static void main(String[] args) {
 
-		if (args.length == 0) {
-			System.err.println("Path to config is required as first argument.");
-			System.exit(2);
+		String configFilename;
+		if (args.length != 0) {
+			configFilename = args[0];
+		} else {
+			configFilename = "test/input/ch/sbb/matsim/contrib/railsim/integration/microOlten/config.xml";
 		}
 
-		String configFilename = args[0];
 		Config config = ConfigUtils.loadConfig(configFilename);
 		config.controller().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.deleteDirectoryIfExists);
 
diff --git a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
new file mode 100644
index 00000000000..841e535f50a
--- /dev/null
+++ b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
@@ -0,0 +1,43 @@
+package ch.sbb.matsim.contrib.railsim.prepare;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.matsim.api.core.v01.network.Network;
+import org.matsim.api.core.v01.network.NetworkWriter;
+import org.matsim.contrib.osm.networkReader.LinkProperties;
+import org.matsim.contrib.osm.networkReader.OsmRailwayReader;
+import org.matsim.contrib.osm.networkReader.OsmTags;
+import org.matsim.core.network.algorithms.NetworkCleaner;
+import org.matsim.core.utils.geometry.CoordinateTransformation;
+import org.matsim.core.utils.geometry.transformations.TransformationFactory;
+
+public class RunRailOsmNetworkReader {
+
+	private static final String inputFile = "path/to/file.osm.pbf";
+	private static final String outputFile = "path/to/network.xml.gz";
+
+	private static final CoordinateTransformation coordinateTransformation = TransformationFactory.getCoordinateTransformation(TransformationFactory.WGS84, "EPSG:2056");
+
+	public static void main(String[] args) {
+
+		ConcurrentMap<String, LinkProperties> linkProperties = new ConcurrentHashMap<>();
+		linkProperties.put(OsmTags.RAIL, new LinkProperties(1, 1, 30., 1000., false));
+		linkProperties.put(OsmTags.NARROW_GAUGE, new LinkProperties(2, 1, 30., 1000., false));
+		linkProperties.put(OsmTags.LIGHT_RAIL, new LinkProperties(3, 1, 30., 1000., false));
+		linkProperties.put(OsmTags.SUBWAY, new LinkProperties(4, 1, 30., 1000., false));
+		linkProperties.put(OsmTags.MONORAIL, new LinkProperties(5, 1, 30., 1000., false));
+		
+		Network network = new OsmRailwayReader.Builder()
+				.setCoordinateTransformation(coordinateTransformation)
+				.setLinkProperties(linkProperties)
+				.setPreserveNodeWithId(id -> true) // this filter keeps the detailed geometries
+				.build()
+				.read(inputFile);
+		
+		network.getAttributes().putAttribute("data_origin", "OSM");
+		
+		new NetworkCleaner().run(network);
+		new NetworkWriter(network).write(outputFile);
+	}
+}

From 6a6b49f36f3fc63feec064afeacf4aa3b3fe332f Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 26 Mar 2024 11:13:23 +0100
Subject: [PATCH 03/24] improved setting of attributes

---
 .../osm/networkReader/OsmRailwayReader.java   | 65 +++++++++++++++----
 .../contrib/osm/networkReader/OsmTags.java    |  6 ++
 .../prepare/RunRailOsmNetworkReader.java      | 26 +++-----
 3 files changed, 67 insertions(+), 30 deletions(-)

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
index faed409019c..a2d6ffbf0e9 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
@@ -4,6 +4,8 @@
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.Executors;
 import java.util.function.BiPredicate;
 import java.util.function.Predicate;
@@ -28,25 +30,49 @@ private static void handleLink(Link link, Map<String, String> tags, SupersonicOs
 		link.getAttributes().putAttribute("osm_way_type", "railway");
 		link.getAttributes().putAttribute(NetworkUtils.TYPE, railwayType);
 		
-		for (String tag : tags.keySet()) {
-			link.getAttributes().putAttribute(tag, tags.get(tag));
-		}
-		
+		setAttributes(link, tags);
 		setAllowedModes(link, tags);
+		setSpeed(link, tags);
 		
 		outfacingCallback.accept(link, tags, direction);
 	}
 
-	private static void setAllowedModes(Link link, Map<String, String> tags) {
-		if (tags.containsKey(OsmTags.SERVICE) && tags.get(OsmTags.SERVICE).equals("yard")) {
-			Set<String> allowedModes = new HashSet<>();
-			link.setAllowedModes(allowedModes);
-		} else {
-			// everything else should be allowed for rail
-			Set<String> allowedModes = new HashSet<>();
-			allowedModes.add("rail");
-			link.setAllowedModes(allowedModes);
+	private static void setSpeed(Link link, Map<String, String> tags) {
+		
+	}
+
+	private static void setAttributes(Link link, Map<String, String> tags) {
+		
+		if (tags.containsKey(OsmTags.USAGE)) {
+			link.getAttributes().putAttribute(OsmTags.USAGE, tags.get(OsmTags.USAGE));
+		}
+		
+		if (tags.containsKey(OsmTags.GAUGE)) {
+			link.getAttributes().putAttribute(OsmTags.GAUGE, tags.get(OsmTags.GAUGE));
 		}
+		
+		if (tags.containsKey(OsmTags.ELECTRIFIED)) {
+			link.getAttributes().putAttribute(OsmTags.ELECTRIFIED, tags.get(OsmTags.ELECTRIFIED));
+		}
+		
+		if (tags.containsKey(OsmTags.MAXSPEED)) {
+			link.getAttributes().putAttribute(OsmTags.MAXSPEED, tags.get(OsmTags.MAXSPEED));
+		}
+		
+		if (tags.containsKey(OsmTags.ETCS)) {
+			link.getAttributes().putAttribute(OsmTags.ETCS, tags.get(OsmTags.ETCS));
+		}
+		
+		if (tags.containsKey(OsmTags.OPERATOR)) {
+			link.getAttributes().putAttribute(OsmTags.OPERATOR, tags.get(OsmTags.OPERATOR));
+		}
+		
+	}
+
+	private static void setAllowedModes(Link link, Map<String, String> tags) {
+		Set<String> allowedModes = new HashSet<>();
+		allowedModes.add(tags.get(OsmTags.RAILWAY));
+		link.setAllowedModes(allowedModes);
 	}
 
 	@Override
@@ -57,6 +83,19 @@ Collection<Link> createLinks(WaySegment segment) {
 
 	public static class Builder extends AbstractBuilder<OsmRailwayReader> {
 
+		public Builder() {
+			ConcurrentMap<String, LinkProperties> linkProperties = new ConcurrentHashMap<>();
+			linkProperties.put(OsmTags.RAIL, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.NARROW_GAUGE, new LinkProperties(2, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.LIGHT_RAIL, new LinkProperties(3, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.MONORAIL, new LinkProperties(4, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.FUNICULAR, new LinkProperties(5, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.SUBWAY, new LinkProperties(6, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.TRAM, new LinkProperties(7, 1, 30., 1000., false));
+			
+			setLinkProperties(linkProperties);
+		}
+		
 		@Override
 		OsmRailwayReader createInstance() {
 			OsmRailwayParser parser = new OsmRailwayParser(coordinateTransformation, linkProperties, includeLinkAtCoordWithHierarchy, Executors.newWorkStealingPool());
diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
index 22cba7f7c83..0c5dc5d6cb2 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmTags.java
@@ -52,4 +52,10 @@ public class OsmTags {
 	public static final String LIGHT_RAIL = "light_rail";
 	public static final String MONORAIL = "monorail";
 	public static final String USAGE = "usage";
+	public static final String GAUGE = "gauge";
+	public static final String ELECTRIFIED = "electrified";
+	public static final String ETCS = "etcs";
+	public static final String OPERATOR = "operator";
+
+
 }
diff --git a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
index 841e535f50a..f483d5c5185 100644
--- a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
+++ b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
@@ -1,43 +1,35 @@
 package ch.sbb.matsim.contrib.railsim.prepare;
 
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
 import org.matsim.api.core.v01.network.Network;
 import org.matsim.api.core.v01.network.NetworkWriter;
-import org.matsim.contrib.osm.networkReader.LinkProperties;
 import org.matsim.contrib.osm.networkReader.OsmRailwayReader;
-import org.matsim.contrib.osm.networkReader.OsmTags;
 import org.matsim.core.network.algorithms.NetworkCleaner;
 import org.matsim.core.utils.geometry.CoordinateTransformation;
 import org.matsim.core.utils.geometry.transformations.TransformationFactory;
 
 public class RunRailOsmNetworkReader {
 
-	private static final String inputFile = "path/to/file.osm.pbf";
-	private static final String outputFile = "path/to/network.xml.gz";
+	private static final String baseDirectory = "path/to/directory/";
+	
+	private static final String inputFile = baseDirectory + "switzerland-latest.osm.pbf";
+	private static final String outputFile1 = baseDirectory + "switzerland_network.xml.gz";
+	private static final String outputFile2 = baseDirectory + "switzerland_network_cleaned.xml.gz";
 
 	private static final CoordinateTransformation coordinateTransformation = TransformationFactory.getCoordinateTransformation(TransformationFactory.WGS84, "EPSG:2056");
 
 	public static void main(String[] args) {
-
-		ConcurrentMap<String, LinkProperties> linkProperties = new ConcurrentHashMap<>();
-		linkProperties.put(OsmTags.RAIL, new LinkProperties(1, 1, 30., 1000., false));
-		linkProperties.put(OsmTags.NARROW_GAUGE, new LinkProperties(2, 1, 30., 1000., false));
-		linkProperties.put(OsmTags.LIGHT_RAIL, new LinkProperties(3, 1, 30., 1000., false));
-		linkProperties.put(OsmTags.SUBWAY, new LinkProperties(4, 1, 30., 1000., false));
-		linkProperties.put(OsmTags.MONORAIL, new LinkProperties(5, 1, 30., 1000., false));
 		
 		Network network = new OsmRailwayReader.Builder()
 				.setCoordinateTransformation(coordinateTransformation)
-				.setLinkProperties(linkProperties)
-				.setPreserveNodeWithId(id -> true) // this filter keeps the detailed geometries
+				.setPreserveNodeWithId(id -> true) // this filter keeps the detailed geometries, only required for cosmetic reasons
 				.build()
 				.read(inputFile);
 		
 		network.getAttributes().putAttribute("data_origin", "OSM");
 		
+		new NetworkWriter(network).write(outputFile1);
+		
 		new NetworkCleaner().run(network);
-		new NetworkWriter(network).write(outputFile);
+		new NetworkWriter(network).write(outputFile2);
 	}
 }

From 1d2dc59747e768af5e7d667f9045b487e8b1d4b3 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 26 Mar 2024 11:43:28 +0100
Subject: [PATCH 04/24] add an alternative constructor which allows for other
 way types, e.g. railway

---
 .../osm/networkReader/OsmNetworkParser.java   | 33 +++++++++++++++++--
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmNetworkParser.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmNetworkParser.java
index 168f57ace1a..4f4e9f72fe2 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmNetworkParser.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmNetworkParser.java
@@ -28,12 +28,39 @@ class OsmNetworkParser {
 	Map<Long, ProcessedOsmWay> ways;
 	Map<Long, ProcessedOsmNode> nodes;
 	Map<Long, List<ProcessedOsmWay>> nodeReferences;
-
+	private final String wayType;
+
+	/**
+	 * The default constructor for roads (OSM highway tag)
+	 * 
+	 * @param transformation
+	 * @param linkProperties
+	 * @param linkFilter
+	 * @param executor
+	 */
 	OsmNetworkParser(CoordinateTransformation transformation, Map<String, LinkProperties> linkProperties, BiPredicate<Coord, Integer> linkFilter, ExecutorService executor) {
 		this.transformation = transformation;
 		this.linkProperties = linkProperties;
 		this.linkFilter = linkFilter;
 		this.executor = executor;
+		this.wayType = OsmTags.HIGHWAY;
+	}
+	
+	/**
+	 * A more flexible constructor which allows to pass a different way type, e.g. railway
+	 * 
+	 * @param transformation
+	 * @param linkProperties
+	 * @param linkFilter
+	 * @param executor
+	 * @param wayType
+	 */
+	OsmNetworkParser(CoordinateTransformation transformation, Map<String, LinkProperties> linkProperties, BiPredicate<Coord, Integer> linkFilter, ExecutorService executor, String wayType) {
+		this.transformation = transformation;
+		this.linkProperties = linkProperties;
+		this.linkFilter = linkFilter;
+		this.executor = executor;
+		this.wayType = wayType;
 	}
 
 	public Map<Long, ProcessedOsmWay> getWays() {
@@ -106,7 +133,7 @@ void handleWay(OsmWay osmWay) {
 		Map<String, String> tags = OsmModelUtil.getTagsAsMap(osmWay);
 
 		if (isStreetOfInterest(tags)) {
-			LinkProperties linkProperty = linkProperties.get(tags.get(OsmTags.HIGHWAY));
+			LinkProperties linkProperty = linkProperties.get(tags.get(wayType));
 			ProcessedOsmWay processedWay = ProcessedOsmWay.create(osmWay, tags, linkProperty);
 			ways.put(osmWay.getId(), processedWay);
 
@@ -125,7 +152,7 @@ void handleWay(OsmWay osmWay) {
 	}
 
 	private boolean isStreetOfInterest(Map<String, String> tags) {
-		return tags.containsKey(OsmTags.HIGHWAY) && linkProperties.containsKey(tags.get(OsmTags.HIGHWAY));
+		return tags.containsKey(wayType) && linkProperties.containsKey(tags.get(wayType));
 	}
 
 	private boolean isEndNodeOfReferencingLink(OsmNode node, ProcessedOsmWay processedOsmWay) {

From b74fdd29650ae5b349909ee477196b52b4b3a6a0 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 26 Mar 2024 11:45:08 +0100
Subject: [PATCH 05/24] use more generic osm network parser

---
 .../org/matsim/contrib/osm/networkReader/OsmRailwayReader.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
index a2d6ffbf0e9..be35630e2a5 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
@@ -98,7 +98,7 @@ public Builder() {
 		
 		@Override
 		OsmRailwayReader createInstance() {
-			OsmRailwayParser parser = new OsmRailwayParser(coordinateTransformation, linkProperties, includeLinkAtCoordWithHierarchy, Executors.newWorkStealingPool());
+			OsmNetworkParser parser = new OsmNetworkParser(coordinateTransformation, linkProperties, includeLinkAtCoordWithHierarchy, Executors.newWorkStealingPool(), OsmTags.RAILWAY);
 			return new OsmRailwayReader(parser, preserveNodeWithId, includeLinkAtCoordWithHierarchy, afterLinkCreated, freeSpeedFactor, adjustCapacityLength, storeOriginalGeometry);
 		}
 	}

From cfff352ec7534eb53228c7423e47a4eec016b7d4 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 26 Mar 2024 11:45:27 +0100
Subject: [PATCH 06/24] remove first copy paste approach

---
 .../osm/networkReader/OsmRailwayParser.java   | 143 ------------------
 1 file changed, 143 deletions(-)
 delete mode 100644 contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java
deleted file mode 100644
index 3e9c9053b55..00000000000
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayParser.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package org.matsim.contrib.osm.networkReader;
-
-import de.topobyte.osm4j.core.model.iface.OsmNode;
-import de.topobyte.osm4j.core.model.iface.OsmWay;
-import de.topobyte.osm4j.core.model.util.OsmModelUtil;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.matsim.api.core.v01.Coord;
-import org.matsim.core.utils.geometry.CoordinateTransformation;
-
-import java.nio.file.Path;
-import java.text.NumberFormat;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-import java.util.function.BiPredicate;
-import java.util.stream.Collectors;
-
-class OsmRailwayParser extends OsmNetworkParser {
-
-	private static final Logger log = LogManager.getLogger(OsmRailwayParser.class);
-	private static final NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.UK);
-
-	private final CoordinateTransformation transformation;
-	private final Map<String, LinkProperties> linkProperties;
-	private final BiPredicate<Coord, Integer> linkFilter;
-	final ExecutorService executor;
-	Map<Long, ProcessedOsmWay> ways;
-	Map<Long, ProcessedOsmNode> nodes;
-	Map<Long, List<ProcessedOsmWay>> nodeReferences;
-
-	OsmRailwayParser(CoordinateTransformation transformation, Map<String, LinkProperties> linkProperties, BiPredicate<Coord, Integer> linkFilter, ExecutorService executor) {
-		super(transformation, linkProperties, linkFilter, executor);
-
-		this.transformation = transformation;
-		this.linkProperties = linkProperties;
-		this.linkFilter = linkFilter;
-		this.executor = executor;
-	}
-
-	public Map<Long, ProcessedOsmWay> getWays() {
-		return ways;
-	}
-
-	public Map<Long, ProcessedOsmNode> getNodes() {
-		return nodes;
-	}
-
-	void parse(Path inputFile) {
-
-		// make sure we have empty collections
-		ways = new ConcurrentHashMap<>();
-		nodes = new ConcurrentHashMap<>();
-		nodeReferences = new ConcurrentHashMap<>();
-
-		new PbfParser.Builder()
-				.setWaysHandler(this::handleWay)
-				.setExecutor(executor)
-				.build()
-				.parse(inputFile);
-
-		log.info("Finished reading ways");
-		log.info("Starting to read nodes");
-
-		new PbfParser.Builder()
-				.setNodeHandler(this::handleNode)
-				.setExecutor(executor)
-				.build()
-				.parse(inputFile);
-
-		log.info("finished reading nodes");
-	}
-
-	void handleNode(OsmNode osmNode) {
-
-		if (nodeReferences.containsKey(osmNode.getId())) {
-
-			List<ProcessedOsmWay> waysThatReferenceNode = nodeReferences.get(osmNode.getId());
-			Coord transformedCoord = transformation.transform(new Coord(osmNode.getLongitude(), osmNode.getLatitude()));
-
-			// 'testWhetherReferencingLinksAreInFilter' may be expensive because it might include a test whether the
-			// supplied coordinate is within a shape. Therefore we want to test as few cases as possible. Two cases are tested anyway:
-			//   1. if more than one way references this node, this node is an intersection and a possible end node for a
-			//      matsim link.
-			//   2. if this node is either the start- or end node of a referencing way which makes it a candidate for a node
-			//      in a matsim link as well
-			//
-			// if a way has both ends outside the filter and no intersections within the filter it will not be included
-			// in the final network. I think this is unlikely in real world scenarios, so I think we can live with this
-			// to achieve faster execution
-			List<ProcessedOsmWay> filteredReferencingLinks;
-			if (waysThatReferenceNode.size() > 1 || isEndNodeOfReferencingLink(osmNode, waysThatReferenceNode.get(0)))
-				filteredReferencingLinks = testWhetherReferencingLinksAreInFilter(transformedCoord, waysThatReferenceNode);
-			else
-				filteredReferencingLinks = Collections.emptyList();
-
-			ProcessedOsmNode result = new ProcessedOsmNode(osmNode.getId(), filteredReferencingLinks, transformedCoord);
-			this.nodes.put(result.getId(), result);
-
-			if (nodes.size() % 100000 == 0) {
-				log.info("Added " + numberFormat.format(nodes.size()) + " nodes");
-			}
-		}
-	}
-
-	void handleWay(OsmWay osmWay) {
-
-		Map<String, String> tags = OsmModelUtil.getTagsAsMap(osmWay);
-
-		if (isStreetOfInterest(tags)) {
-			LinkProperties linkProperty = linkProperties.get(tags.get(OsmTags.RAILWAY));
-			ProcessedOsmWay processedWay = ProcessedOsmWay.create(osmWay, tags, linkProperty);
-			ways.put(osmWay.getId(), processedWay);
-
-			// keep track of which node is referenced by which way
-			for (int i = 0; i < osmWay.getNumberOfNodes(); i++) {
-
-				long nodeId = osmWay.getNodeId(i);
-				nodeReferences.computeIfAbsent(nodeId, id -> Collections.synchronizedList(new ArrayList<>()))
-						.add(processedWay);
-			}
-
-			if (ways.size() % 10000 == 0) {
-				log.info("Added " + numberFormat.format(ways.size()) + " ways");
-			}
-		}
-	}
-
-	private boolean isStreetOfInterest(Map<String, String> tags) {
-		return tags.containsKey(OsmTags.RAILWAY) && linkProperties.containsKey(tags.get(OsmTags.RAILWAY));
-	}
-
-	private boolean isEndNodeOfReferencingLink(OsmNode node, ProcessedOsmWay processedOsmWay) {
-		return processedOsmWay.getEndNodeId() == node.getId() || processedOsmWay.getStartNode() == node.getId();
-	}
-
-	private List<ProcessedOsmWay> testWhetherReferencingLinksAreInFilter(Coord coord, List<ProcessedOsmWay> waysThatReferenceNode) {
-
-		return waysThatReferenceNode.stream()
-				.filter(way -> linkFilter.test(coord, way.getLinkProperties().hierarchyLevel))
-				.collect(Collectors.toList());
-	}
-}

From 49e34dac71e340b55e5f6e2cdb4466242f438cf7 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 26 Mar 2024 12:56:42 +0100
Subject: [PATCH 07/24] adjust the railway defaults

---
 .../osm/networkReader/OsmRailwayReader.java      | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
index be35630e2a5..d20d7693ef7 100644
--- a/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
+++ b/contribs/osm/src/main/java/org/matsim/contrib/osm/networkReader/OsmRailwayReader.java
@@ -15,6 +15,8 @@
 import org.matsim.core.network.NetworkUtils;
 
 public final class OsmRailwayReader extends SupersonicOsmNetworkReader {
+	
+	private static final double FALLBACK_MAX_SPEED = 100.;
 
 	public OsmRailwayReader(OsmNetworkParser parser,
 							Predicate<Long> preserveNodeWithId,
@@ -57,6 +59,8 @@ private static void setAttributes(Link link, Map<String, String> tags) {
 		
 		if (tags.containsKey(OsmTags.MAXSPEED)) {
 			link.getAttributes().putAttribute(OsmTags.MAXSPEED, tags.get(OsmTags.MAXSPEED));
+		} else {
+			link.getAttributes().putAttribute(OsmTags.MAXSPEED, FALLBACK_MAX_SPEED);
 		}
 		
 		if (tags.containsKey(OsmTags.ETCS)) {
@@ -86,12 +90,12 @@ public static class Builder extends AbstractBuilder<OsmRailwayReader> {
 		public Builder() {
 			ConcurrentMap<String, LinkProperties> linkProperties = new ConcurrentHashMap<>();
 			linkProperties.put(OsmTags.RAIL, new LinkProperties(1, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.NARROW_GAUGE, new LinkProperties(2, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.LIGHT_RAIL, new LinkProperties(3, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.MONORAIL, new LinkProperties(4, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.FUNICULAR, new LinkProperties(5, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.SUBWAY, new LinkProperties(6, 1, 30., 1000., false));
-			linkProperties.put(OsmTags.TRAM, new LinkProperties(7, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.NARROW_GAUGE, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.LIGHT_RAIL, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.MONORAIL, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.FUNICULAR, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.SUBWAY, new LinkProperties(1, 1, 30., 1000., false));
+			linkProperties.put(OsmTags.TRAM, new LinkProperties(1, 1, 30., 1000., false));
 			
 			setLinkProperties(linkProperties);
 		}

From c1df036411acab2e83f5eb8dab005c3ea0ec5633 Mon Sep 17 00:00:00 2001
From: ikaddoura <ihab.kaddoura@sbb.ch>
Date: Tue, 9 Apr 2024 11:20:51 +0200
Subject: [PATCH 08/24] remove dependency to osm contrib

---
 contribs/railsim/pom.xml                      |  7 ----
 .../prepare/RunRailOsmNetworkReader.java      | 35 -------------------
 2 files changed, 42 deletions(-)
 delete mode 100644 contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java

diff --git a/contribs/railsim/pom.xml b/contribs/railsim/pom.xml
index 5398dba3ae7..b6172ab206c 100644
--- a/contribs/railsim/pom.xml
+++ b/contribs/railsim/pom.xml
@@ -28,13 +28,6 @@
 			<artifactId>mockito-core</artifactId>
 			<scope>test</scope>
 		</dependency>
-		
-		<dependency>
-      		<groupId>org.matsim.contrib</groupId>
-      		<artifactId>osm</artifactId>
-      		<version>16.0-SNAPSHOT</version>
-      		<scope>compile</scope>
-    	</dependency>
 
 	</dependencies>
 </project>
diff --git a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java b/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
deleted file mode 100644
index f483d5c5185..00000000000
--- a/contribs/railsim/src/main/java/ch/sbb/matsim/contrib/railsim/prepare/RunRailOsmNetworkReader.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package ch.sbb.matsim.contrib.railsim.prepare;
-
-import org.matsim.api.core.v01.network.Network;
-import org.matsim.api.core.v01.network.NetworkWriter;
-import org.matsim.contrib.osm.networkReader.OsmRailwayReader;
-import org.matsim.core.network.algorithms.NetworkCleaner;
-import org.matsim.core.utils.geometry.CoordinateTransformation;
-import org.matsim.core.utils.geometry.transformations.TransformationFactory;
-
-public class RunRailOsmNetworkReader {
-
-	private static final String baseDirectory = "path/to/directory/";
-	
-	private static final String inputFile = baseDirectory + "switzerland-latest.osm.pbf";
-	private static final String outputFile1 = baseDirectory + "switzerland_network.xml.gz";
-	private static final String outputFile2 = baseDirectory + "switzerland_network_cleaned.xml.gz";
-
-	private static final CoordinateTransformation coordinateTransformation = TransformationFactory.getCoordinateTransformation(TransformationFactory.WGS84, "EPSG:2056");
-
-	public static void main(String[] args) {
-		
-		Network network = new OsmRailwayReader.Builder()
-				.setCoordinateTransformation(coordinateTransformation)
-				.setPreserveNodeWithId(id -> true) // this filter keeps the detailed geometries, only required for cosmetic reasons
-				.build()
-				.read(inputFile);
-		
-		network.getAttributes().putAttribute("data_origin", "OSM");
-		
-		new NetworkWriter(network).write(outputFile1);
-		
-		new NetworkCleaner().run(network);
-		new NetworkWriter(network).write(outputFile2);
-	}
-}

From 9d45f37cef8a8eff2ab8e48e744ff386677bfb8c Mon Sep 17 00:00:00 2001
From: Kai Nagel <nagel@vsp.tu-berlin.de>
Date: Mon, 22 Apr 2024 08:25:34 +0200
Subject: [PATCH 09/24] mostly comments; some refactoring

---
 .../RunOneTaxiWithPrebookingExampleIT.java    |  16 +--
 .../mobsim/qsim/PreplanningEngineTest.java    |  77 ++++++++++++
 .../drtAndPt/PtAlongALine2Test.java           |   9 +-
 .../mobsim/qsim/ActivityEngineWithWakeup.java |   5 +-
 .../core/mobsim/qsim/PreplanningEngine.java   | 116 +++++++++++-------
 .../core/mobsim/qsim/PreplanningUtils.java    |  15 +++
 .../components/QSimComponentsConfigGroup.java |   9 ++
 7 files changed, 191 insertions(+), 56 deletions(-)
 create mode 100644 contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
 create mode 100644 matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningUtils.java

diff --git a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/examples/onetaxi/RunOneTaxiWithPrebookingExampleIT.java b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/examples/onetaxi/RunOneTaxiWithPrebookingExampleIT.java
index b6661027c45..a5d8baff1cf 100644
--- a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/examples/onetaxi/RunOneTaxiWithPrebookingExampleIT.java
+++ b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/examples/onetaxi/RunOneTaxiWithPrebookingExampleIT.java
@@ -47,16 +47,14 @@
 import org.matsim.contrib.dvrp.run.DvrpModule;
 import org.matsim.contrib.dvrp.run.DvrpQSimComponents;
 import org.matsim.api.core.v01.events.HasPersonId;
+import org.matsim.contrib.otfvis.OTFVisLiveModule;
 import org.matsim.core.config.Config;
 import org.matsim.core.config.ConfigGroup;
 import org.matsim.core.config.ConfigUtils;
 import org.matsim.core.controler.AbstractModule;
 import org.matsim.core.controler.Controler;
 import org.matsim.core.events.handler.BasicEventHandler;
-import org.matsim.core.mobsim.qsim.AbstractQSimModule;
-import org.matsim.core.mobsim.qsim.ActivityEngineModule;
-import org.matsim.core.mobsim.qsim.ActivityEngineWithWakeup;
-import org.matsim.core.mobsim.qsim.PreplanningEngine;
+import org.matsim.core.mobsim.qsim.*;
 import org.matsim.core.mobsim.qsim.components.QSimComponentsConfigGroup;
 import org.matsim.core.scenario.ScenarioUtils;
 import org.matsim.core.utils.io.IOUtils;
@@ -96,9 +94,7 @@ void testRun() {
 		Scenario scenario = ScenarioUtils.loadScenario(config);
 
 		for (Person person : scenario.getPopulation().getPersons().values()) {
-			person.getSelectedPlan()
-					.getAttributes()
-					.putAttribute(PreplanningEngine.PREBOOKING_OFFSET_ATTRIBUTE_NAME, 900.);
+			PreplanningUtils.setPrebookingOffset_s( person.getSelectedPlan(), 900. );
 		}
 
 		//PopulationUtils.writePopulation(scenario.getPopulation(), utils.getOutputDirectory() + "/../pop.xml");
@@ -158,6 +154,12 @@ public void install() {
 			}
 		});
 
+		if ("true".equals(System.getProperty("runOTFVis"))) {
+			// This will start otfvis
+			controler.addOverridingModule(new OTFVisLiveModule() );
+			// !! does not work together with parameterized tests :-( !!
+		}
+
 		// run simulation
 		controler.run();
 
diff --git a/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java b/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
new file mode 100644
index 00000000000..74536deae58
--- /dev/null
+++ b/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
@@ -0,0 +1,77 @@
+package org.matsim.core.mobsim.qsim;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+import org.matsim.api.core.v01.Scenario;
+import org.matsim.api.core.v01.population.Person;
+import org.matsim.contrib.otfvis.OTFVisLiveModule;
+import org.matsim.core.config.Config;
+import org.matsim.core.config.ConfigUtils;
+import org.matsim.core.controler.Controler;
+import org.matsim.core.mobsim.qsim.components.QSimComponentsConfigGroup;
+import org.matsim.core.scenario.ScenarioUtils;
+import org.matsim.core.utils.io.IOUtils;
+import org.matsim.examples.ExamplesUtils;
+import org.matsim.testcases.MatsimTestUtils;
+
+import javax.inject.Singleton;
+
+class PreplanningEngineTest{
+	// Cannot use otfvis if in core matsim.  --> In vsp contrib for time being.  kai, apr'24
+	private static final Logger log = LogManager.getLogger(PreplanningEngineTest.class );
+
+	@RegisterExtension private MatsimTestUtils utils = new MatsimTestUtils();
+
+	@Test public void test() {
+		// I am interested here in testing this NOT with DRT but with other modes.  kai, apr'24
+		// In the somewhat longer run, should work together with fleetpy (of TUM).  kai, apr'24
+
+		Config config = ConfigUtils.loadConfig( IOUtils.extendUrl( ExamplesUtils.getTestScenarioURL( "equil" ), "config.xml" ) );
+
+		config.controller().setOutputDirectory( utils.getOutputDirectory() );
+		config.controller().setLastIteration( 0 );
+
+		QSimComponentsConfigGroup componentsConfig = ConfigUtils.addOrGetModule( config, QSimComponentsConfigGroup.class );
+
+		componentsConfig.removeActiveComponent( ActivityEngineModule.COMPONENT_NAME );
+		componentsConfig.addActiveComponent( ActivityEngineWithWakeup.COMPONENT_NAME );
+
+		componentsConfig.addActiveComponent( PreplanningEngineQSimModule.COMPONENT_NAME );
+
+		Scenario scenario = ScenarioUtils.loadScenario( config );
+		for( Person person : scenario.getPopulation().getPersons().values() ){
+			PreplanningUtils.setPrebookingOffset_s( person.getSelectedPlan(), 900. );
+		}
+
+		Controler controler = new Controler( scenario );
+
+		controler.addOverridingQSimModule( new AbstractQSimModule(){
+			@Override protected void configureQSim(){
+				bind(PreplanningEngine.class).asEagerSingleton();
+				addQSimComponentBinding(PreplanningEngineQSimModule.COMPONENT_NAME).to(PreplanningEngine.class).in( Singleton.class );
+				// Does the following:
+				// * on prepare sim: register all departure handlers that implement the TripInfo.Provider interface
+				// *
+
+				// the above just installs the functionality; it also needs to be requested (from config).
+
+				// needs to go along with ActivityEngineWithWakeup.  complains if not bound.
+				// yy is, however, ok if bound but not activated.  --?? --> should end up in same module!
+
+				addQSimComponentBinding( ActivityEngineWithWakeup.COMPONENT_NAME ).to( ActivityEngineWithWakeup.class ).in( Singleton.class );
+
+			}
+		} );
+
+		if ("true".equals(System.getProperty("runOTFVis"))) {
+			// This will start otfvis if property is set
+			controler.addOverridingModule(new OTFVisLiveModule() );
+			// !! does not work together with parameterized tests :-( !!
+		}
+
+		controler.run();
+	}
+
+}
diff --git a/contribs/vsp/src/test/java/org/matsim/integration/drtAndPt/PtAlongALine2Test.java b/contribs/vsp/src/test/java/org/matsim/integration/drtAndPt/PtAlongALine2Test.java
index 7d884443580..3a1e217d4f4 100644
--- a/contribs/vsp/src/test/java/org/matsim/integration/drtAndPt/PtAlongALine2Test.java
+++ b/contribs/vsp/src/test/java/org/matsim/integration/drtAndPt/PtAlongALine2Test.java
@@ -45,10 +45,7 @@
 import org.matsim.core.controler.Controler;
 import org.matsim.core.controler.events.IterationEndsEvent;
 import org.matsim.core.controler.listener.IterationEndsListener;
-import org.matsim.core.mobsim.qsim.AbstractQSimModule;
-import org.matsim.core.mobsim.qsim.ActivityEngineModule;
-import org.matsim.core.mobsim.qsim.ActivityEngineWithWakeup;
-import org.matsim.core.mobsim.qsim.PreplanningEngine;
+import org.matsim.core.mobsim.qsim.*;
 import org.matsim.core.mobsim.qsim.components.QSimComponentsConfigGroup;
 import org.matsim.core.router.AnalysisMainModeIdentifier;
 import org.matsim.core.router.TripStructureUtils;
@@ -321,9 +318,7 @@ void testPtAlongALineWithRaptorAndDrtServiceArea() {
 		}
 		if (drtMode == DrtMode.withPrebooking) {
 			for (Person person : scenario.getPopulation().getPersons().values()) {
-				person.getSelectedPlan()
-						.getAttributes()
-						.putAttribute(PreplanningEngine.PREBOOKING_OFFSET_ATTRIBUTE_NAME, 7200.);
+				PreplanningUtils.setPrebookingOffset_s( person.getSelectedPlan(), 7200. );
 			}
 		}
 
diff --git a/matsim/src/main/java/org/matsim/core/mobsim/qsim/ActivityEngineWithWakeup.java b/matsim/src/main/java/org/matsim/core/mobsim/qsim/ActivityEngineWithWakeup.java
index b23b695b9d4..64d9e9a3319 100644
--- a/matsim/src/main/java/org/matsim/core/mobsim/qsim/ActivityEngineWithWakeup.java
+++ b/matsim/src/main/java/org/matsim/core/mobsim/qsim/ActivityEngineWithWakeup.java
@@ -26,6 +26,8 @@
 
 import jakarta.inject.Inject;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.matsim.api.core.v01.Id;
 import org.matsim.api.core.v01.events.Event;
 import org.matsim.api.core.v01.population.Activity;
@@ -37,7 +39,7 @@
 
 public final class ActivityEngineWithWakeup implements ActivityEngine {
 	public static final String COMPONENT_NAME = "ActivityEngineWithWakeup";
-
+	private static final Logger log = LogManager.getLogger(ActivityEngineWithWakeup.class );
 	private final EventsManager eventsManager;
 	private final PreplanningEngine preplanningEngine;
 	private final ActivityEngine delegate;
@@ -55,6 +57,7 @@ public final class ActivityEngineWithWakeup implements ActivityEngine {
 
 	@Override
 	public void onPrepareSim() {
+		log.warn( "running onPrepareSim");
 		delegate.onPrepareSim();
 	}
 
diff --git a/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningEngine.java b/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningEngine.java
index 0f34e2d4a5b..5232b826ccf 100644
--- a/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningEngine.java
+++ b/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningEngine.java
@@ -72,11 +72,12 @@
 import com.google.inject.Inject;
 
 public final class PreplanningEngine implements MobsimEngine {
-	// Could implement this as a generalized version of the bdi-abm implementation: can send notifications to agent, and agent can react.  Similar to the drive-to action.
-	// Notifications and corresponding handlers could then be registered. On the other hand, it is easy to add an engine such as this one; how much does it help to have another
-	// layer of infrastructure?  Am currently leaning towards the second argument.  kai, mar'19
+	// Could implement this as a generalized version of the bdi-abm implementation: can send notifications to agent, and agent can react.  Similar
+	// to the drive-to action. Notifications and corresponding handlers could then be registered.
 
-	public static final String PREBOOKING_OFFSET_ATTRIBUTE_NAME = "prebookingOffset_s";
+	// On the other hand, it is easy to add an engine such as this one; how much does it help to have another layer of infrastructure?
+
+	// Am currently leaning towards the second argument.  kai, mar'19
 
 	private static final Logger log = LogManager.getLogger(PreplanningEngine.class);
 
@@ -93,9 +94,11 @@ public final class PreplanningEngine implements MobsimEngine {
 	private final Map<MobsimAgent, Optional<TripInfo>> tripInfoUpdatesMap = new TreeMap<>(comparing(Identifiable::getId ));
 	// yyyy not sure about possible race conditions here! kai, feb'19
 	// yyyyyy can't have non-sorted maps here because we will get non-deterministic results. kai, mar'19
+	// (haven't these two points be fixed by using the "comparing"?  kai, apr'24)
 
 	private final Map<MobsimAgent, TripInfo.Request> tripInfoRequestMap = new TreeMap<>(comparing(Identifiable::getId ));
 	// yyyyyy can't have non-sorted maps here because we will get non-deterministic results. kai, mar'19
+	// (hasn't this point be fixed by using the "comparing"? kai, apr'24)
 
 	private EditPlans editPlans;
 
@@ -113,6 +116,7 @@ public final class PreplanningEngine implements MobsimEngine {
 	}
 
 	@Override public void onPrepareSim() {
+		log.warn( "running onPrepareSim");
 		for (DepartureHandler departureHandler : internalInterface.getDepartureHandlers()) {
 			if (departureHandler instanceof TripInfo.Provider) {
 				String mode = ((TripInfo.Provider)departureHandler).getMode();
@@ -136,7 +140,8 @@ public final class PreplanningEngine implements MobsimEngine {
 		// (I have inlined the below methods since I find this for the time being easier to read.  Can be extracted again at some later point in time .
 		// kai, jan'20)
 
-		// process all (initial) requests:
+		// the following goes through all requests (generated by the agent wakups), send them to the trip info providers, and decide based on
+		// the returned information:
 		for (Map.Entry<MobsimAgent, TripInfo.Request> entry : tripInfoRequestMap.entrySet()) {
 			final MobsimAgent mobsimAgent = entry.getKey();
 			final TripInfo.Request request = entry.getValue();
@@ -149,11 +154,14 @@ public final class PreplanningEngine implements MobsimEngine {
 			// TODO add info for mode that is in agent plan, if not returned by trip info provider
 			// not sure if that is needed. kai, jan'20
 
+			// the following method decides, and
+			// * puts it then into the tripInfoUpdatesMap (processed below); or
+			// * if the agent needs to wait for confirmation, the confirming method (currently only in PassengerEngineWithPrebooking) puts it into tripInfoUpdatesMap.
 			decide( mobsimAgent, allTripInfos );
 		}
 		tripInfoRequestMap.clear();
 
-		// process all updates:
+		// process the tripInfoUpdatesMap (see above):
 		for (Map.Entry<MobsimAgent, Optional<TripInfo>> entry : tripInfoUpdatesMap.entrySet()) {
 			MobsimAgent agent = entry.getKey();
 
@@ -163,6 +171,14 @@ public final class PreplanningEngine implements MobsimEngine {
 				TripInfo actualTripInfo = tripInfo.get();
 				updateAgentPlan(agent, actualTripInfo);
 			} else {
+				// this can e.g. happen if the booking failed. At first glance, I am not too happy about this.  I think that if a
+				// provider is not able to process the trip, it should not return a TripInfo offer.  At second glance, it may happen
+				// that no provider returns a TripInfo offer. Now evidently, this could be avoided by always allowing for a fallback
+				// mode, e.g. walk and/or pt.   On the other hand, since the functionality is already here, we can as well try to keep
+				// it.  However, need to make sure that it eventually gets resolved.  Also see the questions below.
+
+				// in principle, one could always give the pt TripOption.  However, this would be fairly expensive to compute.
+
 				TripInfo.Request request = null;
 				//TODO get it from where ??? from TripInfo???
 				//TODO agent should adapt trip info request given that the previous one got rejected??
@@ -175,8 +191,10 @@ public final class PreplanningEngine implements MobsimEngine {
 		// (I have inlined the above methods since I find this for the time being easier to read.  Can be extracted again at some later point in time . kai, jan'20)
 	}
 
-	public synchronized final void notifyChangedTripInformation(MobsimAgent agent, Optional<TripInfo> tripInfoUpdate) {
+	public synchronized void notifyChangedTripInformation( MobsimAgent agent, Optional<TripInfo> tripInfoUpdate ) {
 		// yyyy My IDE complains about "Optional" in method signatures.  kai, jan'20
+		// It looks like it needs to be possible to return an "empty" tripInfoUpdate in order to notify that the "decided" (= selected) trip
+		// option did not work out.  Or, alternatively, none of the providers returned an answer at all.
 
 		tripInfoUpdatesMap.put(agent, tripInfoUpdate);
 	}
@@ -195,7 +213,7 @@ private void decide(MobsimAgent agent, List<TripInfo> allTripInfos) {
 		}
 
 		// to get started, we assume that we are only getting one drt option back.
-		// TODO: make complete
+		// yyyy TODO: evidently, this needs to be changed to mode choice between available modes.  kai, apr'24
 		TripInfo tripInfo = allTripInfos.iterator().next();
 
 		if (tripInfo instanceof TripInfoWithRequiredBooking) {
@@ -220,9 +238,15 @@ private void decide(MobsimAgent agent, List<TripInfo> allTripInfos) {
 
 			editPlans.rescheduleActivityEnd(agent);
 
+			// (if the trip requires booking, the booking confirmation comes later, so we need to delay the call to
+			// notifyChangedTripInformation until we have confirmation.  The "notifyChangedTripInfo" is actually called from within dvrp (PassengerEngineWithPrebooking). )
 		} else {
-			notifyChangedTripInformation(agent, Optional.of(tripInfo));//no booking here
+			// if we do not have to wait for the booking confirmation, we can immediately compute and insert the trip.  This is (once
+			// more) done by first collecting it into a container, and process the container later.  To achieve thread safety, inserting
+			// it into the container is a "synchronized" method:
+			notifyChangedTripInformation(agent, Optional.of(tripInfo));
 		}
+
 		log.warn("---");
 	}
 
@@ -232,12 +256,10 @@ List<ActivityEngineWithWakeup.AgentEntry> generateWakeups( MobsimAgent agent, do
 			return Collections.emptyList();
 		}
 
-
-		Double prebookingOffset_s = (Double)((PlanAgent)agent).getCurrentPlan().getAttributes().getAttribute(PREBOOKING_OFFSET_ATTRIBUTE_NAME);
-		// yyyy prebooking info needs to be in plan since it will not survive in the leg.  :-(  kai, jan'20
+		final Double prebookingOffset_s = PreplanningUtils.getPrebookingOffset_s( ((PlanAgent) agent).getCurrentPlan() );
 
 		if (prebookingOffset_s == null) {
-			log.warn("The " + PREBOOKING_OFFSET_ATTRIBUTE_NAME + " is not set in the agent.  No wakeup for prebooking will be generated.");
+			log.warn("The " + "prebookingOffset_s" + " is not set in the agent.  No wakeup for prebooking will be generated." );
 			return Collections.emptyList();
 		}
 
@@ -246,12 +268,16 @@ List<ActivityEngineWithWakeup.AgentEntry> generateWakeups( MobsimAgent agent, do
 		for (String mode : new String[] { TransportMode.drt, TransportMode.taxi } ) {
 			// (only do the following for drt and taxi yyyy which means it may fail for, say, "drt2".  kai, apr'23)
 
+			// (not doing this for, say, pt, is fine, though.  we could still have pt as fallback mode for drt/taxi.)
+
 			for (Leg drtLeg : EditPlans.findLegsWithModeInFuture(agent, mode )) {
 				// (find the corresponding legs)
 
 				final double prebookingTime = drtLeg.getDepartureTime().seconds() - prebookingOffset_s;
 				if (prebookingTime < agent.getActivityEndTime()) {
-					// yyyy and here one sees that having this in the activity engine is not very practical
+					// (yyyy and here one sees that having this in the activity engine is not very practical)
+
+					// ### the following inserts the preplanLeg (--> preplanTrip??), to be executed at wakeup: ###
 					log.info("generating wakeup entry");
 					wakeups.add(new ActivityEngineWithWakeup.AgentEntry(agent, prebookingTime, (agent1, then) -> preplanLeg(agent1, then, drtLeg )) );
 				}
@@ -299,6 +325,12 @@ private void preplanLeg( MobsimAgent agent, double now, Leg leg ) {
 		//first simulate ActivityEngineWithWakeup and then PreplanningEngine --> decision process
 		//in the same time step
 		this.notifyTripInfoNeeded(agent, request);
+
+		// (this enters the request into tripInfoRequestMap ... would be easier to read this if it was inlined ... but the method needs to be
+		// threadsafe and this is easier to achieve with a separate method.  kai, apr'24)
+
+		// (the tripInfoRequestMap will be processed in every time step.  Not sure if we can enforce that this happens after processing the
+		// wakeups, so it may happen in the following time step (--???).   This would contradict the comment above the method call.  kai, apr'24 )
 	}
 
 	private void updateAgentPlan(MobsimAgent agent, TripInfo tripInfo) {
@@ -327,33 +359,47 @@ private void updateAgentPlan(MobsimAgent agent, TripInfo tripInfo) {
 		}
 		Gbl.assertNotNull(inputTrip);
 
-		List<PlanElement> result = new ArrayList<>();
-
 		inputTrip.getOriginActivity().setEndTime(tripInfo.getExpectedBoardingTime() - 900);
 		// yyyy means for time being we always depart 15min before pickup.  kai, mar'19
 		WithinDayAgentUtils.resetCaches(agent);
 
 		log.warn("agentId=" + agent.getId() + " | newActEndTime=" + inputTrip.getOriginActivity()
-				.getEndTime()
-				.seconds());
+										     .getEndTime()
+										     .seconds());
+
+		final List<PlanElement> result = createDrtTripInclAccessEgress( tripInfo, inputTrip );
+
+		TripRouter.insertTrip(plan, inputTrip.getOriginActivity(), result, inputTrip.getDestinationActivity());
+
+		editPlans.rescheduleActivityEnd(agent);
+		// I don't think that this can ever do damage.
+
+		log.warn("new plan for agentId=" + agent.getId());
+		for (PlanElement planElement : plan.getPlanElements()) {
+			log.warn(planElement.toString());
+		}
+		log.warn("---");
+
+	}
+	private List<PlanElement> createDrtTripInclAccessEgress( TripInfo tripInfo, TripStructureUtils.Trip inputTrip ){
+		// code below currently has taxi hardcoded but this is not necessary IMO.  kai, apr'24
 
-		//		result.add( inputTrip.getOriginActivity() ) ;
-		// ---
+		List<PlanElement> result = new ArrayList<>();
 
 		PopulationFactory pf = population.getFactory();
 		{
-			Facility fromFacility = FacilitiesUtils.toFacility(inputTrip.getOriginActivity(), facilities);
+			Facility fromFacility = FacilitiesUtils.toFacility( inputTrip.getOriginActivity(), facilities );
 			Facility toFacility = tripInfo.getPickupLocation();
 			double departureTime = tripInfo.getExpectedBoardingTime() - 900.; // always depart 15min before pickup
 			List<? extends PlanElement> planElements = tripRouter.calcRoute(TransportMode.walk, fromFacility,
-					toFacility, departureTime, null, inputTrip.getTripAttributes());
+					toFacility, departureTime, null, inputTrip.getTripAttributes() );
 			// not sure if this works for walk, but it should ...
 
 			result.addAll(planElements);
 		}
 		{
 			Activity act = pf.createActivityFromLinkId(createStageActivityType(TransportMode.taxi),
-					tripInfo.getPickupLocation().getLinkId());
+					tripInfo.getPickupLocation().getLinkId() );
 			act.setMaximumDuration(0.);
 			result.add(act);
 		}
@@ -362,45 +408,33 @@ private void updateAgentPlan(MobsimAgent agent, TripInfo tripInfo) {
 			result.add(leg);
 			Route route = pf.getRouteFactories()
 					.createRoute(GenericRouteImpl.class, tripInfo.getPickupLocation().getLinkId(),
-							tripInfo.getDropoffLocation().getLinkId());
+							tripInfo.getDropoffLocation().getLinkId() );
 			leg.setRoute(route);
 		}
 		{
 			Activity act = pf.createActivityFromLinkId(createStageActivityType(TransportMode.taxi),
-					tripInfo.getDropoffLocation().getLinkId());
+					tripInfo.getDropoffLocation().getLinkId() );
 			act.setMaximumDuration(0.);
 			result.add(act);
 		}
 		{
 			Facility fromFacility = tripInfo.getDropoffLocation();
-			Facility toFacility = FacilitiesUtils.toFacility(inputTrip.getDestinationActivity(), facilities);
+			Facility toFacility = FacilitiesUtils.toFacility( inputTrip.getDestinationActivity(), facilities );
 			double expectedTravelTime;
 			try {
 				expectedTravelTime = tripInfo.getExpectedTravelTime();
 			} catch (Exception ee) {
-				expectedTravelTime = 15.
-						* 60; // using 15min as quick fix since dvrp refuses to provide this. kai, mar'19
+				expectedTravelTime = 15. * 60; // using 15min as quick fix since dvrp refuses to provide this. kai, mar'19
 			}
 			double departureTime = tripInfo.getExpectedBoardingTime() + expectedTravelTime;
 			List<? extends PlanElement> planElements = tripRouter.calcRoute(TransportMode.walk, fromFacility,
-					toFacility, departureTime, null, inputTrip.getOriginActivity().getAttributes());
+					toFacility, departureTime, null, inputTrip.getOriginActivity().getAttributes() );
 
 			result.addAll(planElements);
 		}
 
 		//		result.add( inputTrip.getDestinationActivity() ) ;
-
-		TripRouter.insertTrip(plan, inputTrip.getOriginActivity(), result, inputTrip.getDestinationActivity());
-
-		editPlans.rescheduleActivityEnd(agent);
-		// I don't think that this can ever do damage.
-
-		log.warn("new plan for agentId=" + agent.getId());
-		for (PlanElement planElement : plan.getPlanElements()) {
-			log.warn(planElement.toString());
-		}
-		log.warn("---");
-
+		return result;
 	}
 
 	static String toString(TripInfo info) {
diff --git a/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningUtils.java b/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningUtils.java
new file mode 100644
index 00000000000..bfc117ca153
--- /dev/null
+++ b/matsim/src/main/java/org/matsim/core/mobsim/qsim/PreplanningUtils.java
@@ -0,0 +1,15 @@
+package org.matsim.core.mobsim.qsim;
+
+import org.matsim.api.core.v01.population.Plan;
+
+public class PreplanningUtils{
+	private PreplanningUtils() {} // do not instantiate
+	public static Double getPrebookingOffset_s( Plan plan ){
+		// yyyy prebooking info needs to be in plan since it will not survive in the leg.  :-(  kai, jan'20
+		return (Double) plan.getAttributes().getAttribute( "prebookingOffset_s" );
+	}
+	public static void setPrebookingOffset_s( Plan plan, double offset ){
+		plan.getAttributes().putAttribute( "prebookingOffset_s", offset );
+		// yyyy prebooking info needs to be in plan since it will not survive in the leg.  :-(  kai, jan'20
+	}
+}
diff --git a/matsim/src/main/java/org/matsim/core/mobsim/qsim/components/QSimComponentsConfigGroup.java b/matsim/src/main/java/org/matsim/core/mobsim/qsim/components/QSimComponentsConfigGroup.java
index 8878ebe4118..c21058da8b3 100644
--- a/matsim/src/main/java/org/matsim/core/mobsim/qsim/components/QSimComponentsConfigGroup.java
+++ b/matsim/src/main/java/org/matsim/core/mobsim/qsim/components/QSimComponentsConfigGroup.java
@@ -80,6 +80,15 @@ public void addActiveComponent( String component ) {
 		// (doing this the indirect way because of the Set vs List discussion above.  kai, apr'23
 	}
 
+	public void removeActiveComponent( String component ) {
+		// I need this so often that I am finally adding it here.  kai, apr'24
+
+		List<String> components = getActiveComponents();
+		components.remove( component );
+		setActiveComponents( components );
+		// (doing this the indirect way because of the Set vs List discussion above.  kai, apr'24
+	}
+
 	@StringGetter(ACTIVE_COMPONENTS)
 	public String getActiveComponentsAsString() {
 		return String.join(", ", activeComponents);

From 8a219568299e6c456c209a3339feb42ec134fbd7 Mon Sep 17 00:00:00 2001
From: Kai Nagel <nagel@vsp.tu-berlin.de>
Date: Mon, 22 Apr 2024 14:01:01 +0200
Subject: [PATCH 10/24] I added a testcase but did not finish it.  It currently
 fails.  Thus disabling it.

---
 .../java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java b/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
index 74536deae58..b7ac20ef8bb 100644
--- a/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
+++ b/contribs/vsp/src/test/java/org/matsim/core/mobsim/qsim/PreplanningEngineTest.java
@@ -2,6 +2,7 @@
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.matsim.api.core.v01.Scenario;
@@ -24,6 +25,7 @@ class PreplanningEngineTest{
 
 	@RegisterExtension private MatsimTestUtils utils = new MatsimTestUtils();
 
+	@Disabled
 	@Test public void test() {
 		// I am interested here in testing this NOT with DRT but with other modes.  kai, apr'24
 		// In the somewhat longer run, should work together with fleetpy (of TUM).  kai, apr'24

From c8c4bd9ca05dd4c5ca8d4d6a878c7def2ff204d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20H=C3=B6rl?= <sebastian.horl@irt-systemx.fr>
Date: Mon, 22 Apr 2024 16:20:39 +0200
Subject: [PATCH 11/24] fix: default vehicle type id (#3156)

* fix: default vehicle type id

* fix unit test in freight

* change getDefaultVehicleType to createDefaultVehicleType

* fix test
---
 .../carsharing/qsim/ParkCSVehicles.java       |  8 ++--
 .../contrib/dvrp/fleet/FleetModule.java       |  2 +-
 .../examples/random/RandomDynAgentSource.java |  2 +-
 .../passenger/DefaultPassengerEngineTest.java |  2 +-
 .../dvrp/passenger/PassengerGroupTest.java    |  2 +-
 .../contrib/dvrp/router/DiversionTest.java    |  2 +-
 .../controler/FreightAgentSource.java         |  4 +-
 .../freight/carriers/CarriersUtilsTest.java   |  9 ++--
 .../sim/ParkingPopulationAgentSource.java     |  2 +-
 .../analysis/skims/NetworkSkimMatrices.java   |  2 +-
 .../run/SharingVehicleSource.java             |  2 +-
 .../PopulationAgentSourceWithVehicles.java    |  2 +-
 ...ilityTollTimeDistanceTravelDisutility.java |  2 +-
 ...ssionTollTimeDistanceTravelDisutility.java |  2 +-
 .../core/controler/PrepareForSimImpl.java     |  2 +-
 .../core/mobsim/hermes/ScenarioImporter.java  |  2 +-
 .../leastcostpathtree/LeastCostPathTree.java  |  2 +-
 .../org/matsim/vehicles/VehicleUtils.java     | 15 +++----
 .../qsim/NetsimRoutingConsistencyTest.java    |  8 ++--
 ...workRoutingInclAccessEgressModuleTest.java |  6 ++-
 .../vehicles/DefaultVehicleTypeTest.java      | 42 +++++++++++++++++++
 21 files changed, 85 insertions(+), 35 deletions(-)
 create mode 100644 matsim/src/test/java/org/matsim/vehicles/DefaultVehicleTypeTest.java

diff --git a/contribs/carsharing/src/main/java/org/matsim/contrib/carsharing/qsim/ParkCSVehicles.java b/contribs/carsharing/src/main/java/org/matsim/contrib/carsharing/qsim/ParkCSVehicles.java
index 666920c2aa9..b40618c00eb 100644
--- a/contribs/carsharing/src/main/java/org/matsim/contrib/carsharing/qsim/ParkCSVehicles.java
+++ b/contribs/carsharing/src/main/java/org/matsim/contrib/carsharing/qsim/ParkCSVehicles.java
@@ -34,13 +34,13 @@ public ParkCSVehicles(QSim qSim,
 		this.mainModes = qsim.getScenario().getConfig().qsim().getMainModes();
 	
 		for (String mode : mainModes) {
-			modeVehicleTypes.put(mode, VehicleUtils.getDefaultVehicleType());
+			modeVehicleTypes.put(mode, VehicleUtils.createDefaultVehicleType());
 		}
 		this.carsharingSupply =  carsharingSupply;
-		modeVehicleTypes.put("twoway", VehicleUtils.getDefaultVehicleType());
-		modeVehicleTypes.put("freefloating", VehicleUtils.getDefaultVehicleType());
+		modeVehicleTypes.put("twoway", VehicleUtils.createDefaultVehicleType());
+		modeVehicleTypes.put("freefloating", VehicleUtils.createDefaultVehicleType());
 
-		modeVehicleTypes.put("oneway", VehicleUtils.getDefaultVehicleType());
+		modeVehicleTypes.put("oneway", VehicleUtils.createDefaultVehicleType());
 		
 		
 	}
diff --git a/contribs/dvrp/src/main/java/org/matsim/contrib/dvrp/fleet/FleetModule.java b/contribs/dvrp/src/main/java/org/matsim/contrib/dvrp/fleet/FleetModule.java
index 2a49ab78f37..a6afe189882 100644
--- a/contribs/dvrp/src/main/java/org/matsim/contrib/dvrp/fleet/FleetModule.java
+++ b/contribs/dvrp/src/main/java/org/matsim/contrib/dvrp/fleet/FleetModule.java
@@ -52,7 +52,7 @@ public FleetModule(String mode, URL fleetSpecificationUrl, boolean updateVehicle
 		this.fleetSpecificationUrl = fleetSpecificationUrl;
 		this.updateVehicleStartLinkToLastLink = updateVehicleStartLinkToLastLink;
 
-		vehicleType = VehicleUtils.getDefaultVehicleType();
+		vehicleType = VehicleUtils.createDefaultVehicleType();
 	}
 
 	public FleetModule(String mode, URL fleetSpecificationUrl, VehicleType vehicleType) {
diff --git a/contribs/dvrp/src/main/java/org/matsim/contrib/dynagent/examples/random/RandomDynAgentSource.java b/contribs/dvrp/src/main/java/org/matsim/contrib/dynagent/examples/random/RandomDynAgentSource.java
index 373a824f13e..273fb016756 100644
--- a/contribs/dvrp/src/main/java/org/matsim/contrib/dynagent/examples/random/RandomDynAgentSource.java
+++ b/contribs/dvrp/src/main/java/org/matsim/contrib/dynagent/examples/random/RandomDynAgentSource.java
@@ -61,7 +61,7 @@ public void insertAgentsIntoMobsim() {
 //			qSim.createAndParkVehicleOnLink(qSimVehicleFactory.createVehicle(Id.create(id, Vehicle.class),
 //					VehicleUtils.getDefaultVehicleType()), startLinkId);
 
-			final Vehicle vehicle = qSimVehicleFactory.createVehicle( Id.create( id, Vehicle.class ), VehicleUtils.getDefaultVehicleType() ) ;
+			final Vehicle vehicle = qSimVehicleFactory.createVehicle( Id.create( id, Vehicle.class ), VehicleUtils.createDefaultVehicleType() ) ;
 			QVehicle qVehicle = new QVehicleImpl( vehicle ) ; // yyyyyy should use factory.  kai, nov'18
 			qSim.addParkedVehicle( qVehicle, startLinkId );
 
diff --git a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/DefaultPassengerEngineTest.java b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/DefaultPassengerEngineTest.java
index 97579d14517..d9664a3aaf8 100644
--- a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/DefaultPassengerEngineTest.java
+++ b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/DefaultPassengerEngineTest.java
@@ -188,7 +188,7 @@ protected void configureQSim() {
 						//supply
 						addQSimComponentBinding(DynActivityEngine.COMPONENT_NAME).to(DynActivityEngine.class);
 						bindModal(Fleet.class).toInstance(fleet);
-						bindModal(VehicleType.class).toInstance(VehicleUtils.getDefaultVehicleType());
+						bindModal(VehicleType.class).toInstance(VehicleUtils.createDefaultVehicleType());
 						bindModal(VrpOptimizer.class).to(optimizerClass).asEagerSingleton();
 						bindModal(VrpAgentLogic.DynActionCreator.class).to(OneTaxiActionCreator.class)
 								.asEagerSingleton();
diff --git a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/PassengerGroupTest.java b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/PassengerGroupTest.java
index 61a9804b4bf..c10c51eb838 100644
--- a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/PassengerGroupTest.java
+++ b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/passenger/PassengerGroupTest.java
@@ -120,7 +120,7 @@ protected void configureQSim() {
 						//supply
 						addQSimComponentBinding(DynActivityEngine.COMPONENT_NAME).to(DynActivityEngine.class);
 						bindModal(Fleet.class).toInstance(fleet);
-						bindModal(VehicleType.class).toInstance(VehicleUtils.getDefaultVehicleType());
+						bindModal(VehicleType.class).toInstance(VehicleUtils.createDefaultVehicleType());
 						bindModal(VrpOptimizer.class).to(optimizerClass).asEagerSingleton();
 						bindModal(VrpAgentLogic.DynActionCreator.class).to(OneTaxiActionCreator.class)
 								.asEagerSingleton();
diff --git a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/router/DiversionTest.java b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/router/DiversionTest.java
index 2aa72304e53..ed2c0c27587 100644
--- a/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/router/DiversionTest.java
+++ b/contribs/dvrp/src/test/java/org/matsim/contrib/dvrp/router/DiversionTest.java
@@ -287,7 +287,7 @@ protected void configureQSim() {
 				return Fleets.createDefaultFleet(fleetSpecification, getter.getModal(Network.class).getLinks()::get);
 			})).in(Singleton.class);
 
-			bindModal(VehicleType.class).toInstance(VehicleUtils.getDefaultVehicleType());
+			bindModal(VehicleType.class).toInstance(VehicleUtils.createDefaultVehicleType());
 
 			install(new VrpAgentSourceQSimModule(getMode()));
 
diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/controler/FreightAgentSource.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/controler/FreightAgentSource.java
index 71a577d8200..0feadd08226 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/controler/FreightAgentSource.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/controler/FreightAgentSource.java
@@ -74,10 +74,10 @@ public final class FreightAgentSource implements AgentSource {
 
 				Vehicle vehicle;
 				if( CarriersUtils.getVehicle( freightDriverPlan ) == null ){
-					vehicle = VehicleUtils.getFactory().createVehicle( Id.create( agent.getId(), Vehicle.class ), VehicleUtils.getDefaultVehicleType() );
+					vehicle = VehicleUtils.getFactory().createVehicle( Id.create( agent.getId(), Vehicle.class ), VehicleUtils.createDefaultVehicleType() );
 					log.warn( "vehicle for agent " + freightDriverPlan.getPerson().getId() + " is missing. set default vehicle where maxVelocity is solely defined by link.speed." );
 				} else if( CarriersUtils.getVehicle( freightDriverPlan ).getType() == null ){
-					vehicle = VehicleUtils.getFactory().createVehicle( Id.create( agent.getId(), Vehicle.class ), VehicleUtils.getDefaultVehicleType() );
+					vehicle = VehicleUtils.getFactory().createVehicle( Id.create( agent.getId(), Vehicle.class ), VehicleUtils.createDefaultVehicleType() );
 					log.warn( "vehicleType for agent " + freightDriverPlan.getPerson().getId() + " is missing. set default vehicleType where maxVelocity is solely defined by link.speed." );
 				} else {
 					vehicle = CarriersUtils.getVehicle( freightDriverPlan );
diff --git a/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java b/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
index b57f9d7b884..dbdcacf6eac 100644
--- a/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
+++ b/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
@@ -28,6 +28,7 @@
 import org.matsim.freight.carriers.*;
 import org.matsim.testcases.MatsimTestUtils;
 import org.matsim.vehicles.Vehicle;
+import org.matsim.vehicles.VehicleType;
 import org.matsim.vehicles.VehicleUtils;
 
 import static org.matsim.testcases.MatsimTestUtils.EPSILON;
@@ -41,22 +42,24 @@ public class CarriersUtilsTest {
 
 	@Test
 	void testAddAndGetVehicleToCarrier() {
+		VehicleType vehicleType = VehicleUtils.createDefaultVehicleType();
+		
 		Carrier carrier = new CarrierImpl(Id.create("carrier", Carrier.class));
 		Id<Vehicle> testVehicleId = Id.createVehicleId("testVehicle");
-		CarrierVehicle carrierVehicle = CarrierVehicle.newInstance(testVehicleId, Id.createLinkId("link0"),VehicleUtils.getDefaultVehicleType());
+		CarrierVehicle carrierVehicle = CarrierVehicle.newInstance(testVehicleId, Id.createLinkId("link0"),vehicleType);
 //		carrierVehicle.setType(VehicleUtils.getDefaultVehicleType());
 
 		//add Vehicle
 		CarriersUtils.addCarrierVehicle(carrier, carrierVehicle);
 		Assertions.assertEquals(1, carrier.getCarrierCapabilities().getCarrierVehicles().size());
 		CarrierVehicle cv = (CarrierVehicle) carrier.getCarrierCapabilities().getCarrierVehicles().values().toArray()[0];
-		Assertions.assertEquals(VehicleUtils.getDefaultVehicleType(), cv.getType());
+		Assertions.assertEquals(vehicleType, cv.getType());
 		Assertions.assertEquals(Id.createLinkId("link0"), cv.getLinkId() );
 
 		//get Vehicle
 		CarrierVehicle carrierVehicle1 = CarriersUtils.getCarrierVehicle(carrier, testVehicleId );
 		Assertions.assertEquals(testVehicleId, carrierVehicle1.getId());
-		Assertions.assertEquals(VehicleUtils.getDefaultVehicleType(), carrierVehicle1.getType());
+		Assertions.assertEquals(vehicleType, carrierVehicle1.getType());
 		Assertions.assertEquals(Id.createLinkId("link0"), carrierVehicle1.getLinkId() );
 	}
 
diff --git a/contribs/parking/src/main/java/org/matsim/contrib/parking/parkingsearch/sim/ParkingPopulationAgentSource.java b/contribs/parking/src/main/java/org/matsim/contrib/parking/parkingsearch/sim/ParkingPopulationAgentSource.java
index 9f99e27a697..4090819c849 100644
--- a/contribs/parking/src/main/java/org/matsim/contrib/parking/parkingsearch/sim/ParkingPopulationAgentSource.java
+++ b/contribs/parking/src/main/java/org/matsim/contrib/parking/parkingsearch/sim/ParkingPopulationAgentSource.java
@@ -79,7 +79,7 @@ public ParkingPopulationAgentSource(Population population, AgentFactory agentFac
 		case defaultVehicle:
 			for (String mode : mainModes) {
 				// initialize each mode with default vehicle type:
-				modeVehicleTypes.put(mode, VehicleUtils.getDefaultVehicleType());
+				modeVehicleTypes.put(mode, VehicleUtils.createDefaultVehicleType());
 			}
 			break;
 		case fromVehiclesData:
diff --git a/contribs/sbb-extensions/src/main/java/ch/sbb/matsim/analysis/skims/NetworkSkimMatrices.java b/contribs/sbb-extensions/src/main/java/ch/sbb/matsim/analysis/skims/NetworkSkimMatrices.java
index afc16f51ec0..421b9f9f1ef 100644
--- a/contribs/sbb-extensions/src/main/java/ch/sbb/matsim/analysis/skims/NetworkSkimMatrices.java
+++ b/contribs/sbb-extensions/src/main/java/ch/sbb/matsim/analysis/skims/NetworkSkimMatrices.java
@@ -106,7 +106,7 @@ public static <T> NetworkIndicators<T> calculateSkimMatrices(Network xy2lNetwork
 
     private static class RowWorker<T> implements Runnable {
 
-        private final static Vehicle VEHICLE = VehicleUtils.getFactory().createVehicle(Id.create("theVehicle", Vehicle.class), VehicleUtils.getDefaultVehicleType());
+        private final static Vehicle VEHICLE = VehicleUtils.getFactory().createVehicle(Id.create("theVehicle", Vehicle.class), VehicleUtils.createDefaultVehicleType());
         private final static Person PERSON = PopulationUtils.getFactory().createPerson(Id.create("thePerson", Person.class));
         private final ConcurrentLinkedQueue<T> originZones;
         private final Set<T> destinationZones;
diff --git a/contribs/shared_mobility/src/main/java/org/matsim/contrib/shared_mobility/run/SharingVehicleSource.java b/contribs/shared_mobility/src/main/java/org/matsim/contrib/shared_mobility/run/SharingVehicleSource.java
index ed1043cc6b0..2e6fe9188d6 100644
--- a/contribs/shared_mobility/src/main/java/org/matsim/contrib/shared_mobility/run/SharingVehicleSource.java
+++ b/contribs/shared_mobility/src/main/java/org/matsim/contrib/shared_mobility/run/SharingVehicleSource.java
@@ -31,7 +31,7 @@ public void insertAgentsIntoMobsim() {
         for (SharingVehicleSpecification veh : specification.getVehicles()) {
             Id<Link> startLink = veh.getStartLinkId().get();
             Id<Vehicle> vehId = Id.createVehicleId(veh.getId().toString());
-            Vehicle basicVehicle = factory.createVehicle(vehId, VehicleUtils.getDefaultVehicleType());
+            Vehicle basicVehicle = factory.createVehicle(vehId, VehicleUtils.createDefaultVehicleType());
             QVehicleImpl qvehicle = new QVehicleImpl(basicVehicle);
             qvehicle.setCurrentLink(this.qsim.getScenario().getNetwork().getLinks().get(startLink));
             qsim.addParkedVehicle(qvehicle, startLink);
diff --git a/contribs/socnetsim/src/main/java/org/matsim/contrib/socnetsim/sharedvehicles/qsim/PopulationAgentSourceWithVehicles.java b/contribs/socnetsim/src/main/java/org/matsim/contrib/socnetsim/sharedvehicles/qsim/PopulationAgentSourceWithVehicles.java
index b718bd8ca27..64d5eea19d8 100644
--- a/contribs/socnetsim/src/main/java/org/matsim/contrib/socnetsim/sharedvehicles/qsim/PopulationAgentSourceWithVehicles.java
+++ b/contribs/socnetsim/src/main/java/org/matsim/contrib/socnetsim/sharedvehicles/qsim/PopulationAgentSourceWithVehicles.java
@@ -73,7 +73,7 @@ public PopulationAgentSourceWithVehicles(
 		this.modeVehicleTypes = new HashMap<>();
 		this.mainModes = qsim.getScenario().getConfig().qsim().getMainModes();
 		for (String mode : mainModes) {
-			modeVehicleTypes.put(mode, VehicleUtils.getDefaultVehicleType());
+			modeVehicleTypes.put(mode, VehicleUtils.createDefaultVehicleType());
 		}
 	}
 
diff --git a/contribs/vsp/src/main/java/playground/vsp/airPollution/exposure/EmissionResponsibilityTollTimeDistanceTravelDisutility.java b/contribs/vsp/src/main/java/playground/vsp/airPollution/exposure/EmissionResponsibilityTollTimeDistanceTravelDisutility.java
index f1473df3400..42458673fbd 100644
--- a/contribs/vsp/src/main/java/playground/vsp/airPollution/exposure/EmissionResponsibilityTollTimeDistanceTravelDisutility.java
+++ b/contribs/vsp/src/main/java/playground/vsp/airPollution/exposure/EmissionResponsibilityTollTimeDistanceTravelDisutility.java
@@ -84,7 +84,7 @@ public double getLinkTravelDisutility(final Link link, final double time, final
             if (person == null){
                 // additionally, no person is given -> a default vehicle type is used
                 log.warn("No person and no vehicle is given to calculate the link travel disutility. The default vehicle type is used to estimate emission disutility.");
-                emissionVehicle = VehicleUtils.getFactory().createVehicle(Id.createVehicleId("defaultVehicle"), VehicleUtils.getDefaultVehicleType());
+                emissionVehicle = VehicleUtils.getFactory().createVehicle(Id.createVehicleId("defaultVehicle"), VehicleUtils.createDefaultVehicleType());
             } else {
                 // a person is given -> use the vehicle for that person given in emissionModule
                 emissionVehicle = this.emissionVehicles.getVehicles().get(Id.createVehicleId(person.getId()));
diff --git a/contribs/vsp/src/main/java/playground/vsp/airPollution/flatEmissions/EmissionTollTimeDistanceTravelDisutility.java b/contribs/vsp/src/main/java/playground/vsp/airPollution/flatEmissions/EmissionTollTimeDistanceTravelDisutility.java
index ece0910df0b..9dc8d9afdb4 100644
--- a/contribs/vsp/src/main/java/playground/vsp/airPollution/flatEmissions/EmissionTollTimeDistanceTravelDisutility.java
+++ b/contribs/vsp/src/main/java/playground/vsp/airPollution/flatEmissions/EmissionTollTimeDistanceTravelDisutility.java
@@ -82,7 +82,7 @@ public double getLinkTravelDisutility(final Link link, final double time, final
             if (person == null){
                 // additionally, no person is given -> a default vehicle type is used
                 log.warn("No person and no vehicle is given to calculate the link travel disutility. The default vehicle type is used to estimate emission disutility.");
-                emissionVehicle = VehicleUtils.getFactory().createVehicle(Id.createVehicleId("defaultVehicle"), VehicleUtils.getDefaultVehicleType());
+                emissionVehicle = VehicleUtils.getFactory().createVehicle(Id.createVehicleId("defaultVehicle"), VehicleUtils.createDefaultVehicleType());
             } else {
                 // a person is given -> use the vehicle for that person given in emissionModule
                 emissionVehicle = this.emissionVehicles.getVehicles().get(Id.createVehicleId(person.getId()));
diff --git a/matsim/src/main/java/org/matsim/core/controler/PrepareForSimImpl.java b/matsim/src/main/java/org/matsim/core/controler/PrepareForSimImpl.java
index 3278f06e295..359a812887a 100644
--- a/matsim/src/main/java/org/matsim/core/controler/PrepareForSimImpl.java
+++ b/matsim/src/main/java/org/matsim/core/controler/PrepareForSimImpl.java
@@ -291,7 +291,7 @@ private Map<String, VehicleType> getVehicleTypesForAllNetworkAndMainModes() {
 			VehicleType type;
 			switch (qSimConfigGroup.getVehiclesSource()) {
 				case defaultVehicle:
-					type = VehicleUtils.getDefaultVehicleType();
+					type = VehicleUtils.createDefaultVehicleType();
 					if (!scenario.getVehicles().getVehicleTypes().containsKey(type.getId())){
 						scenario.getVehicles().addVehicleType( type );
 					}
diff --git a/matsim/src/main/java/org/matsim/core/mobsim/hermes/ScenarioImporter.java b/matsim/src/main/java/org/matsim/core/mobsim/hermes/ScenarioImporter.java
index f8480f9647f..7501fcfdeca 100644
--- a/matsim/src/main/java/org/matsim/core/mobsim/hermes/ScenarioImporter.java
+++ b/matsim/src/main/java/org/matsim/core/mobsim/hermes/ScenarioImporter.java
@@ -369,7 +369,7 @@ private void processPlanNetworkRoute(
 		Id<org.matsim.api.core.v01.network.Link> endLId = netroute.getEndLinkId();
 		Map<Id<Vehicle>, Vehicle> vehicles = scenario.getVehicles().getVehicles();
 		Vehicle v = vehicles.get(VehicleUtils.getVehicleId(person, leg.getMode()));
-		Id<VehicleType> vtypeid = v == null ? VehicleUtils.getDefaultVehicleType().getId() : v.getType().getId();
+		Id<VehicleType> vtypeid = v == null ? VehicleUtils.createDefaultVehicleType().getId() : v.getType().getId();
 		int pcuCategory = this.vehicleTypeMapping.get(vtypeid);
 		Id<Vehicle> vid = v == null ? Id.createVehicleId("v" + person.getId()) : v.getId();
 		double velocity = v == null ?
diff --git a/matsim/src/main/java/org/matsim/utils/leastcostpathtree/LeastCostPathTree.java b/matsim/src/main/java/org/matsim/utils/leastcostpathtree/LeastCostPathTree.java
index 535d9d5ff5c..25416ae7e87 100644
--- a/matsim/src/main/java/org/matsim/utils/leastcostpathtree/LeastCostPathTree.java
+++ b/matsim/src/main/java/org/matsim/utils/leastcostpathtree/LeastCostPathTree.java
@@ -63,7 +63,7 @@ public class LeastCostPathTree {
 	private final TravelDisutility tcFunction;
 	private IdMap<Node, NodeData> nodeData = null;
 	
-	private final Vehicle VEHICLE = VehicleUtils.getFactory().createVehicle(Id.create("theVehicle", Vehicle.class), VehicleUtils.getDefaultVehicleType());
+	private final Vehicle VEHICLE = VehicleUtils.getFactory().createVehicle(Id.create("theVehicle", Vehicle.class), VehicleUtils.createDefaultVehicleType());
 	private final Person PERSON = PopulationUtils.getFactory().createPerson(Id.create("thePerson", Person.class));
 
 	// ////////////////////////////////////////////////////////////////////
diff --git a/matsim/src/main/java/org/matsim/vehicles/VehicleUtils.java b/matsim/src/main/java/org/matsim/vehicles/VehicleUtils.java
index 6c0a9b289ba..70027f8a0b5 100644
--- a/matsim/src/main/java/org/matsim/vehicles/VehicleUtils.java
+++ b/matsim/src/main/java/org/matsim/vehicles/VehicleUtils.java
@@ -39,7 +39,7 @@
 public final class VehicleUtils {
 	private static final Logger log = LogManager.getLogger( VehicleUtils.class ) ;
 
-	private static final VehicleType DEFAULT_VEHICLE_TYPE = VehicleUtils.getFactory().createVehicleType(Id.create("defaultVehicleType", VehicleType.class));
+	private static final String DEFAULT_VEHICLE_TYPE_ID = "defaultVehicleType";
 	private static final String VEHICLE_ATTRIBUTE_KEY = "vehicles";
 	private static final String VEHICLE_TYPES_ATTRIBUTE_KEY = "vehicleTypes";
 
@@ -62,10 +62,6 @@ public static VehicleType createVehicleType( Id<VehicleType> typeId ){
 		return new VehicleType( typeId );
 	}
 
-	static {
-		DEFAULT_VEHICLE_TYPE.getCapacity().setSeats( 4 );
-	}
-
 	public static VehiclesFactory getFactory() {
 		return new VehiclesFactoryImpl();
 	}
@@ -74,8 +70,13 @@ public static Vehicles createVehiclesContainer() {
 		return new VehiclesImpl();
 	}
 
-	public static VehicleType getDefaultVehicleType() {
-		return DEFAULT_VEHICLE_TYPE;
+	public static VehicleType createDefaultVehicleType() {
+		VehicleType defaultVehicleType = VehicleUtils.getFactory()
+				.createVehicleType(Id.create(DEFAULT_VEHICLE_TYPE_ID, VehicleType.class));
+		
+		defaultVehicleType.getCapacity().setSeats(4);
+		
+		return defaultVehicleType;
 	}
 
 	/**
diff --git a/matsim/src/test/java/org/matsim/core/mobsim/qsim/NetsimRoutingConsistencyTest.java b/matsim/src/test/java/org/matsim/core/mobsim/qsim/NetsimRoutingConsistencyTest.java
index cbdde36ca58..6899e6c95f1 100644
--- a/matsim/src/test/java/org/matsim/core/mobsim/qsim/NetsimRoutingConsistencyTest.java
+++ b/matsim/src/test/java/org/matsim/core/mobsim/qsim/NetsimRoutingConsistencyTest.java
@@ -165,9 +165,9 @@ void testRoutingVsSimulation() {
 			person.addPlan(plan);
 
 			Vehicle vehicle = scenario.getVehicles().getFactory().createVehicle(VehicleUtils.createVehicleId(person, TransportMode.car),
-					VehicleUtils.getDefaultVehicleType());
+					VehicleUtils.createDefaultVehicleType());
 			VehicleUtils.insertVehicleIdsIntoAttributes(person, Map.of(TransportMode.car, vehicle.getId()));
-			scenario.getVehicles().addVehicleType(VehicleUtils.getDefaultVehicleType());
+			scenario.getVehicles().addVehicleType(VehicleUtils.createDefaultVehicleType());
 			scenario.getVehicles().addVehicle(vehicle);
 
 			TravelTime travelTime = new FreeSpeedTravelTime();
@@ -251,8 +251,8 @@ void testRoutingVsSimulationFullStack() {
 			Arrays.asList(link12, link23, link34, link45).forEach(l -> l.setFreespeed(10.0));
 
 			Vehicle vehicle = scenario.getVehicles().getFactory().createVehicle(Id.createVehicleId("P"),
-					VehicleUtils.getDefaultVehicleType());
-			scenario.getVehicles().addVehicleType(VehicleUtils.getDefaultVehicleType());
+					VehicleUtils.createDefaultVehicleType());
+			scenario.getVehicles().addVehicleType(VehicleUtils.createDefaultVehicleType());
 			scenario.getVehicles().addVehicle(vehicle);
 
 			Population population = scenario.getPopulation();
diff --git a/matsim/src/test/java/org/matsim/core/router/NetworkRoutingInclAccessEgressModuleTest.java b/matsim/src/test/java/org/matsim/core/router/NetworkRoutingInclAccessEgressModuleTest.java
index be39a4c44ba..392a301d1c4 100644
--- a/matsim/src/test/java/org/matsim/core/router/NetworkRoutingInclAccessEgressModuleTest.java
+++ b/matsim/src/test/java/org/matsim/core/router/NetworkRoutingInclAccessEgressModuleTest.java
@@ -248,10 +248,14 @@ void calcRoute_defaultVehicle_defaultVehicleIsAssigned() {
 
         Map<String, Id<Vehicle>> modeId = VehicleUtils.getVehicleIds(person);
 
+		VehicleType defaultVehicleType = scenario.getVehicles().getVehicleTypes()
+				.get(VehicleUtils.createDefaultVehicleType().getId());
+		assertNotNull(defaultVehicleType);
+
         // should be only one, but however
         for (Id<Vehicle> vehicleId : modeId.values()) {
             assertTrue(scenario.getVehicles().getVehicles().containsKey(vehicleId));
-            assertEquals(VehicleUtils.getDefaultVehicleType(), scenario.getVehicles().getVehicles().get(vehicleId).getType());
+            assertEquals(defaultVehicleType, scenario.getVehicles().getVehicles().get(vehicleId).getType());
         }
     }
 
diff --git a/matsim/src/test/java/org/matsim/vehicles/DefaultVehicleTypeTest.java b/matsim/src/test/java/org/matsim/vehicles/DefaultVehicleTypeTest.java
new file mode 100644
index 00000000000..863c235549d
--- /dev/null
+++ b/matsim/src/test/java/org/matsim/vehicles/DefaultVehicleTypeTest.java
@@ -0,0 +1,42 @@
+package org.matsim.vehicles;
+
+import org.junit.jupiter.api.Test;
+import org.matsim.api.core.v01.Id;
+import org.matsim.api.core.v01.Scenario;
+import org.matsim.core.config.Config;
+import org.matsim.core.config.ConfigUtils;
+import org.matsim.core.scenario.ScenarioUtils;
+import org.matsim.vehicles.VehicleType;
+import org.matsim.vehicles.VehicleUtils;
+import org.matsim.vehicles.Vehicles;
+
+class DefaultVehicleTypeTest {
+	@Test
+	void testFirst() {
+		Config config = ConfigUtils.createConfig();
+		Scenario scenario = ScenarioUtils.createScenario(config);
+
+		Vehicles vehicles = scenario.getVehicles();
+
+		VehicleType vehicleType = VehicleUtils.createDefaultVehicleType();
+		vehicles.addVehicleType(vehicleType);
+
+		VehicleType vehicleType2 = vehicles.getFactory().createVehicleType(Id.create("custom", VehicleType.class));
+		vehicles.addVehicleType(vehicleType2);
+	}
+
+	@Test
+	void testSecond() {
+		Config config = ConfigUtils.createConfig();
+		Scenario scenario = ScenarioUtils.createScenario(config);
+
+		Vehicles vehicles = scenario.getVehicles();
+
+		VehicleType vehicleType = VehicleUtils.createDefaultVehicleType();
+		vehicles.addVehicleType(vehicleType);
+
+		// this caused a clash in IDs before getDefaultVehicleType was fixed
+		VehicleType vehicleType2 = vehicles.getFactory().createVehicleType(Id.create("custom", VehicleType.class));
+		vehicles.addVehicleType(vehicleType2);
+	}
+}
\ No newline at end of file

From 0d7df13ed631f58f6df9623e18ee1d76ffa7e5b5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Apr 2024 14:42:52 +0000
Subject: [PATCH 12/24] build(deps): bump
 org.apache.maven.plugins:maven-jar-plugin

Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.4.0...maven-jar-plugin-3.4.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7a8d856540e..c04827fbee1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -421,7 +421,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.4.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 5af546b28d8b7a975852c7d5faefc293c0dcc0f1 Mon Sep 17 00:00:00 2001
From: rakow <rakow@users.noreply.github.com>
Date: Tue, 23 Apr 2024 09:13:14 +0200
Subject: [PATCH 13/24] Support .gpkg files in shp options (#3228)

* support .gpkg files in shp options

* better naming

* update test
---
 .../application/options/ShpOptions.java       | 104 +++++++++++++-----
 .../matsim/application/prepare/Predictor.java |  32 ++++++
 .../application/options/ShpOptionsTest.java   |  37 +++++--
 .../matsim/application/options/example.gpkg   | Bin 0 -> 466944 bytes
 .../matsim/core/utils/gis/GeoFileReader.java  |  13 +++
 5 files changed, 150 insertions(+), 36 deletions(-)
 create mode 100644 contribs/application/src/main/java/org/matsim/application/prepare/Predictor.java
 create mode 100644 contribs/application/test/input/org/matsim/application/options/example.gpkg

diff --git a/contribs/application/src/main/java/org/matsim/application/options/ShpOptions.java b/contribs/application/src/main/java/org/matsim/application/options/ShpOptions.java
index 7962c3d8d80..359eedb0db4 100644
--- a/contribs/application/src/main/java/org/matsim/application/options/ShpOptions.java
+++ b/contribs/application/src/main/java/org/matsim/application/options/ShpOptions.java
@@ -1,11 +1,12 @@
 package org.matsim.application.options;
 
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.geotools.data.FeatureReader;
-import org.geotools.data.FileDataStoreFactorySpi;
+import org.geotools.data.*;
 import org.geotools.data.shapefile.ShapefileDataStore;
 import org.geotools.data.shapefile.ShapefileDataStoreFactory;
+import org.geotools.geopkg.GeoPkgDataStoreFactory;
 import org.geotools.referencing.CRS;
 import org.locationtech.jts.geom.*;
 import org.locationtech.jts.index.strtree.AbstractNode;
@@ -34,10 +35,7 @@
 import java.net.URL;
 import java.nio.charset.Charset;
 import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.function.Predicate;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -62,6 +60,9 @@ public final class ShpOptions {
 	@CommandLine.Option(names = "--shp-crs", description = "Overwrite coordinate system of the shape file")
 	private String shpCrs;
 
+	@CommandLine.Option(names = "--shp-layer", description = "Layer to use (for .gpgk files). Defaults to first layer.", required = false)
+	private String shpLayer;
+
 	@CommandLine.Option(names = "--shp-charset", description = "Charset used to read the shape file", defaultValue = "ISO-8859-1")
 	private Charset shpCharset;
 
@@ -86,19 +87,41 @@ public ShpOptions(String shp, @Nullable String shpCrs, @Nullable Charset shpChar
 		this.shpCharset = shpCharset;
 	}
 
+	private ShpOptions(String shp, String shpCrs, String shpLayer, Charset shpCharset) {
+		this.shp = shp;
+		this.shpCrs = shpCrs;
+		this.shpLayer = shpLayer;
+		this.shpCharset = shpCharset;
+	}
+
+	/**
+	 * Create shp options with a specific layer. (Usually for gpkg files).
+	 */
+	public static ShpOptions ofLayer(String shp, @Nullable String shpLayer) {
+		return new ShpOptions(shp, null, shpLayer, null);
+	}
+
 	/**
 	 * Opens datastore to a shape-file.
 	 */
-	public static ShapefileDataStore openDataStore(String shp) throws IOException {
+	public static DataStore openDataStore(String shp) throws IOException {
 
 		FileDataStoreFactorySpi factory = new ShapefileDataStoreFactory();
 
 		URL url = IOUtils.resolveFileOrResource(shp);
 
-		ShapefileDataStore ds;
+		DataStore ds;
 		if (shp.endsWith(".shp"))
-			ds = (ShapefileDataStore) factory.createDataStore(url);
-		else if (shp.endsWith(".zip")) {
+			ds = factory.createDataStore(url);
+		else if (shp.endsWith(".gpkg")) {
+			ds = DataStoreFinder.getDataStore(Map.of(
+				GeoPkgDataStoreFactory.DBTYPE.key, "geopkg",
+				GeoPkgDataStoreFactory.DATABASE.key, shp,
+				GeoPkgDataStoreFactory.READ_ONLY.key, true
+			));
+		} else if (shp.endsWith(".dbf") || shp.endsWith(".shx")) {
+			throw new IllegalArgumentException("Shape file must be .shp, but was: " + shp);
+		} else if (shp.endsWith(".zip")) {
 
 			// Zip files will only work with local files
 			URI uri;
@@ -119,12 +142,12 @@ else if (shp.endsWith(".zip")) {
 				throw new IllegalArgumentException("Could not create URI for zip file: " + url, e);
 			}
 
-			ds = (ShapefileDataStore) factory.createDataStore(uri.toURL());
+			ds = factory.createDataStore(uri.toURL());
 		} else {
 			throw new IllegalArgumentException("Shape file must either be .zip or .shp, but was: " + shp);
 		}
 
-		return ds;
+		return Objects.requireNonNull(ds, "Could not create data store.");
 	}
 
 	/**
@@ -158,11 +181,15 @@ public List<SimpleFeature> readFeatures() {
 			throw new IllegalStateException("Shape file path not specified");
 
 		try {
-			ShapefileDataStore ds = openDataStore(shp);
-			if (shpCharset != null)
-				ds.setCharset(shpCharset);
+			DataStore ds = openDataStore(shp);
+			if (shpCharset != null && ds instanceof ShapefileDataStore shpDs)
+				shpDs.setCharset(shpCharset);
 
-			return GeoFileReader.getSimpleFeatures(ds);
+			if (ds instanceof FileDataStore fds) {
+				return GeoFileReader.getSimpleFeatures(fds);
+			}
+
+			return GeoFileReader.getSimpleFeatures(ds, getLayer(ds));
 		} catch (IOException e) {
 			throw new UncheckedIOException(e);
 		}
@@ -179,7 +206,7 @@ public Geometry getGeometry() {
 		}
 
 		if (features.size() == 1) {
-            return (Geometry) features.iterator().next().getDefaultGeometry();
+			return (Geometry) features.iterator().next().getDefaultGeometry();
 		}
 
 		GeometryFactory factory = ((Geometry) features.iterator().next().getDefaultGeometry()).getFactory();
@@ -212,7 +239,7 @@ public Index createIndex(String queryCRS, String attr, Predicate<SimpleFeature>
 			throw new IllegalArgumentException("Query crs must not be null!");
 
 		try {
-			ShapefileDataStore ds = openDataStoreAndSetCRS();
+			DataStore ds = openDataStoreAndSetCRS();
 			CoordinateTransformation ct;
 			if (queryCRS.equals(SAME_CRS))
 				ct = new IdentityTransformation();
@@ -254,8 +281,8 @@ private String detectCRS() {
 
 		if (shpCrs == null) {
 			try {
-				ShapefileDataStore ds = openDataStore(shp);
-				CoordinateReferenceSystem crs = ds.getSchema().getCoordinateReferenceSystem();
+				DataStore ds = openDataStore(shp);
+				CoordinateReferenceSystem crs = ds.getSchema(getLayer(ds)).getCoordinateReferenceSystem();
 				ds.dispose();
 				shpCrs = "EPSG:" + CRS.lookupEpsgCode(crs, true);
 				log.info("Using detected crs for {}: {}", shp, shpCrs);
@@ -271,12 +298,12 @@ private String detectCRS() {
 	/**
 	 * Open the shape file for processing and set the crs if not already specified.
 	 */
-	private ShapefileDataStore openDataStoreAndSetCRS() throws IOException {
-		ShapefileDataStore ds = openDataStore(shp);
+	private DataStore openDataStoreAndSetCRS() throws IOException {
+		DataStore ds = openDataStore(shp);
 
 		if (shpCrs == null) {
 			try {
-				CoordinateReferenceSystem crs = ds.getSchema().getCoordinateReferenceSystem();
+				CoordinateReferenceSystem crs = ds.getSchema(getLayer(ds)).getCoordinateReferenceSystem();
 				shpCrs = "EPSG:" + CRS.lookupEpsgCode(crs, true);
 				log.info("Using detected crs for {}: {}", shp, shpCrs);
 			} catch (FactoryException | NullPointerException e) {
@@ -287,6 +314,21 @@ private ShapefileDataStore openDataStoreAndSetCRS() throws IOException {
 		return ds;
 	}
 
+	/**
+	 * Get the selected layer or throw exception if not found.
+	 */
+	private String getLayer(DataStore ds) throws IOException {
+		String[] typeNames = ds.getTypeNames();
+		if (shpLayer != null) {
+			if (!ArrayUtils.contains(typeNames, shpLayer))
+				throw new IllegalArgumentException("Layer " + shpLayer + " not found in shape file.");
+
+			return shpLayer;
+		}
+
+		return typeNames[0];
+	}
+
 	/**
 	 * Create an inverse coordinate transformation from the shape file crs. Tries to autodetect the crs of the shape file.
 	 */
@@ -309,11 +351,18 @@ public final class Index {
 		 * @param ct   coordinate transform from query to target crs
 		 * @param attr attribute for the result of {@link #query(Coord)}
 		 */
-		Index(CoordinateTransformation ct, ShapefileDataStore ds, String attr, @Nullable Predicate<SimpleFeature> filter) throws IOException {
-			if (shpCharset != null)
-				ds.setCharset(shpCharset);
+		Index(CoordinateTransformation ct, DataStore ds, String attr, @Nullable Predicate<SimpleFeature> filter) throws IOException {
+			if (shpCharset != null && ds instanceof ShapefileDataStore shpDs)
+				shpDs.setCharset(shpCharset);
+
+			FeatureReader<SimpleFeatureType, SimpleFeature> it;
+			DefaultTransaction transaction = new DefaultTransaction();
+			if (ds instanceof FileDataStore fds) {
+				it = fds.getFeatureReader();
+			} else {
+				it = ds.getFeatureReader(new Query(getLayer(ds)), transaction);
+			}
 
-			FeatureReader<SimpleFeatureType, SimpleFeature> it = ds.getFeatureReader();
 			while (it.hasNext()) {
 				SimpleFeature ft = it.next();
 
@@ -332,6 +381,7 @@ public final class Index {
 
 			index.build();
 
+			transaction.close();
 			it.close();
 			ds.dispose();
 
diff --git a/contribs/application/src/main/java/org/matsim/application/prepare/Predictor.java b/contribs/application/src/main/java/org/matsim/application/prepare/Predictor.java
new file mode 100644
index 00000000000..460d1a41abe
--- /dev/null
+++ b/contribs/application/src/main/java/org/matsim/application/prepare/Predictor.java
@@ -0,0 +1,32 @@
+package org.matsim.application.prepare;
+
+import it.unimi.dsi.fastutil.objects.Object2DoubleMap;
+import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
+
+/**
+ * Predictor interface for arbitrary numeric values.
+ */
+public interface Predictor {
+
+
+	/**
+	 * Predict value from given features.
+	 */
+	double predict(Object2DoubleMap<String> features, Object2ObjectMap<String, String> categories);
+
+	/**
+	 * Predict values with adjusted model params.
+	 */
+	default double predict(Object2DoubleMap<String> features, Object2ObjectMap<String, String> categories, double[] params) {
+		throw new UnsupportedOperationException("Not implemented");
+	}
+
+
+	/**
+	 * Return data that is used for internal prediction function (normalization already applied).
+	 */
+	default double[] getData(Object2DoubleMap<String> features, Object2ObjectMap<String, String> categories) {
+		throw new UnsupportedOperationException("Not implemented");
+	}
+
+}
diff --git a/contribs/application/src/test/java/org/matsim/application/options/ShpOptionsTest.java b/contribs/application/src/test/java/org/matsim/application/options/ShpOptionsTest.java
index 9b4b662733f..bc13baad71f 100644
--- a/contribs/application/src/test/java/org/matsim/application/options/ShpOptionsTest.java
+++ b/contribs/application/src/test/java/org/matsim/application/options/ShpOptionsTest.java
@@ -29,7 +29,7 @@ void readZip() {
 		Path input = Path.of(utils.getClassInputDirectory()
 				.replace("ShpOptionsTest", "CreateLandUseShpTest")
 				.replace("options", "prepare"))
-				.resolve("andorra-latest-free.shp.zip");
+			.resolve("andorra-latest-free.shp.zip");
 
 		Assumptions.assumeTrue(Files.exists(input));
 
@@ -38,7 +38,7 @@ void readZip() {
 		List<SimpleFeature> ft = shp.readFeatures();
 
 		assertThat(ft)
-				.isNotEmpty();
+			.isNotEmpty();
 
 	}
 
@@ -73,7 +73,7 @@ void all() {
 		Path input = Path.of(utils.getClassInputDirectory()
 				.replace("ShpOptionsTest", "CreateLandUseShpTest")
 				.replace("options", "prepare"))
-				.resolve("andorra-latest-free.shp.zip");
+			.resolve("andorra-latest-free.shp.zip");
 
 		Assumptions.assumeTrue(Files.exists(input));
 
@@ -84,8 +84,8 @@ void all() {
 		List<SimpleFeature> ft = index.getAllFeatures();
 
 		assertThat(ft)
-				.hasSize(4906)
-				.hasSize(Set.copyOf(ft).size());
+			.hasSize(4906)
+			.hasSize(Set.copyOf(ft).size());
 
 		assertThat(shp.readFeatures())
 			.hasSameElementsAs(ft);
@@ -96,17 +96,36 @@ void all() {
 	void testGetGeometry() {
 
 		Path input = Path.of(utils.getClassInputDirectory()
-						.replace("ShpOptionsTest", "CreateLandUseShpTest")
-						.replace("options", "prepare"))
-				.resolve("andorra-latest-free.shp.zip");
+				.replace("ShpOptionsTest", "CreateLandUseShpTest")
+				.replace("options", "prepare"))
+			.resolve("andorra-latest-free.shp.zip");
 
 		Assumptions.assumeTrue(Files.exists(input));
 
 		ShpOptions shp = new ShpOptions(input, null, null);
-		Geometry geometry = shp.getGeometry() ;
+		Geometry geometry = shp.getGeometry();
 
 		assertThat(geometry.getArea())
 			.isCloseTo(1.9847543618489646E-4, Offset.offset(1e-8));
 
 	}
+
+	@Test
+	void gpkg() {
+
+		Path path = Path.of(utils.getPackageInputDirectory(), "example.gpkg");
+
+		ShpOptions shp = ShpOptions.ofLayer(path.toString(), null);
+
+		List<SimpleFeature> features = shp.readFeatures();
+
+		assertThat(features)
+			.hasSize(3);
+
+		ShpOptions.Index index = shp.createIndex("_");
+
+		assertThat(index.size())
+			.isEqualTo(3);
+
+	}
 }
diff --git a/contribs/application/test/input/org/matsim/application/options/example.gpkg b/contribs/application/test/input/org/matsim/application/options/example.gpkg
new file mode 100644
index 0000000000000000000000000000000000000000..0c65655eabb22aa82cef9ba74fb14afa41e4703f
GIT binary patch
literal 466944
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

literal 0
HcmV?d00001

diff --git a/matsim/src/main/java/org/matsim/core/utils/gis/GeoFileReader.java b/matsim/src/main/java/org/matsim/core/utils/gis/GeoFileReader.java
index 9938a3e1548..80fe6650150 100644
--- a/matsim/src/main/java/org/matsim/core/utils/gis/GeoFileReader.java
+++ b/matsim/src/main/java/org/matsim/core/utils/gis/GeoFileReader.java
@@ -133,6 +133,19 @@ public static List<SimpleFeature> getSimpleFeatures(DataStore dataStore, Name la
 		return featureSet;
 	}
 
+	/**
+	 * Read all simple features from a data store. This method makes sure the store is closed afterwards.
+	 * @return list of contained features.
+	 * @see #getSimpleFeatures(DataStore, Name)
+	 */
+	public static List<SimpleFeature> getSimpleFeatures(DataStore dataStore, String layerName) throws IOException {
+		SimpleFeatureSource featureSource = dataStore.getFeatureSource(layerName);
+		Gbl.assertNotNull(featureSource);
+		List<SimpleFeature> featureSet = getSimpleFeatures(featureSource);
+		dataStore.dispose();
+		return featureSet;
+	}
+
 	private static List<SimpleFeature> getSimpleFeatures(SimpleFeatureSource featureSource) throws IOException {
 		SimpleFeatureIterator it = featureSource.getFeatures().features();
 		List<SimpleFeature> featureSet = new ArrayList<>();

From 712783e9d8bcf0849f6b1e03c0471181428ab199 Mon Sep 17 00:00:00 2001
From: Paul Heinrich <pheinrich11235@gmail.com>
Date: Tue, 23 Apr 2024 13:48:45 +0200
Subject: [PATCH 14/24] add executor service

---
 .../freight/carriers/CarriersUtils.java       | 106 +++++++++++-------
 1 file changed, 64 insertions(+), 42 deletions(-)

diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
index 755be732e4d..7cb9c00204c 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
@@ -46,6 +46,8 @@
 import javax.management.InvalidAttributeValueException;
 import java.util.*;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -192,7 +194,7 @@ public static void runJsprit(Scenario scenario) throws ExecutionException, Inter
 		// Fill carrierActivityCounterMap -> basis for sorting the carriers by number of activities before solving in parallel
 		for (Carrier carrier : carriers.getCarriers().values()) {
 			carrierActivityCounterMap.put(carrier.getId(), carrierActivityCounterMap.getOrDefault(carrier.getId(), 0) + carrier.getServices().size());
-			carrierActivityCounterMap.put(carrier.getId(), carrierActivityCounterMap.getOrDefault(carrier.getId(), 0) + carrier.getShipments().size());
+			carrierActivityCounterMap.put(carrier.getId(), carrierActivityCounterMap.getOrDefault(carrier.getId(), 0) + 2*carrier.getShipments().size());
 		}
 
 		HashMap<Id<Carrier>, Integer> sortedMap = carrierActivityCounterMap.entrySet().stream()
@@ -203,53 +205,73 @@ public static void runJsprit(Scenario scenario) throws ExecutionException, Inter
 		AtomicInteger solvedVRPCounter = new AtomicInteger(0);
 
 		ArrayList<Id<Carrier>> tempList = new ArrayList<>(sortedMap.keySet());
-		ForkJoinPool forkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors());
-		forkJoinPool.submit(() -> tempList.parallelStream().forEach(carrierId -> {
-			Carrier carrier = carriers.getCarriers().get(carrierId);
-
-			double start = System.currentTimeMillis();
-			if (!carrier.getServices().isEmpty())
-				log.info("Start tour planning for {} which has {} services", carrier.getId(), carrier.getServices().size());
-			else if (!carrier.getShipments().isEmpty())
-				log.info("Start tour planning for {} which has {} shipments", carrier.getId(), carrier.getShipments().size());
-
-			startedVRPCounter.incrementAndGet();
-			log.info("started VRP solving for carrier number {} out of {} carriers.", startedVRPCounter.get(), carriers.getCarriers().size());
-
-			VehicleRoutingProblem problem = MatsimJspritFactory.createRoutingProblemBuilder(carrier, scenario.getNetwork()).setRoutingCost(netBasedCosts).build();
-			VehicleRoutingAlgorithm algorithm = MatsimJspritFactory.loadOrCreateVehicleRoutingAlgorithm(scenario, freightCarriersConfigGroup, netBasedCosts, problem);
-
-			algorithm.getAlgorithmListeners().addListener(new StopWatch(), VehicleRoutingAlgorithmListeners.Priority.HIGH);
-			int jspritIterations = getJspritIterations(carrier);
-			try {
-				if (jspritIterations > 0) {
-					algorithm.setMaxIterations(jspritIterations);
-				} else {
-					throw new InvalidAttributeValueException(
-							"Carrier has invalid number of jsprit iterations. They must be positive! Carrier id: "
-									+ carrier.getId().toString());}
-			} catch (Exception e) {
-				throw new RuntimeException(e);
-//				e.printStackTrace();
-			}
 
-			VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions());
+		int nThreads = Runtime.getRuntime().availableProcessors();
+		ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
+		List<List<Id<Carrier>>> splitList = splitListAlternating(nThreads, tempList);
+		for (List<Id<Carrier>> subList : splitList) {
+			executorService.submit(() -> subList.forEach(carrierId -> {
+				Carrier carrier = carriers.getCarriers().get(carrierId);
+
+				double start = System.currentTimeMillis();
+				if (!carrier.getServices().isEmpty())
+					log.info("Start tour planning for {} which has {} services", carrier.getId(), carrier.getServices().size());
+				else if (!carrier.getShipments().isEmpty())
+					log.info("Start tour planning for {} which has {} shipments", carrier.getId(), carrier.getShipments().size());
+
+				startedVRPCounter.incrementAndGet();
+				log.info("started VRP solving for carrier number {} out of {} carriers.", startedVRPCounter.get(), carriers.getCarriers().size());
+
+				VehicleRoutingProblem problem = MatsimJspritFactory.createRoutingProblemBuilder(carrier, scenario.getNetwork()).setRoutingCost(netBasedCosts).build();
+				VehicleRoutingAlgorithm algorithm = MatsimJspritFactory.loadOrCreateVehicleRoutingAlgorithm(scenario, freightCarriersConfigGroup, netBasedCosts, problem);
+
+				algorithm.getAlgorithmListeners().addListener(new StopWatch(), VehicleRoutingAlgorithmListeners.Priority.HIGH);
+				int jspritIterations = getJspritIterations(carrier);
+				try {
+					if (jspritIterations > 0) {
+						algorithm.setMaxIterations(jspritIterations);
+					} else {
+						throw new InvalidAttributeValueException(
+								"Carrier has invalid number of jsprit iterations. They must be positive! Carrier id: "
+										+ carrier.getId().toString());}
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+	//				e.printStackTrace();
+				}
+
+				VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions());
+
+				log.info("tour planning for carrier {} took {} seconds.", carrier.getId(), (System.currentTimeMillis() - start) / 1000);
 
-			log.info("tour planning for carrier {} took {} seconds.", carrier.getId(), (System.currentTimeMillis() - start) / 1000);
+				CarrierPlan newPlan = MatsimJspritFactory.createPlan(carrier, solution);
+				// yy In principle, the carrier should know the vehicle types that it can deploy.
 
-			CarrierPlan newPlan = MatsimJspritFactory.createPlan(carrier, solution);
-			// yy In principle, the carrier should know the vehicle types that it can deploy.
+				log.info("routing plan for carrier {}", carrier.getId());
+				NetworkRouter.routePlan(newPlan, netBasedCosts);
+				solvedVRPCounter.incrementAndGet();
+				log.info("routing for carrier {} finished. Tour planning plus routing took {} seconds.", carrier.getId(),
+					(System.currentTimeMillis() - start) / 1000);
+				log.info("solved {} out of {} carriers.", solvedVRPCounter.get(), carriers.getCarriers().size());
 
-			log.info("routing plan for carrier {}", carrier.getId());
-			NetworkRouter.routePlan(newPlan, netBasedCosts);
-			solvedVRPCounter.incrementAndGet();
-			log.info("routing for carrier {} finished. Tour planning plus routing took {} seconds.", carrier.getId(),
-				(System.currentTimeMillis() - start) / 1000);
-			log.info("solved {} out of {} carriers.", solvedVRPCounter.get(), carriers.getCarriers().size());
+				carrier.setSelectedPlan(newPlan);
+			})).get();
+		}
+	}
 
-			carrier.setSelectedPlan(newPlan);
-		})).get();
+	// split tempList in nThreads parts such that it is split to 1,2,...,n,1,2,..
+	private static List<List<Id<Carrier>>> splitListAlternating(int nThreads, ArrayList<Id<Carrier>> tempList) {
+		List<List<Id<Carrier>>> splitList = new ArrayList<>();
+		for (int i = 0; i < nThreads; i++) {
+			List<Id<Carrier>> subList = new ArrayList<>();
+			for (int j = i; j < tempList.size(); j += nThreads) {
+				subList.add(tempList.get(j));
+			}
+			splitList.add(subList);
+		}
 
+		assert splitList.size() == nThreads;
+		assert splitList.stream().mapToInt(List::size).sum() == tempList.size();
+		return splitList;
 	}
 
 	/**

From 3e9630da3e5c19db897d7027bdb58d6e5bbd1bfa Mon Sep 17 00:00:00 2001
From: Ricardo Ewert <ewert@vsp.tu-berlin.de>
Date: Tue, 23 Apr 2024 15:51:04 +0200
Subject: [PATCH 15/24] add carrier attribute jsprit computation time

---
 .../matsim/freight/carriers/CarriersUtils.java  | 17 ++++++++++++++++-
 .../freight/carriers/CarriersUtilsTest.java     | 10 ++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
index 755be732e4d..b8d31bf47a3 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
@@ -64,6 +64,7 @@ public class CarriersUtils {
 
 	private static final String ATTR_SKILLS = "skills";
 	private static final String ATTR_JSPRIT_SCORE = "jspritScore";
+	private static final String ATTR_JSPRIT_Time = "jspritComputationTime";
 
 	public static Carrier createCarrier( Id<Carrier> id ){
 		return new CarrierImpl(id);
@@ -243,11 +244,13 @@ else if (!carrier.getShipments().isEmpty())
 			log.info("routing plan for carrier {}", carrier.getId());
 			NetworkRouter.routePlan(newPlan, netBasedCosts);
 			solvedVRPCounter.incrementAndGet();
+			double timeForPlanningAndRouting = (System.currentTimeMillis() - start) / 1000;
 			log.info("routing for carrier {} finished. Tour planning plus routing took {} seconds.", carrier.getId(),
-				(System.currentTimeMillis() - start) / 1000);
+				timeForPlanningAndRouting);
 			log.info("solved {} out of {} carriers.", solvedVRPCounter.get(), carriers.getCarriers().size());
 
 			carrier.setSelectedPlan(newPlan);
+			setJspritComputationTime(carrier, timeForPlanningAndRouting);
 		})).get();
 
 	}
@@ -617,6 +620,18 @@ public static Double getJspritScore (CarrierPlan plan) {
 		return (Double) plan.getAttributes().getAttribute(ATTR_JSPRIT_SCORE);
 	}
 
+	public static double getJspritComputationTime(Carrier carrier){
+		try {
+			return (double) carrier.getAttributes().getAttribute(ATTR_JSPRIT_Time);
+		} catch (Exception e) {
+			log.error("Requested attribute jspritComputationTime does not exists. Will return " + Integer.MIN_VALUE);
+			return Integer.MIN_VALUE;
+		}
+	}
+	public static void setJspritComputationTime(Carrier carrier, double time){
+		carrier.getAttributes().putAttribute(ATTR_JSPRIT_Time, time);
+	}
+
 	public static void writeCarriers(Carriers carriers, String filename ) {
 		new CarrierPlanWriter( carriers ).write( filename );
 	}
diff --git a/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java b/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
index dbdcacf6eac..04772ee65a2 100644
--- a/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
+++ b/contribs/freight/src/test/java/org/matsim/freight/carriers/CarriersUtilsTest.java
@@ -116,4 +116,14 @@ void testGetSetJspritIteration(){
 		Assertions.assertEquals(125, CarriersUtils.getJspritIterations(carrier) );
 	}
 
+	@Test
+	void testGetSetJspritComputationTime(){
+		Carrier carrier = new CarrierImpl(Id.create("carrier", Carrier.class));
+		//Computation time is not set. should return Integer.Min_Value (null is not possible because returning (int)
+		Assertions.assertEquals(Integer.MIN_VALUE, CarriersUtils.getJspritComputationTime(carrier) );
+
+		CarriersUtils.setJspritComputationTime(carrier, 125);
+		Assertions.assertEquals(125, CarriersUtils.getJspritComputationTime(carrier) );
+	}
+
 }

From 2b51b67b65ea6d9da9c79082c00d59399bd1ccfe Mon Sep 17 00:00:00 2001
From: Ricardo Ewert <ewert@vsp.tu-berlin.de>
Date: Tue, 23 Apr 2024 15:52:12 +0200
Subject: [PATCH 16/24] add jsprit computation time to carrier analyse file

---
 .../matsim/freight/carriers/analysis/CarrierPlanAnalysis.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
index e8f0439af85..69a8abd3f23 100644
--- a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
+++ b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
@@ -26,6 +26,7 @@
 import org.matsim.api.core.v01.Id;
 import org.matsim.freight.carriers.Carrier;
 import org.matsim.freight.carriers.Carriers;
+import org.matsim.freight.carriers.CarriersUtils;
 
 import java.io.BufferedWriter;
 import java.io.FileWriter;
@@ -61,7 +62,7 @@ public void runAnalysisAndWriteStats(String analysisOutputDirectory) throws IOEx
 		BufferedWriter bw1 = new BufferedWriter(new FileWriter(fileName));
 
 		//Write headline:
-		bw1.write("carrierId \t MATSimScoreSelectedPlan \t jSpritScoreSelectedPlan \t nuOfTours \t nuOfShipments(input) \t nuOfServices(input) ");
+		bw1.write("carrierId \t MATSimScoreSelectedPlan \t jSpritScoreSelectedPlan \t nuOfTours \t nuOfShipments(input) \t nuOfServices(input) \t jspritComputationTime");
 		bw1.newLine();
 
 		final TreeMap<Id<Carrier>, Carrier> sortedCarrierMap = new TreeMap<>(carriers.getCarriers());
@@ -73,6 +74,7 @@ public void runAnalysisAndWriteStats(String analysisOutputDirectory) throws IOEx
 			bw1.write("\t" + carrier.getSelectedPlan().getScheduledTours().size());
 			bw1.write("\t" + carrier.getShipments().size());
 			bw1.write("\t" + carrier.getServices().size());
+			bw1.write("\t" + CarriersUtils.getJspritComputationTime(carrier));
 			bw1.newLine();
 		}
 

From a235ed6ee09883c29a00883976f8a54a23bbee50 Mon Sep 17 00:00:00 2001
From: Ricardo Ewert <ewert@vsp.tu-berlin.de>
Date: Tue, 23 Apr 2024 16:25:55 +0200
Subject: [PATCH 17/24] fix test

---
 .../runFreightAnalysisEventBasedTest/Carrier_stats.tsv        | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv b/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
index 21421192918..2f2fd5cc252 100644
--- a/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
+++ b/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
@@ -1,2 +1,2 @@
-carrierId 	 MATSimScoreSelectedPlan 	 jSpritScoreSelectedPlan 	 nuOfTours 	 nuOfShipments(input) 	 nuOfServices(input) 
-carrier1	-263.4	null	2	0	7
+carrierId 	 MATSimScoreSelectedPlan 	 jSpritScoreSelectedPlan 	 nuOfTours 	 nuOfShipments(input) 	 nuOfServices(input) 	 jspritComputationTime[HH:mm:ss]
+carrier1	-263.4	null	2	0	7	-2.147483648E9

From c7f916229fa8bd19778147669504b0a8cb1b0747 Mon Sep 17 00:00:00 2001
From: Ricardo Ewert <ewert@vsp.tu-berlin.de>
Date: Tue, 23 Apr 2024 16:26:23 +0200
Subject: [PATCH 18/24] add time output

---
 .../freight/carriers/analysis/CarrierPlanAnalysis.java   | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
index 69a8abd3f23..ed157b48063 100644
--- a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
+++ b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
@@ -24,6 +24,7 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.matsim.api.core.v01.Id;
+import org.matsim.core.utils.misc.Time;
 import org.matsim.freight.carriers.Carrier;
 import org.matsim.freight.carriers.Carriers;
 import org.matsim.freight.carriers.CarriersUtils;
@@ -62,7 +63,7 @@ public void runAnalysisAndWriteStats(String analysisOutputDirectory) throws IOEx
 		BufferedWriter bw1 = new BufferedWriter(new FileWriter(fileName));
 
 		//Write headline:
-		bw1.write("carrierId \t MATSimScoreSelectedPlan \t jSpritScoreSelectedPlan \t nuOfTours \t nuOfShipments(input) \t nuOfServices(input) \t jspritComputationTime");
+		bw1.write("carrierId \t MATSimScoreSelectedPlan \t jSpritScoreSelectedPlan \t nuOfTours \t nuOfShipments(input) \t nuOfServices(input) \t jspritComputationTime[HH:mm:ss]");
 		bw1.newLine();
 
 		final TreeMap<Id<Carrier>, Carrier> sortedCarrierMap = new TreeMap<>(carriers.getCarriers());
@@ -74,7 +75,11 @@ public void runAnalysisAndWriteStats(String analysisOutputDirectory) throws IOEx
 			bw1.write("\t" + carrier.getSelectedPlan().getScheduledTours().size());
 			bw1.write("\t" + carrier.getShipments().size());
 			bw1.write("\t" + carrier.getServices().size());
-			bw1.write("\t" + CarriersUtils.getJspritComputationTime(carrier));
+			if (CarriersUtils.getJspritComputationTime(carrier) != Integer.MIN_VALUE)
+				bw1.write("\t" + Time.writeTime(CarriersUtils.getJspritComputationTime(carrier), Time.TIMEFORMAT_HHMMSS));
+			else
+				bw1.write("\t" + CarriersUtils.getJspritComputationTime(carrier));
+
 			bw1.newLine();
 		}
 

From 8e0666095a054ff8680a6ddb3eda0ad3bcfc0fa5 Mon Sep 17 00:00:00 2001
From: Ricardo Ewert <ewert@vsp.tu-berlin.de>
Date: Tue, 23 Apr 2024 16:43:36 +0200
Subject: [PATCH 19/24] change defaultValue to null

---
 .../matsim/freight/carriers/analysis/CarrierPlanAnalysis.java   | 2 +-
 .../runFreightAnalysisEventBasedTest/Carrier_stats.tsv          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
index ed157b48063..4b57935373a 100644
--- a/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
+++ b/contribs/vsp/src/main/java/org/matsim/freight/carriers/analysis/CarrierPlanAnalysis.java
@@ -78,7 +78,7 @@ public void runAnalysisAndWriteStats(String analysisOutputDirectory) throws IOEx
 			if (CarriersUtils.getJspritComputationTime(carrier) != Integer.MIN_VALUE)
 				bw1.write("\t" + Time.writeTime(CarriersUtils.getJspritComputationTime(carrier), Time.TIMEFORMAT_HHMMSS));
 			else
-				bw1.write("\t" + CarriersUtils.getJspritComputationTime(carrier));
+				bw1.write("\t" + "null");
 
 			bw1.newLine();
 		}
diff --git a/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv b/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
index 2f2fd5cc252..d9ee80ea968 100644
--- a/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
+++ b/contribs/vsp/test/input/org/matsim/freight/carriers/analysis/FreightAnalysisEventBasedTest/runFreightAnalysisEventBasedTest/Carrier_stats.tsv
@@ -1,2 +1,2 @@
 carrierId 	 MATSimScoreSelectedPlan 	 jSpritScoreSelectedPlan 	 nuOfTours 	 nuOfShipments(input) 	 nuOfServices(input) 	 jspritComputationTime[HH:mm:ss]
-carrier1	-263.4	null	2	0	7	-2.147483648E9
+carrier1	-263.4	null	2	0	7	null

From 43512065608d18b71e7cb57066570f57048e354a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 24 Apr 2024 14:32:26 +0000
Subject: [PATCH 20/24] build(deps-dev): bump net.bytebuddy:byte-buddy from
 1.14.13 to 1.14.14

Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.13 to 1.14.14.
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.13...byte-buddy-1.14.14)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index c04827fbee1..9672c87de90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -353,7 +353,7 @@
 			<dependency>
 				<groupId>net.bytebuddy</groupId>
 				<artifactId>byte-buddy</artifactId>
-				<version>1.14.13</version>
+				<version>1.14.14</version>
 				<scope>test</scope>
 			</dependency>
 

From 3ba0938ba252ffa72ab23ac23252eeb25fdc44f2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 25 Apr 2024 04:47:36 +0000
Subject: [PATCH 21/24] build(deps): bump com.github.luben:zstd-jni from
 1.5.6-2 to 1.5.6-3

Bumps [com.github.luben:zstd-jni](https://github.com/luben/zstd-jni) from 1.5.6-2 to 1.5.6-3.
- [Commits](https://github.com/luben/zstd-jni/compare/v1.5.6-2...v1.5.6-3)

---
updated-dependencies:
- dependency-name: com.github.luben:zstd-jni
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 matsim/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/matsim/pom.xml b/matsim/pom.xml
index 7c6e35b479a..6d26c4064b4 100644
--- a/matsim/pom.xml
+++ b/matsim/pom.xml
@@ -222,7 +222,7 @@
 		<dependency>
 			<groupId>com.github.luben</groupId>
 			<artifactId>zstd-jni</artifactId>
-			<version>1.5.6-2</version>
+			<version>1.5.6-3</version>
 		</dependency>
 		<dependency>
 			<groupId>jakarta.validation</groupId>

From 253fb4704e6d055858385079cae6690be6f3a2e3 Mon Sep 17 00:00:00 2001
From: Paul Heinrich <pheinrich11235@gmail.com>
Date: Thu, 25 Apr 2024 11:08:24 +0200
Subject: [PATCH 22/24] add more logging to parallel jsprit execution

---
 .../main/java/org/matsim/freight/carriers/CarriersUtils.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
index afe9493df7b..1610613eb85 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
@@ -209,6 +209,8 @@ public static void runJsprit(Scenario scenario) throws ExecutionException, Inter
 
 		int nThreads = Runtime.getRuntime().availableProcessors();
 		ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
+		log.info("Starting VRP solving for {} carriers in parallel with {} threads.", carriers.getCarriers().size(), nThreads);
+
 		List<List<Id<Carrier>>> splitList = splitListAlternating(nThreads, tempList);
 		for (List<Id<Carrier>> subList : splitList) {
 			executorService.submit(() -> subList.forEach(carrierId -> {
@@ -221,7 +223,7 @@ else if (!carrier.getShipments().isEmpty())
 					log.info("Start tour planning for {} which has {} shipments", carrier.getId(), carrier.getShipments().size());
 
 				startedVRPCounter.incrementAndGet();
-				log.info("started VRP solving for carrier number {} out of {} carriers.", startedVRPCounter.get(), carriers.getCarriers().size());
+				log.info("started VRP solving for carrier number {} out of {} carriers. Current thread id: {}", startedVRPCounter.get(), carriers.getCarriers().size(), Thread.currentThread().getId());
 
 				VehicleRoutingProblem problem = MatsimJspritFactory.createRoutingProblemBuilder(carrier, scenario.getNetwork()).setRoutingCost(netBasedCosts).build();
 				VehicleRoutingAlgorithm algorithm = MatsimJspritFactory.loadOrCreateVehicleRoutingAlgorithm(scenario, freightCarriersConfigGroup, netBasedCosts, problem);

From e91f5a7c1f1032764e7222384b50a6baf881d6b3 Mon Sep 17 00:00:00 2001
From: Paul Heinrich <pheinrich11235@gmail.com>
Date: Thu, 25 Apr 2024 11:13:14 +0200
Subject: [PATCH 23/24] add more logging to parallel jsprit execution

---
 .../src/main/java/org/matsim/freight/carriers/CarriersUtils.java | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
index 1610613eb85..0b5cac1a700 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
@@ -212,6 +212,7 @@ public static void runJsprit(Scenario scenario) throws ExecutionException, Inter
 		log.info("Starting VRP solving for {} carriers in parallel with {} threads.", carriers.getCarriers().size(), nThreads);
 
 		List<List<Id<Carrier>>> splitList = splitListAlternating(nThreads, tempList);
+		log.info("Distribution of carriers on threads: {}", splitList.stream().map(List::size).toList());
 		for (List<Id<Carrier>> subList : splitList) {
 			executorService.submit(() -> subList.forEach(carrierId -> {
 				Carrier carrier = carriers.getCarriers().get(carrierId);

From 19d9c0e4b4132eb15c8796c107e79934aa2985e3 Mon Sep 17 00:00:00 2001
From: Paul Heinrich <pheinrich11235@gmail.com>
Date: Thu, 25 Apr 2024 11:26:30 +0200
Subject: [PATCH 24/24] fix parallel execution

---
 .../freight/carriers/CarriersUtils.java       | 28 +++++++++++--------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
index 0b5cac1a700..d6d182c9a7c 100644
--- a/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
+++ b/contribs/freight/src/main/java/org/matsim/freight/carriers/CarriersUtils.java
@@ -45,10 +45,7 @@
 
 import javax.management.InvalidAttributeValueException;
 import java.util.*;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
@@ -213,8 +210,9 @@ public static void runJsprit(Scenario scenario) throws ExecutionException, Inter
 
 		List<List<Id<Carrier>>> splitList = splitListAlternating(nThreads, tempList);
 		log.info("Distribution of carriers on threads: {}", splitList.stream().map(List::size).toList());
+		List<Future<?>> futureList = new ArrayList<>();
 		for (List<Id<Carrier>> subList : splitList) {
-			executorService.submit(() -> subList.forEach(carrierId -> {
+			futureList.add(executorService.submit(() -> subList.forEach(carrierId -> {
 				Carrier carrier = carriers.getCarriers().get(carrierId);
 
 				double start = System.currentTimeMillis();
@@ -224,9 +222,12 @@ else if (!carrier.getShipments().isEmpty())
 					log.info("Start tour planning for {} which has {} shipments", carrier.getId(), carrier.getShipments().size());
 
 				startedVRPCounter.incrementAndGet();
-				log.info("started VRP solving for carrier number {} out of {} carriers. Current thread id: {}", startedVRPCounter.get(), carriers.getCarriers().size(), Thread.currentThread().getId());
+				log.info("started VRP solving for carrier number {} out of {} carriers. Current thread id: {}", startedVRPCounter.get(), carriers.getCarriers()
+																																				 .size(), Thread.currentThread()
+																																								.getId());
 
-				VehicleRoutingProblem problem = MatsimJspritFactory.createRoutingProblemBuilder(carrier, scenario.getNetwork()).setRoutingCost(netBasedCosts).build();
+				VehicleRoutingProblem problem = MatsimJspritFactory.createRoutingProblemBuilder(carrier, scenario.getNetwork())
+																   .setRoutingCost(netBasedCosts).build();
 				VehicleRoutingAlgorithm algorithm = MatsimJspritFactory.loadOrCreateVehicleRoutingAlgorithm(scenario, freightCarriersConfigGroup, netBasedCosts, problem);
 
 				algorithm.getAlgorithmListeners().addListener(new StopWatch(), VehicleRoutingAlgorithmListeners.Priority.HIGH);
@@ -236,11 +237,12 @@ else if (!carrier.getShipments().isEmpty())
 						algorithm.setMaxIterations(jspritIterations);
 					} else {
 						throw new InvalidAttributeValueException(
-								"Carrier has invalid number of jsprit iterations. They must be positive! Carrier id: "
-										+ carrier.getId().toString());}
+							"Carrier has invalid number of jsprit iterations. They must be positive! Carrier id: "
+								+ carrier.getId().toString());
+					}
 				} catch (Exception e) {
 					throw new RuntimeException(e);
-	//				e.printStackTrace();
+					//				e.printStackTrace();
 				}
 
 				VehicleRoutingProblemSolution solution = Solutions.bestOf(algorithm.searchSolutions());
@@ -260,7 +262,11 @@ else if (!carrier.getShipments().isEmpty())
 
 				carrier.setSelectedPlan(newPlan);
 				setJspritComputationTime(carrier, timeForPlanningAndRouting);
-			})).get();
+			})));
+		}
+
+		for (Future<?> future : futureList) {
+			future.get();
 		}
 	}