diff --git a/input/v6.2/berlin-v6.2.drt-config.xml b/input/v6.2/berlin-v6.2.drt-config.xml
new file mode 100644
index 00000000..80a9c4fe
--- /dev/null
+++ b/input/v6.2/berlin-v6.2.drt-config.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 055f2e08..b7a914a4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,10 +6,10 @@
matsim-all
- 2025.0-PR3257
+
-
+ 2025.0-SNAPSHOT
4.0.0
@@ -128,7 +128,7 @@
com.github.matsim-org
gtfs2matsim
- master-33809c4f0f-1
+ fc8b13954d
org.matsim
diff --git a/src/main/java/org/matsim/legacy/prepare/population/CreateFreightAgents.java b/src/main/java/org/matsim/legacy/prepare/population/CreateFreightAgents.java
index f022399e..48a9ba3a 100644
--- a/src/main/java/org/matsim/legacy/prepare/population/CreateFreightAgents.java
+++ b/src/main/java/org/matsim/legacy/prepare/population/CreateFreightAgents.java
@@ -27,8 +27,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.geotools.api.data.SimpleFeatureSource;
import org.geotools.data.simple.SimpleFeatureIterator;
-import org.geotools.data.simple.SimpleFeatureSource;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import org.matsim.api.core.v01.Id;
@@ -46,7 +46,7 @@
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.core.utils.gis.ShapeFileReader;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
/**
*
diff --git a/src/main/java/org/matsim/legacy/prepare/population/WriteHomeAreaToPersonAttributesFile.java b/src/main/java/org/matsim/legacy/prepare/population/WriteHomeAreaToPersonAttributesFile.java
index dd9b383c..96dce223 100644
--- a/src/main/java/org/matsim/legacy/prepare/population/WriteHomeAreaToPersonAttributesFile.java
+++ b/src/main/java/org/matsim/legacy/prepare/population/WriteHomeAreaToPersonAttributesFile.java
@@ -37,7 +37,7 @@
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.core.utils.gis.ShapeFileReader;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
/**
* @author ikaddoura
diff --git a/src/main/java/org/matsim/legacy/run/drt/BerlinShpUtils.java b/src/main/java/org/matsim/legacy/run/drt/BerlinShpUtils.java
index eee1c92a..7aa2e950 100644
--- a/src/main/java/org/matsim/legacy/run/drt/BerlinShpUtils.java
+++ b/src/main/java/org/matsim/legacy/run/drt/BerlinShpUtils.java
@@ -30,21 +30,23 @@
import java.util.Map;
import java.util.Random;
-import org.geotools.data.FileDataStore;
-import org.geotools.data.FileDataStoreFinder;
+
+import org.geotools.api.data.FileDataStore;
+import org.geotools.api.data.FileDataStoreFinder;
+import org.geotools.api.data.SimpleFeatureSource;
+import org.geotools.api.feature.simple.SimpleFeature;
import org.geotools.data.simple.SimpleFeatureIterator;
-import org.geotools.data.simple.SimpleFeatureSource;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import org.matsim.api.core.v01.Coord;
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.core.utils.gis.ShapeFileReader;
-import org.opengis.feature.simple.SimpleFeature;
/**
* @author ikaddoura
+ * @deprecated Since class has not been tested since geotools API changes.
*/
-
+@Deprecated
public final class BerlinShpUtils {
private Map serviceAreaGeometries;
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 b20aabbf..c98b0451 100644
--- a/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java
+++ b/src/main/java/org/matsim/legacy/run/wasteCollection/AbfallUtils.java
@@ -41,7 +41,7 @@
import org.matsim.freight.carriers.jsprit.NetworkBasedTransportCosts;
import org.matsim.freight.carriers.jsprit.NetworkRouter;
import org.matsim.vehicles.VehicleType;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
diff --git a/src/main/java/org/matsim/legacy/run/wasteCollection/Run_Abfall.java b/src/main/java/org/matsim/legacy/run/wasteCollection/Run_Abfall.java
index e5b06334..7f455707 100644
--- a/src/main/java/org/matsim/legacy/run/wasteCollection/Run_Abfall.java
+++ b/src/main/java/org/matsim/legacy/run/wasteCollection/Run_Abfall.java
@@ -17,7 +17,7 @@
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.core.utils.gis.ShapeFileReader;
import org.matsim.freight.carriers.*;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
/**
* @author Ricardo Ewert MA: Modellierung und Simulation der staedtischen
diff --git a/src/main/java/org/matsim/prepare/choices/PlanBuilder.java b/src/main/java/org/matsim/prepare/choices/PlanBuilder.java
index c4953e08..a7b18429 100644
--- a/src/main/java/org/matsim/prepare/choices/PlanBuilder.java
+++ b/src/main/java/org/matsim/prepare/choices/PlanBuilder.java
@@ -25,7 +25,7 @@
import org.matsim.vehicles.Vehicle;
import org.matsim.vehicles.VehicleType;
import org.matsim.vehicles.VehicleUtils;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import tech.tablesaw.api.Row;
import tech.tablesaw.api.Table;
diff --git a/src/main/java/org/matsim/prepare/counts/CreateCountsFromGeoPortalBerlin.java b/src/main/java/org/matsim/prepare/counts/CreateCountsFromGeoPortalBerlin.java
index 87708575..8a38b0a8 100644
--- a/src/main/java/org/matsim/prepare/counts/CreateCountsFromGeoPortalBerlin.java
+++ b/src/main/java/org/matsim/prepare/counts/CreateCountsFromGeoPortalBerlin.java
@@ -4,6 +4,9 @@
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.geotools.api.referencing.FactoryException;
+import org.geotools.api.referencing.operation.MathTransform;
+import org.geotools.api.referencing.operation.TransformException;
import org.geotools.geometry.jts.JTS;
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.geotools.referencing.CRS;
@@ -26,10 +29,7 @@
import org.matsim.core.network.filter.NetworkFilterManager;
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.run.OpenBerlinScenario;
-import org.opengis.feature.simple.SimpleFeature;
-import org.opengis.referencing.FactoryException;
-import org.opengis.referencing.operation.MathTransform;
-import org.opengis.referencing.operation.TransformException;
+import org.geotools.api.feature.simple.SimpleFeature;
import picocli.CommandLine;
import java.io.IOException;
diff --git a/src/main/java/org/matsim/prepare/counts/CreateCountsFromMonthlyVizData.java b/src/main/java/org/matsim/prepare/counts/CreateCountsFromMonthlyVizData.java
index 98f6e019..ad4a78b2 100644
--- a/src/main/java/org/matsim/prepare/counts/CreateCountsFromMonthlyVizData.java
+++ b/src/main/java/org/matsim/prepare/counts/CreateCountsFromMonthlyVizData.java
@@ -7,6 +7,7 @@
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.geotools.api.referencing.operation.TransformException;
import org.geotools.referencing.operation.transform.IdentityTransform;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
@@ -27,7 +28,6 @@
import org.matsim.counts.Count;
import org.matsim.counts.Counts;
import org.matsim.counts.CountsWriter;
-import org.opengis.referencing.operation.TransformException;
import picocli.CommandLine;
import tech.tablesaw.api.DateColumn;
import tech.tablesaw.api.DoubleColumn;
diff --git a/src/main/java/org/matsim/prepare/counts/CreateCountsFromVMZ.java b/src/main/java/org/matsim/prepare/counts/CreateCountsFromVMZ.java
index 91b4cca6..955af998 100644
--- a/src/main/java/org/matsim/prepare/counts/CreateCountsFromVMZ.java
+++ b/src/main/java/org/matsim/prepare/counts/CreateCountsFromVMZ.java
@@ -7,6 +7,7 @@
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.geotools.api.referencing.operation.TransformException;
import org.geotools.referencing.operation.transform.IdentityTransform;
import org.matsim.api.core.v01.Coord;
import org.matsim.api.core.v01.Id;
@@ -26,7 +27,6 @@
import org.matsim.counts.CountsWriter;
import org.matsim.counts.Measurable;
import org.matsim.counts.MeasurementLocation;
-import org.opengis.referencing.operation.TransformException;
import picocli.CommandLine;
import java.io.IOException;
diff --git a/src/main/java/org/matsim/prepare/facilities/CreateMATSimFacilities.java b/src/main/java/org/matsim/prepare/facilities/CreateMATSimFacilities.java
index 24dd1160..369a856c 100644
--- a/src/main/java/org/matsim/prepare/facilities/CreateMATSimFacilities.java
+++ b/src/main/java/org/matsim/prepare/facilities/CreateMATSimFacilities.java
@@ -23,7 +23,7 @@
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.facilities.*;
import org.matsim.prepare.population.Attributes;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import picocli.CommandLine;
import java.nio.file.Path;
diff --git a/src/main/java/org/matsim/prepare/facilities/ExtractFacilityGeoPkg.java b/src/main/java/org/matsim/prepare/facilities/ExtractFacilityGeoPkg.java
index 08a01802..4aebf286 100644
--- a/src/main/java/org/matsim/prepare/facilities/ExtractFacilityGeoPkg.java
+++ b/src/main/java/org/matsim/prepare/facilities/ExtractFacilityGeoPkg.java
@@ -20,12 +20,16 @@
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.geotools.data.DataStore;
-import org.geotools.data.DataStoreFinder;
+import org.geotools.api.data.DataStore;
+import org.geotools.api.data.DataStoreFinder;
+import org.geotools.api.data.SimpleFeatureStore;
+import org.geotools.api.data.Transaction;
+import org.geotools.api.feature.simple.SimpleFeature;
+import org.geotools.api.referencing.crs.CRSAuthorityFactory;
+import org.geotools.api.referencing.operation.MathTransform;
+import org.geotools.api.referencing.operation.TransformException;
import org.geotools.data.DefaultTransaction;
-import org.geotools.data.Transaction;
import org.geotools.data.collection.ListFeatureCollection;
-import org.geotools.data.simple.SimpleFeatureStore;
import org.geotools.geometry.jts.JTS;
import org.geotools.geopkg.GeoPkgDataStoreFactory;
import org.geotools.jdbc.JDBCDataStoreFactory;
@@ -36,10 +40,7 @@
import org.matsim.application.options.CrsOptions;
import org.matsim.core.utils.io.IOUtils;
import org.matsim.run.OpenBerlinScenario;
-import org.opengis.feature.simple.SimpleFeature;
-import org.opengis.referencing.crs.CRSAuthorityFactory;
-import org.opengis.referencing.operation.MathTransform;
-import org.opengis.referencing.operation.TransformException;
+import org.matsim.utils.gis.shp2matsim.ShpGeometryUtils;
import picocli.CommandLine;
import java.io.IOException;
diff --git a/src/main/java/org/matsim/prepare/facilities/FacilityFeatureExtractor.java b/src/main/java/org/matsim/prepare/facilities/FacilityFeatureExtractor.java
index f15192a3..b9598df7 100644
--- a/src/main/java/org/matsim/prepare/facilities/FacilityFeatureExtractor.java
+++ b/src/main/java/org/matsim/prepare/facilities/FacilityFeatureExtractor.java
@@ -2,6 +2,9 @@
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
+import org.geotools.api.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeatureType;
+import org.geotools.api.referencing.FactoryException;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.geotools.referencing.CRS;
@@ -9,9 +12,6 @@
import org.locationtech.jts.geom.MultiPolygon;
import org.locationtech.jts.geom.TopologyException;
import org.locationtech.jts.index.strtree.STRtree;
-import org.opengis.feature.simple.SimpleFeature;
-import org.opengis.feature.simple.SimpleFeatureType;
-import org.opengis.referencing.FactoryException;
import java.math.BigDecimal;
import java.math.RoundingMode;
diff --git a/src/main/java/org/matsim/prepare/population/CommuterAssignment.java b/src/main/java/org/matsim/prepare/population/CommuterAssignment.java
index e0db35e1..7120222b 100644
--- a/src/main/java/org/matsim/prepare/population/CommuterAssignment.java
+++ b/src/main/java/org/matsim/prepare/population/CommuterAssignment.java
@@ -10,7 +10,7 @@
import org.locationtech.jts.geom.Point;
import org.matsim.application.options.CsvOptions;
import org.matsim.facilities.ActivityFacility;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import java.io.IOException;
import java.io.UncheckedIOException;
diff --git a/src/main/java/org/matsim/prepare/population/CreateBerlinPopulation.java b/src/main/java/org/matsim/prepare/population/CreateBerlinPopulation.java
index c3dd4f86..37c6a9bb 100644
--- a/src/main/java/org/matsim/prepare/population/CreateBerlinPopulation.java
+++ b/src/main/java/org/matsim/prepare/population/CreateBerlinPopulation.java
@@ -6,6 +6,7 @@
import org.apache.commons.csv.CSVRecord;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.geotools.api.feature.simple.SimpleFeature;
import org.locationtech.jts.geom.Envelope;
import org.locationtech.jts.geom.MultiPolygon;
import org.matsim.api.core.v01.Coord;
@@ -25,7 +26,6 @@
import org.matsim.core.utils.geometry.transformations.GeotoolsTransformation;
import org.matsim.prepare.RunOpenBerlinCalibration;
import org.matsim.run.OpenBerlinScenario;
-import org.opengis.feature.simple.SimpleFeature;
import picocli.CommandLine;
import java.nio.charset.Charset;
diff --git a/src/main/java/org/matsim/prepare/population/CreateBrandenburgPopulation.java b/src/main/java/org/matsim/prepare/population/CreateBrandenburgPopulation.java
index 9fad4c3e..e8b63afc 100644
--- a/src/main/java/org/matsim/prepare/population/CreateBrandenburgPopulation.java
+++ b/src/main/java/org/matsim/prepare/population/CreateBrandenburgPopulation.java
@@ -22,7 +22,7 @@
import org.matsim.core.population.PopulationUtils;
import org.matsim.core.scenario.ProjectionUtils;
import org.matsim.run.OpenBerlinScenario;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import picocli.CommandLine;
import java.nio.file.Path;
diff --git a/src/main/java/org/matsim/prepare/population/InitLocationChoice.java b/src/main/java/org/matsim/prepare/population/InitLocationChoice.java
index 156a3e2f..2f4b2bb5 100644
--- a/src/main/java/org/matsim/prepare/population/InitLocationChoice.java
+++ b/src/main/java/org/matsim/prepare/population/InitLocationChoice.java
@@ -28,7 +28,7 @@
import org.matsim.facilities.ActivityFacility;
import org.matsim.prepare.RunOpenBerlinCalibration;
import org.matsim.prepare.facilities.AttributedActivityFacility;
-import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.api.feature.simple.SimpleFeature;
import picocli.CommandLine;
import java.math.BigInteger;