Skip to content

Commit

Permalink
Update MATSim CW20 (#97)
Browse files Browse the repository at this point in the history
* combined distribution of tour start and duration

* add routing test with multiple same options

* build(deps): bump info.picocli:picocli from 4.7.5 to 4.7.6

Bumps [info.picocli:picocli](https://github.com/remkop/picocli) from 4.7.5 to 4.7.6.
- [Release notes](https://github.com/remkop/picocli/releases)
- [Changelog](https://github.com/remkop/picocli/blob/main/RELEASE-NOTES.md)
- [Commits](remkop/picocli@v4.7.5...v4.7.6)

---
updated-dependencies:
- dependency-name: info.picocli:picocli
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* build(deps-dev): bump net.bytebuddy:byte-buddy from 1.14.14 to 1.14.15

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

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

Signed-off-by: dependabot[bot] <[email protected]>

* add javadoc comment to constructor of OTFVisLiveModule

* factor out drt optimization constraint params from drt config group  (matsim-org#3252)

* factor out drt optimization constraint params from drt config group as preparatory work for service differentiation
* ensure backwards compatibility with previous drt config design

* add python script to analysis kid data

* add new events for new times distribution

* add todo

* change format of list creation

* make output files of the class configurable

* add trip filter for trip start OR end in shp area (matsim-org#3269)

* read first 5 lines of csv to check delimiter (matsim-org#3271)

* inline abstract module attributes and get rid of them

* Allow for storing multiple DrtOptimizationConstraintsParams

* recognize EPSG:4326 as equal to WGS84 when using special coordinate transformations (matsim-org#3276)

* Add test

* update to geotools 31 (resolve transitive dependency conflicts) (matsim-org#3272)

* update to geotools 31

* update geotools import statements

* remove gt-opengis as it is discontinued

* build(deps): bump io.grpc:grpc-all from 1.63.0 to 1.64.0

Bumps [io.grpc:grpc-all](https://github.com/grpc/grpc-java) from 1.63.0 to 1.64.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](grpc/grpc-java@v1.63.0...v1.64.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-all
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* build(deps): bump org.mockito:mockito-core from 5.11.0 to 5.12.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.11.0 to 5.12.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.11.0...v5.12.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* build(deps): bump org.mockito:mockito-junit-jupiter

Bumps [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) from 5.11.0 to 5.12.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](mockito/mockito@v5.11.0...v5.12.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-junit-jupiter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* update gtfs2matsim in application contrib (matsim-org#3278)

* build(deps): bump com.google.code.gson:gson from 2.10.1 to 2.11.0

Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.10.1 to 2.11.0.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](google/gson@gson-parent-2.10.1...gson-parent-2.11.0)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Move optimization constraints params to optimizer package

* add middleman for drt optimization constraints

* re-order replanning parameter comments to make them more understandable (matsim-org#3280)

* ---
updated-dependencies:
- dependency-name: jakarta.validation:jakarta.validation-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

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

Signed-off-by: dependabot[bot] <[email protected]>

* Bump org.apache.commons:commons-compress from 1.26.1 to 1.26.2

Bumps org.apache.commons:commons-compress from 1.26.1 to 1.26.2.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump com.google.protobuf:protobuf-java from 4.26.1 to 4.27.0

Bumps [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) from 4.26.1 to 4.27.0.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Fix bug in bicycle score handler (matsim-org#3288)

* fix bicycle score handler

* update test cases

* update events

* use new population comparison

* fix: prebooked drt with variable stop durations and group sizes (matsim-org#3290)

* fix: prebooked drt with variable stop durations and group sizes

* fix logic

* Documentation mode choice + make mode choice analysis standard (matsim-org#3285)

* add comments to clarify configs

* add ModeChoiceCoverageControlerListener as default analysis

* fix tests

* fix tests

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: rakow <[email protected]>
Co-authored-by: Paul Heinrich <[email protected]>
Co-authored-by: Paul Heinrich <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michal Maciejewski <[email protected]>
Co-authored-by: Kai Nagel <[email protected]>
Co-authored-by: kainagel <[email protected]>
Co-authored-by: Ricardo Ewert <[email protected]>
Co-authored-by: Ricardo Ewert <[email protected]>
Co-authored-by: simei94 <[email protected]>
Co-authored-by: marecabo <[email protected]>
Co-authored-by: rakow <[email protected]>
Co-authored-by: vsp-gleich <[email protected]>
Co-authored-by: Sebastian Hörl <[email protected]>
  • Loading branch information
15 people authored May 27, 2024
1 parent 5e51e26 commit 0ab3a61
Show file tree
Hide file tree
Showing 204 changed files with 1,983 additions and 780 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.feature.simple.SimpleFeature;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
Expand All @@ -41,7 +42,6 @@
import org.matsim.core.utils.geometry.CoordUtils;
import org.matsim.core.utils.gis.GeoFileReader;
import org.matsim.facilities.*;
import org.opengis.feature.simple.SimpleFeature;

import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
import java.util.HashSet;
import java.util.Set;

import org.geotools.data.DataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.api.data.DataStore;
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.opengis.feature.simple.SimpleFeature;

/**
* Utility class for reading shape (.shp) files.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.matsim.facilities.ActivityFacility;
import org.matsim.facilities.FacilitiesUtils;
import org.matsim.utils.gis.shp2matsim.ShpGeometryUtils;
import org.opengis.feature.simple.SimpleFeature;

public final class GridUtils {
// used from outside, e.g. in vsp playgrounds
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@
import java.util.Collection;
import java.util.List;

import org.geotools.api.feature.simple.SimpleFeature;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Polygon;
import org.locationtech.jts.triangulate.VoronoiDiagramBuilder;
import org.matsim.contrib.matrixbasedptrouter.utils.BoundingBox;
import org.matsim.core.utils.gis.GeoFileWriter;
import org.opengis.feature.simple.SimpleFeature;

/**
* @author dziemke
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.feature.simple.SimpleFeature;
import org.geotools.api.feature.simple.SimpleFeatureType;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.locationtech.jts.geom.Coordinate;
Expand All @@ -40,8 +42,6 @@
import org.matsim.core.utils.geometry.CoordUtils;
import org.matsim.facilities.ActivityFacilities;
import org.matsim.facilities.ActivityFacility;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;

/**
* @author dziemke
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,18 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.metadata.Identifier;
import org.geotools.api.referencing.FactoryException;
import org.geotools.api.referencing.NoSuchAuthorityCodeException;
import org.geotools.api.referencing.crs.CRSAuthorityFactory;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.geotools.api.referencing.operation.MathTransform;
import org.geotools.api.referencing.operation.TransformException;
import org.geotools.referencing.CRS;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point;
import org.opengis.metadata.Identifier;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.NoSuchAuthorityCodeException;
import org.opengis.referencing.crs.CRSAuthorityFactory;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import org.opengis.referencing.operation.TransformException;

/**
* Utility-class providing functionality related to coordinate reference
Expand Down Expand Up @@ -94,7 +94,7 @@ public static int getSRID(CoordinateReferenceSystem crs) {
/*
* Randomly get one identifier.
*/
Identifier identifier = (Identifier) (crs.getIdentifiers().iterator().next());
Identifier identifier = crs.getIdentifiers().iterator().next();
if (identifier == null) {
return 0;
} else {
Expand All @@ -118,7 +118,7 @@ public static MathTransform findTransform(Geometry source, Geometry target) {
CoordinateReferenceSystem targetCRS = getCRS(target.getSRID());

try {
return CRS.findMathTransform(sourceCRS, targetCRS);
return CRS.findMathTransform(sourceCRS, targetCRS);
} catch (FactoryException e) {
e.printStackTrace();
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
import java.util.List;
import java.util.Set;

import org.geotools.api.referencing.FactoryException;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.geotools.api.referencing.operation.MathTransform;
import org.geotools.referencing.CRS;
import org.locationtech.jts.geom.Point;
import org.locationtech.jts.index.SpatialIndex;
import org.locationtech.jts.index.quadtree.Quadtree;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;

/**
* Representation of a spatial index containing zones backed by a quadtree.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.feature.simple.SimpleFeature;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
Expand All @@ -41,7 +42,6 @@
import org.matsim.facilities.ActivityOption;
import org.matsim.facilities.FacilitiesUtils;
import org.matsim.utils.objectattributes.ObjectAttributes;
import org.opengis.feature.simple.SimpleFeature;
import org.openstreetmap.osmosis.core.container.v0_6.BoundContainer;
import org.openstreetmap.osmosis.core.container.v0_6.EntityContainer;
import org.openstreetmap.osmosis.core.container.v0_6.EntityProcessor;
Expand Down Expand Up @@ -89,7 +89,7 @@ class CombinedOsmSink implements Sink {

private Map<String, Integer> typeCount = new HashMap<>();

private List <SimpleFeature> landUseAreas = new ArrayList <SimpleFeature>();
private List <SimpleFeature> landUseAreas = new ArrayList<>();

private int featureErrorCounter = 0;
private int buildingErrorCounter = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.feature.simple.SimpleFeature;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
Expand All @@ -40,7 +41,6 @@
import org.matsim.facilities.ActivityOption;
import org.matsim.facilities.FacilitiesUtils;
import org.matsim.utils.objectattributes.ObjectAttributes;
import org.opengis.feature.simple.SimpleFeature;
import org.openstreetmap.osmosis.core.container.v0_6.BoundContainer;
import org.openstreetmap.osmosis.core.container.v0_6.EntityContainer;
import org.openstreetmap.osmosis.core.container.v0_6.EntityProcessor;
Expand Down Expand Up @@ -69,11 +69,11 @@ class LandUseBuildingSink implements Sink {
private Map<Long, RelationContainer> relationMap;
private ActivityFacilities facilities;
private ObjectAttributes facilityAttributes;
private Map<String, String> landUseTypeMap = new HashMap<>();
private Map<String, String> buildingTypeMap = new HashMap<>();
private final Map<String, String> landUseTypeMap;
private Map<String, String> buildingTypeMap;
private Map<String, Integer> typeCount = new HashMap<>();

private List <SimpleFeature> features = new ArrayList <SimpleFeature>();
private List <SimpleFeature> features = new ArrayList<>();

private double buildingTypeFromVicinityRange;
private String[] tagsToIgnoreBuildings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@

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.data.simple.SimpleFeatureStore;
import org.geotools.api.data.DataStore;
import org.geotools.api.data.DataStoreFinder;
import org.geotools.api.data.SimpleFeatureStore;
import org.geotools.api.feature.simple.SimpleFeature;
import org.geotools.api.feature.simple.SimpleFeatureType;
import org.geotools.feature.DefaultFeatureCollection;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
Expand All @@ -49,8 +51,6 @@
import org.matsim.core.utils.geometry.transformations.TransformationFactory;
import org.matsim.core.utils.gis.GeoFileWriter;
import org.matsim.facilities.ActivityFacility;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;

public class GeoserverUpdater implements FacilityDataExchangeInterface {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.data.DataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.api.data.DataStore;
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.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
Expand All @@ -45,7 +46,6 @@
import org.matsim.core.utils.geometry.geotools.MGC;
import org.matsim.core.utils.geometry.transformations.TransformationFactory;
import org.matsim.core.utils.gis.GeoFileReader;
import org.opengis.feature.simple.SimpleFeature;

/**
* @author mmayobre, ikaddoura
Expand Down
2 changes: 1 addition & 1 deletion contribs/analysis/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
import java.util.Map;
import java.util.Map.Entry;

import org.geotools.api.feature.simple.SimpleFeature;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.locationtech.jts.geom.Coordinate;
import org.matsim.api.core.v01.Coord;
import org.matsim.api.core.v01.network.Link;
Expand All @@ -43,8 +45,6 @@
import org.matsim.core.utils.gis.PolylineFeatureFactory;
import org.matsim.core.utils.gis.GeoFileWriter;
import org.matsim.core.utils.io.IOUtils;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

/**
* Analyzes the average link travel times and writes them to files (absolute and
Expand Down
4 changes: 2 additions & 2 deletions contribs/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
<dependency>
<groupId>com.github.matsim-org</groupId>
<artifactId>gtfs2matsim</artifactId>
<version>master-33809c4f0f-1</version>
<version>fc8b13954d</version>
<exclusions>
<!-- Exclude unneeded dependencies and these with known CVE -->
<exclusion>
Expand Down Expand Up @@ -117,7 +117,7 @@
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>4.7.5</version>
<version>4.7.6</version>
</dependency>
<dependency>
<groupId>it.unimi.dsi</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public final class CsvOptions {
@CommandLine.Option(names = "--csv-format", description = "CSV Format", defaultValue = "Default")
private CSVFormat.Predefined csvFormat;

@CommandLine.Option(names = "--csv-delimiter", description = "CSV Delimiter", required = false)
@CommandLine.Option(names = "--csv-delimiter", description = "CSV Delimiter")
private Character csvDelimiter;

@CommandLine.Option(names = "--csv-charset", description = "CSV input encoding", defaultValue = "UTF8")
Expand Down Expand Up @@ -56,24 +56,48 @@ public CsvOptions(CSVFormat.Predefined csvFormat, Character csvDelimiter, Charse
*/
public static Character detectDelimiter(String path) throws IOException {
try (BufferedReader reader = IOUtils.getBufferedReader(path)) {
String firstLine = reader.readLine();
int[] comma = new int[5];
int[] semicolon = new int[5];
int[] tab = new int[5];
String[] lines = new String[5];

// check five first lines for separator chars. It might be that the csv file has additional info in the first x lines (e.g. EPSG)
for (int i = 0; i < 5; i++) {
lines[i] = reader.readLine();
if (lines[i] == null) {
comma[i] = 0;
semicolon[i] = 0;
tab[i] = 0;
} else {
comma[i] = StringUtils.countMatches(lines[i], ",");
semicolon[i] = StringUtils.countMatches(lines[i], ";");
tab[i] = StringUtils.countMatches(lines[i], "\t");
}
}

int comma = StringUtils.countMatches(firstLine, ",");
int semicolon = StringUtils.countMatches(firstLine, ";");
int tab = StringUtils.countMatches(firstLine, "\t");
Integer index = null;

if (comma == 0 && semicolon == 0 && tab == 0) {
throw new IllegalArgumentException("No delimiter found in the first line of the file.");
for (int i = 0; i < comma.length - 1; i++) {
// only check next index if line with separators was not found
if (index == null) {
if (!(comma[i] == 0 && semicolon[i] == 0 && tab[i] == 0)) {
index = i;
}
}
}

// Comma is preferred as the more likely format
if (comma >= semicolon && comma >= tab) {
return ',';
} else if (tab >= semicolon)
return '\t';
else
return ';';
}
if (index == null) {
throw new IllegalArgumentException("No delimiter found in the first line of the file.");
} else {
// Comma is preferred as the more likely format
if (comma[index] >= semicolon[index] && comma[index] >= tab[index]) {
return ',';
} else if (tab[index] >= semicolon[index])
return '\t';
else
return ';';
}
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
import org.apache.commons.lang3.ArrayUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.geotools.api.data.*;
import org.geotools.api.feature.simple.SimpleFeature;
import org.geotools.api.feature.simple.SimpleFeatureType;
import org.geotools.api.referencing.FactoryException;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.geotools.data.*;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.data.shapefile.ShapefileDataStoreFactory;
Expand All @@ -21,10 +26,6 @@
import org.matsim.core.utils.geometry.transformations.TransformationFactory;
import org.matsim.core.utils.gis.GeoFileReader;
import org.matsim.core.utils.io.IOUtils;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import picocli.CommandLine;

import javax.annotation.Nullable;
Expand Down
Loading

0 comments on commit 0ab3a61

Please sign in to comment.