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