diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8871b6e1..a194f705 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,16 +2,27 @@
All notable changes to this project will be documented in this file.
-### 6.4 (WIP)
+### 6.4 (2024-12)
- Improved facility locations
- OSM tag filtering has been improved to reduce number of wrongly assigned facility types
- Update work location assignment within Berlin
- Work locations now use weighted sampling during location choice
- The weight is based on an attraction factor and zone specific probabilities determined from survey data
-- Update GTFS schedule
- - TODO
-- New dashboard
- - PT Transit viewer
+- Updated GTFS schedule
+ - The schedule is now based on the 2024-11-19
+ - Note that there are major changes how stops and links between them are created
+ - Stops having the same gtfs parent_id and route types are merged together, allowing agents to find better PT connections
+ - The PT network is created with loop links (on each PT stop) instead of duplicating stops, which also improves connections
+- Bike mode updated and recalibrated
+ - Bike is now routed on the network, which provides better travel times
+ - Bikes are not simulated on the network, and no link events generated yet. This will likely be added in future versions.
+ - The road network includes bike infrastructure and corresponding attributes
+ - The bike infrastructure is not fully complete yet, and has to be carefully evaluated first for bike centric studies
+ - The avg. bike speed has been set to match Srv2018 survey data
+- New dashboards
+ - PT Transit viewer
+ - Emissions
+ - Noise
### 6.3 (2024-07)
- Include additional trip analysis and updated dashboard
diff --git a/Makefile b/Makefile
index 6fc7a2f4..dcef008e 100644
--- a/Makefile
+++ b/Makefile
@@ -127,6 +127,8 @@ $p/berlin-$V-network-with-pt.xml.gz: $p/berlin-$V-network.xml.gz
--transform-stops org.matsim.prepare.pt.CorrectStopLocations\
--transform-routes org.matsim.prepare.pt.CorrectRouteTypes\
--transform-schedule org.matsim.application.prepare.pt.AdjustSameDepartureTimes\
+ --pseudo-network withLoopLinks\
+ --merge-stops mergeToParentAndRouteTypes\
--shp $p/pt-area/pt-area.shp
$p/berlin-$V-counts-vmz.xml.gz: $p/berlin-$V-network.xml.gz
diff --git a/input/v6.4/berlin-v6.4-vehicleTypes.xml b/input/v6.4/berlin-v6.4-vehicleTypes.xml
index 8f10e7c2..6d727fd9 100644
--- a/input/v6.4/berlin-v6.4-vehicleTypes.xml
+++ b/input/v6.4/berlin-v6.4-vehicleTypes.xml
@@ -26,7 +26,7 @@
-
+
diff --git a/pom.xml b/pom.xml
index cf5bbad9..1ef396ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
matsim-all
- 2025.0-PR3552
+ 2025.0-PR3628
@@ -128,7 +128,7 @@
com.github.matsim-org
gtfs2matsim
- 47b0802a29
+ 19f1676fc6
org.matsim
diff --git a/src/main/java/org/matsim/legacy/prepare/transit/schedule/RunGTFS2MATSimOpenBerlin.java b/src/main/java/org/matsim/legacy/prepare/transit/schedule/RunGTFS2MATSimOpenBerlin.java
index 6234a9ac..685fddfe 100644
--- a/src/main/java/org/matsim/legacy/prepare/transit/schedule/RunGTFS2MATSimOpenBerlin.java
+++ b/src/main/java/org/matsim/legacy/prepare/transit/schedule/RunGTFS2MATSimOpenBerlin.java
@@ -22,10 +22,7 @@
*/
package org.matsim.legacy.prepare.transit.schedule;
-import java.io.File;
-import java.time.LocalDate;
-import java.util.List;
-
+import ch.sbb.matsim.routing.pt.raptor.SwissRailRaptorModule;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.matsim.api.core.v01.Id;
@@ -33,6 +30,7 @@
import org.matsim.api.core.v01.network.Link;
import org.matsim.api.core.v01.network.Network;
import org.matsim.api.core.v01.network.Node;
+import org.matsim.contrib.gtfs.GtfsConverter;
import org.matsim.contrib.gtfs.RunGTFS2MATSim;
import org.matsim.contrib.gtfs.TransitSchedulePostProcessTools;
import org.matsim.core.config.Config;
@@ -48,27 +46,19 @@
import org.matsim.core.network.io.NetworkWriter;
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.core.utils.geometry.CoordinateTransformation;
+import org.matsim.core.utils.geometry.transformations.IdentityTransformation;
import org.matsim.core.utils.geometry.transformations.TransformationFactory;
import org.matsim.legacy.prepare.transit.schedule.CheckPtDelays.DelayRecord;
-import org.matsim.pt.transitSchedule.api.Departure;
-import org.matsim.pt.transitSchedule.api.TransitLine;
-import org.matsim.pt.transitSchedule.api.TransitRoute;
-import org.matsim.pt.transitSchedule.api.TransitRouteStop;
-import org.matsim.pt.transitSchedule.api.TransitSchedule;
-import org.matsim.pt.transitSchedule.api.TransitScheduleReader;
-import org.matsim.pt.transitSchedule.api.TransitScheduleWriter;
+import org.matsim.pt.transitSchedule.api.*;
import org.matsim.pt.utils.CreatePseudoNetwork;
import org.matsim.pt.utils.TransitScheduleValidator;
import org.matsim.pt.utils.TransitScheduleValidator.ValidationResult;
-import org.matsim.vehicles.Vehicle;
-import org.matsim.vehicles.VehicleCapacity;
-import org.matsim.vehicles.VehicleType;
-import org.matsim.vehicles.MatsimVehicleWriter;
-import org.matsim.vehicles.VehiclesFactory;
+import org.matsim.vehicles.*;
import org.matsim.vehicles.VehicleType.DoorOperationMode;
-import org.matsim.vehicles.VehicleUtils;
-import ch.sbb.matsim.routing.pt.raptor.SwissRailRaptorModule;
+import java.io.File;
+import java.time.LocalDate;
+import java.util.List;
/**
* @author vsp-gleich
@@ -80,7 +70,7 @@
* TODO: Theoretically we would have to increase the boarding/alighting time and reduce the capacity of the transit vehicle types
* according to the sample size.
*/
-
+@Deprecated
public class RunGTFS2MATSimOpenBerlin {
private static final Logger log = LogManager.getLogger(RunGTFS2MATSimOpenBerlin.class);
@@ -113,7 +103,8 @@ public static void main(String[] args) {
}
//Convert GTFS
- RunGTFS2MATSim.convertGtfs(gtfsZipFile, scheduleFile, date, ct, false);
+ RunGTFS2MATSim.convertGtfs(gtfsZipFile, scheduleFile, date, date, new IdentityTransformation(),
+ false, GtfsConverter.MergeGtfsStops.doNotMerge);
//Parse the schedule again
Scenario scenario = ScenarioUtils.createScenario(ConfigUtils.createConfig());
diff --git a/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallChessboardUtils.java b/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallChessboardUtils.java
index c17636a1..e15ecb00 100644
--- a/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallChessboardUtils.java
+++ b/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallChessboardUtils.java
@@ -112,6 +112,6 @@ private static void defineCarriersChessboard(Carriers carriers, CarrierVehicle v
carrierChessboard.setCarrierCapabilities(carrierCapabilities);
// Fahrzeugtypen den Anbietern zuordenen
- new CarrierVehicleTypeLoader(carriers).loadVehicleTypes(carrierVehicleTypes);
+// new CarrierVehicleTypeLoader(carriers).loadVehicleTypes(carrierVehicleTypes);
}
}
diff --git a/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java b/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java
index c98b0451..0676d95c 100644
--- a/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java
+++ b/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java
@@ -36,7 +36,6 @@
import org.matsim.core.utils.geometry.transformations.TransformationFactory;
import org.matsim.freight.carriers.*;
import org.matsim.freight.carriers.Tour.TourElement;
-import org.matsim.freight.carriers.controler.CarrierModule;
import org.matsim.freight.carriers.jsprit.MatsimJspritFactory;
import org.matsim.freight.carriers.jsprit.NetworkBasedTransportCosts;
import org.matsim.freight.carriers.jsprit.NetworkRouter;
@@ -604,8 +603,8 @@ static void solveWithJsprit(Scenario scenario, Carriers carriers, HashMap