Coder Social home page Coder Social logo

matsim-org / pt2matsim Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 63.0 56.92 MB

Package to create a multi-modal MATSim network and schedule from public transit data (GTFS or HAFAS) and an OSM map of the area.

Home Page: http://www.ivt.ethz.ch/publikationen/studenten/530.html

License: GNU General Public License v2.0

Java 100.00%
gtfs mapping matsim osm public-transport transit-data

pt2matsim's People

Contributors

balacmi avatar davibicudo avatar dependabot[bot] avatar gabrielthunig avatar gregmacfarlane avatar jlieberherr avatar joemolloy avatar jwjoubert avatar ksauzz avatar marecabo avatar markusstraub avatar mrieser avatar nitnelav avatar polettif avatar sebhoerl avatar steffenaxer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pt2matsim's Issues

clean up examples

PT2MATSimExample, Asheville and ZVVexample are deprecated and might be confusing.

HAFAS: key-date user-defined

In HAFAS it would be practical to be able to select the key date manually (instead of the day with the most of traffic).

Use all osm keys for way parameters

OsmMultimodalNetworkConverter should be able to pass arbitrary key/value pairs. If a way is matched by more than one parameter, two links should be created (initiated by #95).

Conversion to EPSG does not work with shaded jar

Command:

java -cp pt2matsim-18.8-SNAPSHOT-shaded.jar org.matsim.pt2matsim.run.Hafas2TransitSchedule /path/to/hafas EPSG:2056 /path/to/schedule.xml.gz /path/to/vehicles.xml.gz

Error:

Exception in thread "main" java.lang.IllegalArgumentException: org.opengis.referencing.datum.DatumFactory is not an ImageIO SPI class
	at java.desktop/javax.imageio.spi.ServiceRegistry.checkClassAllowed(ServiceRegistry.java:722)
	at java.desktop/javax.imageio.spi.ServiceRegistry.<init>(ServiceRegistry.java:117)
	at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:155)
	at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:146)
	at org.geotools.factory.FactoryCreator.<init>(FactoryCreator.java:82)
	at org.geotools.referencing.ReferencingFactoryFinder.getServiceRegistry(ReferencingFactoryFinder.java:115)
	at org.geotools.referencing.ReferencingFactoryFinder.getFactory(ReferencingFactoryFinder.java:197)
	at org.geotools.referencing.ReferencingFactoryFinder.getCRSFactory(ReferencingFactoryFinder.java:288)
	at org.geotools.referencing.CRS.parseWKT(CRS.java:535)
	at org.matsim.core.utils.geometry.geotools.MGC.getCRS(MGC.java:172)
	at org.matsim.core.utils.geometry.transformations.GeotoolsTransformation.<init>(GeotoolsTransformation.java:57)
	at org.matsim.core.utils.geometry.transformations.TransformationFactory.getCoordinateTransformation(TransformationFactory.java:80)
	at org.matsim.pt2matsim.run.Hafas2TransitSchedule.run(Hafas2TransitSchedule.java:72)
	at org.matsim.pt2matsim.run.Hafas2TransitSchedule.main(Hafas2TransitSchedule.java:58)

I encountered this problem before. Somehow geotools gets confused when packaging it as a shaded jar (some parts override others in the jar). I will check if I can find the fix for that again.

NumberFormatException

Trying to convert a filtered GTFS file (GTFS-cropped.zip) I get this error:
Exception in thread "main" java.lang.NumberFormatException : For input string: "stop_sequence" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.loadStopTimes(GtfsFeedImpl.java:434) at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.loadFiles(GtfsFeedImpl.java:144) at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.<init>(GtfsFeedImpl.java:78) at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.run(Gtfs2TransitSchedule.java:102) at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.main(Gtfs2TransitSchedule.java:66)
This is the full file:
https://edusintlodewijkscollege-my.sharepoint.com/personal/wout_david_edu_sint-lodewijkscollege_be/_layouts/15/guestaccess.aspx?docid=075367d23c2f147098de5d090c3dca252&authkey=Ac2EP9pQ2isQR4HX5Obolwk

Unsure if functionality "vehicle working" already exists for transit vehicles

Hi,

i am currently unsure if the functionality 'vehicle working'/circulation/Umlauf is already implemented for Transit Vehicles.

I have checked most useful .java files in this repository - regardless having someone confirm, that the functionality doesn't already exist would help me loads since I am considering implementing this functionality myself.

Regards
Gero

Default Config

Dear all:
I'm using this project to generated file and run the public transport module of matsim. How can I run CreateDefaultOsmConfig, or this project need my own Osm file?
Hope to get your early reply soon.

Latest CH HAFAS

There is problem with loading the latest HAFAS schedule for Switzerland:
https://opentransportdata.swiss/de/dataset/timetable-2017-hrdf/resource/c8d6b488-3551-4fae-9774-1ef378d67980

2017-09-28 15:15:28,813  INFO Counter:61 FPLAN line # 1

Exception in thread "main" java.lang.NumberFormatException: For input string: "  "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at org.matsim.pt2matsim.hafas.lib.FPLANReader.parseFPLAN(FPLANReader.java:108)
at org.matsim.pt2matsim.hafas.HafasConverter.run(HafasConverter.java:74)
at org.matsim.pt2matsim.run.Hafas2TransitSchedule.run(Hafas2TransitSchedule.java:74)
at org.matsim.pt2matsim.run.Hafas2TransitSchedule.main(Hafas2TransitSchedule.java:58)

This (optional) time information that the code refers to doesn't seem to be there anymore?

Empty line in Stops.txt

Hi, I get an error while trying to generate the schedule fro GTFS. It says empty line in Stops.txt file, but I can't see the problem in the file. Do i have to reduce the information in the file only to the ones needed?
Thank you

TransitRouterNetwork:433 add transfer links -> GC overhead limit

Hello,

I am trying to run Matsim using the network.xml, schedule.xml and vehicles.xml, which I created with pt2matsim.
Matsim reads the files and starts to create a transit network. This works until it reaches the point "ransitRouterNetwork:433 add transfer links", where it stays for (quite) a while and then stops with an error message, that says it reached the GC overhead limit.
The network is not really big and I used 1/6/12 gb memory, all with the same result.
After asking the Matsim-FAQ, I got the respond that the coordinates of my stop facilities seem to be too close.

Is this problem known, and/or is there a way to configure pt2matsim in a way that building the TransitRouterNetwork does not need that much memory?

Thank you for the help & kind regards

Long stationary queues of pt vehicles

Dear guys,

I've used the pt2matsim to generate a multimodal network from OSM, convert a (self-made) GTFS feed to transitSchedule and default transitVehicles files and then mapped the schedule. It all seems fine, with not too many PlausibilityWarnings. When running a pt scenario simulation, I've noticed that the pt vehicles line up on some streets and form long queues which either move extremely slowly or don't move at all (at the end of a line). (see screenshot) In the particular case this phenomenon happens with only pt vehicles circulating on the network, so the network should not be overloaded with cars and be congestions. I investigated the mapped schedule file and found out that for every trip on a transit line a new pt vehicle is generated which enters the network at the designated departure time. Is that the current practice in the field or is it due to a low quality GTFS feed?

My second question is what happens to a pt vehicle after it completes its trip? Is it removed from the network and if not, does it block other vehicles by staying at the last stop of its route until the end of the simulation? Thanks

Screenshot 2020-06-09 at 15 17 17

IncompatibleClassChangeError when running the Gtfs2TransitSchedule class

Dear guys,

I have developed a GTFS feed using data provided from the PT agency in Sofia, Bulgaria. I validated it with the transitfeedValidator from google and have no errors it. I have added the repository and dependancy for pt2matsim to my MATSim project and am trying to use the Gtfs2TransitSchedule class and generate a transitSchedule.xml. I am probably not using the class in the right way and keep getting the same error. My class looks like this:
`package org.matsim.project;

public class MappingTransitFromGtfs {
public static void main(String[] args) {
org.matsim.pt2matsim.run.Gtfs2TransitSchedule.main(new String[]
{"../TheoremusPy/GTFS_single_day",
"20200518", "EPSG:32634", "transitSchedule.xml"});

}

}
`

When I run it, the GTFS conversion is doing some progress and than stops with the following error:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class org.matsim.vehicles.VehicleType, but interface was expected
at org.matsim.pt2matsim.tools.ScheduleTools.createDefaultVehicleType(ScheduleTools.java:205)
at org.matsim.pt2matsim.gtfs.GtfsConverter.createVehicles(GtfsConverter.java:326)
at org.matsim.pt2matsim.gtfs.GtfsConverter.convert(GtfsConverter.java:120)
at org.matsim.pt2matsim.gtfs.GtfsConverter.convert(GtfsConverter.java:69)
at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.run(Gtfs2TransitSchedule.java:107)
at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.main(Gtfs2TransitSchedule.java:69)
at org.matsim.project.MappingTransitFromGtfs.main(MappingTransitFromGtfs.java:6)

Could someone, please, help me?

I'll post the whole log for completeness:

/Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=56410:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/alexanderbachev/matsim-example-project/target/classes:/Users/alexanderbachev/.m2/repository/org/matsim/matsim/12.0-2019w48-SNAPSHOT/matsim-12.0-2019w48-20191202.022256-1.jar:/Users/alexanderbachev/.m2/repository/log4j/log4j/1.2.15/log4j-1.2.15.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-main/21.1/gt-main-21.1.jar:/Users/alexanderbachev/.m2/repository/org/locationtech/jts/jts-core/1.16.0/jts-core-1.16.0.jar:/Users/alexanderbachev/.m2/repository/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-text/1.6/commons-text-1.6.jar:/Users/alexanderbachev/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar:/Users/alexanderbachev/.m2/repository/javax/media/jai_core/1.1.3/jai_core-1.1.3.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-referencing/21.1/gt-referencing-21.1.jar:/Users/alexanderbachev/.m2/repository/org/ejml/ejml-ddense/0.34/ejml-ddense-0.34.jar:/Users/alexanderbachev/.m2/repository/org/ejml/ejml-core/0.34/ejml-core-0.34.jar:/Users/alexanderbachev/.m2/repository/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-metadata/21.1/gt-metadata-21.1.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-opengis/21.1/gt-opengis-21.1.jar:/Users/alexanderbachev/.m2/repository/systems/uom/systems-common-java8/0.7.2/systems-common-java8-0.7.2.jar:/Users/alexanderbachev/.m2/repository/tec/uom/uom-se/1.0.8/uom-se-1.0.8.jar:/Users/alexanderbachev/.m2/repository/javax/measure/unit-api/1.0/unit-api-1.0.jar:/Users/alexanderbachev/.m2/repository/tec/uom/lib/uom-lib-common/1.0.2/uom-lib-common-1.0.2.jar:/Users/alexanderbachev/.m2/repository/si/uom/si-quantity/0.7.1/si-quantity-0.7.1.jar:/Users/alexanderbachev/.m2/repository/si/uom/si-units-java8/0.7.1/si-units-java8-0.7.1.jar:/Users/alexanderbachev/.m2/repository/jgridshift/jgridshift/1.0/jgridshift-1.0.jar:/Users/alexanderbachev/.m2/repository/net/sf/geographiclib/GeographicLib-Java/1.49/GeographicLib-Java-1.49.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-shapefile/21.1/gt-shapefile-21.1.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-epsg-hsql/21.1/gt-epsg-hsql-21.1.jar:/Users/alexanderbachev/.m2/repository/org/hsqldb/hsqldb/2.4.1/hsqldb-2.4.1.jar:/Users/alexanderbachev/.m2/repository/org/jfree/jfreechart/1.5.0/jfreechart-1.5.0.jar:/Users/alexanderbachev/.m2/repository/org/jfree/jcommon/1.0.24/jcommon-1.0.24.jar:/Users/alexanderbachev/.m2/repository/com/google/inject/guice/4.1.0/guice-4.1.0.jar:/Users/alexanderbachev/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/alexanderbachev/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/alexanderbachev/.m2/repository/com/google/guava/guava/19.0/guava-19.0.jar:/Users/alexanderbachev/.m2/repository/com/google/inject/extensions/guice-multibindings/4.1.0/guice-multibindings-4.1.0.jar:/Users/alexanderbachev/.m2/repository/com/google/inject/extensions/guice-grapher/4.1.0/guice-grapher-4.1.0.jar:/Users/alexanderbachev/.m2/repository/com/google/inject/extensions/guice-assistedinject/4.1.0/guice-assistedinject-4.1.0.jar:/Users/alexanderbachev/.m2/repository/org/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar:/Users/alexanderbachev/.m2/repository/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar:/Users/alexanderbachev/.m2/repository/org/jvnet/ogc/kml-v_2_2_0/2.2.0/kml-v_2_2_0-2.2.0.jar:/Users/alexanderbachev/.m2/repository/org/hisrc/w3c/atom-v_1_0/1.1.0/atom-v_1_0-1.1.0.jar:/Users/alexanderbachev/.m2/repository/org/jvnet/jaxb2_commons/jaxb2-basics-runtime/0.9.4/jaxb2-basics-runtime-0.9.4.jar:/Users/alexanderbachev/.m2/repository/org/lz4/lz4-java/1.6.0/lz4-java-1.6.0.jar:/Users/alexanderbachev/.m2/repository/com/github/luben/zstd-jni/1.4.3-1/zstd-jni-1.4.3-1.jar:/Users/alexanderbachev/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/Users/alexanderbachev/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar:/Users/alexanderbachev/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/alexanderbachev/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/Users/alexanderbachev/.m2/repository/org/hibernate/validator/hibernate-validator-annotation-processor/6.0.9.Final/hibernate-validator-annotation-processor-6.0.9.Final.jar:/Users/alexanderbachev/.m2/repository/org/glassfish/javax.el/3.0.1-b10/javax.el-3.0.1-b10.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-compress/1.19/commons-compress-1.19.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-csv/1.5/commons-csv-1.5.jar:/Users/alexanderbachev/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar:/Users/alexanderbachev/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/Users/alexanderbachev/.m2/repository/com/sun/xml/bind/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar:/Users/alexanderbachev/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.0.1/jaxb-impl-2.3.0.1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/pt2matsim/19.11/pt2matsim-19.11.jar:/Users/alexanderbachev/.m2/repository/com/opencsv/opencsv/3.7/opencsv-3.7.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar:/Users/alexanderbachev/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Users/alexanderbachev/.m2/repository/de/grundid/opendatalab/geojson-jackson/1.5/geojson-jackson-1.5.jar:/Users/alexanderbachev/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.1/jackson-databind-2.5.1.jar:/Users/alexanderbachev/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.5.0/jackson-annotations-2.5.0.jar:/Users/alexanderbachev/.m2/repository/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/minibus/12.0-2019w48-SNAPSHOT/minibus-12.0-2019w48-20191202.023040-1.jar:/Users/alexanderbachev/.m2/repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/otfvis/12.0-2019w48-SNAPSHOT/otfvis-12.0-2019w48-20191202.022458-1.jar:/Users/alexanderbachev/.m2/repository/net/java/dev/timingframework/timingframework/1.0/timingframework-1.0.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt-main/2.3.2/gluegen-rt-main-2.3.2.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-android-aarch64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-android-armv6.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-linux-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-linux-armv6.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-linux-armv6hf.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-linux-i586.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-macosx-universal.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-solaris-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-solaris-i586.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-windows-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2-natives-windows-i586.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all-main/2.3.2/jogl-all-main-2.3.2.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-android-aarch64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-android-armv6.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-linux-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-linux-armv6.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-linux-armv6hf.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-linux-i586.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-macosx-universal.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-solaris-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-solaris-i586.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-windows-amd64.jar:/Users/alexanderbachev/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2-natives-windows-i586.jar:/Users/alexanderbachev/.m2/repository/org/jxmapviewer/jxmapviewer2/2.2/jxmapviewer2-2.2.jar:/Users/alexanderbachev/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/roadpricing/12.0-2019w48-SNAPSHOT/roadpricing-12.0-2019w48-20191202.022348-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/taxi/12.0-2019w48-SNAPSHOT/taxi-12.0-2019w48-20191202.022624-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/dvrp/12.0-2019w48-SNAPSHOT/dvrp-12.0-2019w48-20191202.022539-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/locationchoice/12.0-2019w48-SNAPSHOT/locationchoice-12.0-2019w48-20191202.022517-1.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar:/Users/alexanderbachev/.m2/repository/one/util/streamex/0.7.2/streamex-0.7.2.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/ev/12.0-2019w48-SNAPSHOT/ev-12.0-2019w48-20191202.022600-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/av/12.0-2019w48-SNAPSHOT/av-12.0-2019w48-20191202.022705-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/drt/12.0-2019w48-SNAPSHOT/drt-12.0-2019w48-20191202.022646-1.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/freight/12.0-2019w48-SNAPSHOT/freight-12.0-2019w48-20191202.022917-1.jar:/Users/alexanderbachev/.m2/repository/org/apache/commons/commons-math/2.2/commons-math-2.2.jar:/Users/alexanderbachev/.m2/repository/com/graphhopper/jsprit-core/1.7.2/jsprit-core-1.7.2.jar:/Users/alexanderbachev/.m2/repository/com/graphhopper/jsprit-io/1.7.2/jsprit-io-1.7.2.jar:/Users/alexanderbachev/.m2/repository/commons-configuration/commons-configuration/1.9/commons-configuration-1.9.jar:/Users/alexanderbachev/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/alexanderbachev/.m2/repository/xerces/xercesImpl/2.11.0/xercesImpl-2.11.0.jar:/Users/alexanderbachev/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar:/Users/alexanderbachev/.m2/repository/com/graphhopper/jsprit-analysis/1.7.2/jsprit-analysis-1.7.2.jar:/Users/alexanderbachev/.m2/repository/org/graphstream/gs-core/1.3/gs-core-1.3.jar:/Users/alexanderbachev/.m2/repository/org/graphstream/pherd/1.0/pherd-1.0.jar:/Users/alexanderbachev/.m2/repository/org/graphstream/mbox2/1.0/mbox2-1.0.jar:/Users/alexanderbachev/.m2/repository/org/graphstream/gs-ui/1.3/gs-ui-1.3.jar:/Users/alexanderbachev/.m2/repository/org/graphstream/gs-algo/1.3/gs-algo-1.3.jar:/Users/alexanderbachev/.m2/repository/org/scala-lang/scala-library/2.10.1/scala-library-2.10.1.jar:/Users/alexanderbachev/.m2/repository/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar:/Users/alexanderbachev/.m2/repository/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar:/Users/alexanderbachev/.m2/repository/org/matsim/contrib/bicycle/12.0-2019w48-SNAPSHOT/bicycle-12.0-2019w48-20191202.022717-1.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-geotiff/21.1/gt-geotiff-21.1.jar:/Users/alexanderbachev/.m2/repository/org/geotools/gt-coverage/21.1/gt-coverage-21.1.jar:/Users/alexanderbachev/.m2/repository/org/jaitools/jt-zonalstats/1.5.0/jt-zonalstats-1.5.0.jar:/Users/alexanderbachev/.m2/repository/org/jaitools/jt-utils/1.5.0/jt-utils-1.5.0.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/affine/jt-affine/1.1.9/jt-affine-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/algebra/jt-algebra/1.1.9/jt-algebra-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/bandmerge/jt-bandmerge/1.1.9/jt-bandmerge-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/bandselect/jt-bandselect/1.1.9/jt-bandselect-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/bandcombine/jt-bandcombine/1.1.9/jt-bandcombine-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/border/jt-border/1.1.9/jt-border-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/buffer/jt-buffer/1.1.9/jt-buffer-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/crop/jt-crop/1.1.9/jt-crop-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/iterators/jt-iterators/1.1.9/jt-iterators-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/lookup/jt-lookup/1.1.9/jt-lookup-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/mosaic/jt-mosaic/1.1.9/jt-mosaic-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/nullop/jt-nullop/1.1.9/jt-nullop-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/rescale/jt-rescale/1.1.9/jt-rescale-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/scale/jt-scale/1.1.9/jt-scale-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/scale2/jt-scale2/1.1.9/jt-scale2-1.1.9.jar:/Users/alexanderbachev/.m2/repository/org/huldra/math/bigint/0.7.1/bigint-0.7.1.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/stats/jt-stats/1.1.9/jt-stats-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/translate/jt-translate/1.1.9/jt-translate-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/utilities/jt-utilities/1.1.9/jt-utilities-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/warp/jt-warp/1.1.9/jt-warp-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/zonal/jt-zonal/1.1.9/jt-zonal-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/binarize/jt-binarize/1.1.9/jt-binarize-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/format/jt-format/1.1.9/jt-format-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/colorconvert/jt-colorconvert/1.1.9/jt-colorconvert-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/errordiffusion/jt-errordiffusion/1.1.9/jt-errordiffusion-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/orderdither/jt-orderdither/1.1.9/jt-orderdither-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/colorindexer/jt-colorindexer/1.1.9/jt-colorindexer-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/imagefunction/jt-imagefunction/1.1.9/jt-imagefunction-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/piecewise/jt-piecewise/1.1.9/jt-piecewise-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/classifier/jt-classifier/1.1.9/jt-classifier-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/rlookup/jt-rlookup/1.1.9/jt-rlookup-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/vectorbin/jt-vectorbin/1.1.9/jt-vectorbin-1.1.9.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/jaiext/shadedrelief/jt-shadedrelief/1.1.9/jt-shadedrelief-1.1.9.jar:/Users/alexanderbachev/.m2/repository/javax/media/jai_imageio/1.1/jai_imageio-1.1.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/imageio-ext/imageio-ext-tiff/1.2.1/imageio-ext-tiff-1.2.1.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/imageio-ext/imageio-ext-utilities/1.2.1/imageio-ext-utilities-1.2.1.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/imageio-ext/imageio-ext-geocore/1.2.1/imageio-ext-geocore-1.2.1.jar:/Users/alexanderbachev/.m2/repository/it/geosolutions/imageio-ext/imageio-ext-streams/1.2.1/imageio-ext-streams-1.2.1.jar:/Users/alexanderbachev/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.4.0-b180830.0438/jaxb-runtime-2.4.0-b180830.0438.jar:/Users/alexanderbachev/.m2/repository/org/glassfish/jaxb/txw2/2.4.0-b180830.0438/txw2-2.4.0-b180830.0438.jar:/Users/alexanderbachev/.m2/repository/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar:/Users/alexanderbachev/.m2/repository/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar:/Users/alexanderbachev/.m2/repository/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar:/Users/alexanderbachev/.m2/repository/javax/media/jai_codec/1.1.3/jai_codec-1.1.3.jar org.matsim.project.MappingTransitFromGtfs
2020-05-19 19:35:55,420 INFO GtfsFeedImpl:136 Loading GTFS files from ../TheoremusPy/GTFS_single_day/
2020-05-19 19:35:55,421 INFO GtfsFeedImpl:191 Loading stops.txt
2020-05-19 19:35:55,470 INFO GtfsFeedImpl:228 ... stops.txt loaded
2020-05-19 19:35:55,470 INFO GtfsFeedImpl:242 Loading calendar.txt
2020-05-19 19:35:55,473 INFO GtfsFeedImpl:272 ... calendar.txt loaded
2020-05-19 19:35:55,473 INFO GtfsFeedImpl:286 Looking for calendar_dates.txt
2020-05-19 19:35:55,473 INFO GtfsFeedImpl:318 ... calendar_dates.txt loaded
2020-05-19 19:35:55,474 INFO GtfsFeedImpl:337 Looking for shapes.txt
2020-05-19 19:35:55,973 INFO GtfsFeedImpl:362 ... shapes.txt loaded
2020-05-19 19:35:55,974 INFO GtfsFeedImpl:382 Loading routes.txt
2020-05-19 19:35:55,980 INFO GtfsFeedImpl:414 ... routes.txt loaded
2020-05-19 19:35:55,980 INFO GtfsFeedImpl:430 Loading trips.txt
2020-05-19 19:35:56,065 INFO GtfsFeedImpl:478 ... trips.txt loaded
2020-05-19 19:35:56,066 INFO GtfsFeedImpl:491 Loading stop_times.txt
2020-05-19 19:35:56,898 INFO GtfsFeedImpl:563 ... stop_times.txt loaded
2020-05-19 19:35:56,898 INFO GtfsFeedImpl:574 Looking for frequencies.txt
2020-05-19 19:35:56,898 INFO GtfsFeedImpl:611 ... no frequencies file found
2020-05-19 19:35:56,899 INFO GtfsFeedImpl:620 Looking for transfers.txt
2020-05-19 19:35:56,899 INFO GtfsFeedImpl:655 ... no transfers file found
2020-05-19 19:35:56,899 INFO GtfsFeedImpl:165 All files loaded
2020-05-19 19:35:56,907 INFO Config:572 setting context to [file:/Users/alexanderbachev/matsim-example-project/]
2020-05-19 19:35:56,993 INFO Config:572 setting context to [file:/Users/alexanderbachev/matsim-example-project/]
2020-05-19 19:35:56,997 INFO GtfsConverter:94 #####################################
2020-05-19 19:35:56,997 INFO GtfsConverter:95 Converting to MATSim transit schedule
2020-05-19 19:35:57,771 INFO Logger:? dataFileCache open start
2020-05-19 19:35:58,219 INFO GtfsConverter:102 Extracting schedule from date 2020-05-18
2020-05-19 19:35:58,225 INFO GtfsConverter:180 Creating TransitLines from routes and TransitRoutes from trips...
2020-05-19 19:35:58,410 INFO ScheduleCleaner:310 Combining TransitRoutes with equal stop sequence and arrival/departure offsets...
2020-05-19 19:35:58,542 INFO ScheduleCleaner:337 ... Combined 13979 transit routes
2020-05-19 19:35:58,543 INFO ScheduleCleaner:78 ... Removing not used stop facilities
2020-05-19 19:35:58,547 INFO ScheduleCleaner:106 0 stop facilities removed
2020-05-19 19:35:58,547 INFO ScheduleCleaner:115 ... Removing not used minimal transfer times
2020-05-19 19:35:58,548 INFO ScheduleCleaner:131 0 not used minimal transfer times facilities removed
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class org.matsim.vehicles.VehicleType, but interface was expected
at org.matsim.pt2matsim.tools.ScheduleTools.createDefaultVehicleType(ScheduleTools.java:205)
at org.matsim.pt2matsim.gtfs.GtfsConverter.createVehicles(GtfsConverter.java:326)
at org.matsim.pt2matsim.gtfs.GtfsConverter.convert(GtfsConverter.java:120)
at org.matsim.pt2matsim.gtfs.GtfsConverter.convert(GtfsConverter.java:69)
at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.run(Gtfs2TransitSchedule.java:107)
at org.matsim.pt2matsim.run.Gtfs2TransitSchedule.main(Gtfs2TransitSchedule.java:69)
at org.matsim.project.MappingTransitFromGtfs.main(MappingTransitFromGtfs.java:6)

Process finished with exit code 1

More advanced network cleaning

This issue mainly affects the cleanNetwork method:
https://github.com/matsim-org/pt2matsim/blob/master/src/main/java/org/matsim/pt2matsim/osm/OsmMultimodalNetworkConverter.java#L608

Right now it is rather static:

  • First a car network is created (with all "car" links)
  • Second, a bus network is created (with all "car" or "bus" links)
  • Third, a network with everything that has neither bus nor car is created
  • Finally, they are all merged on top of each other

I think in general it would be good to configure this in a way like:

<parameterset type="networkLayer">
   <param name="allowedTransportModes" value="car" />
   <param name="layerMode" value="car" />
</parameterset>

<parameterset type="networkLayer">
   <param name="allowedTransportModes" value="car,bus" />
   <param name="layerMode" value="bus" />
</parameterset>

Then the cleanNetwork would do:

  • Create a clean network for each networkLayer
  • Create a rest network with all links that contain modes that are not defined as a layerMode
  • Merge them into one big network

What is achieved then is two things:

  • All modes that are defined as a layerMode have a consistent network (i.e. which can be used for routing etc.)
  • All other links are still contained in the network, but they are allowed to contain sinks and sources (e.g. rail or tram), but all layerModes are removed from those links (because initially we saw that they are not consistent with the clean network... otherwise they will be there anyway).

Just to give some context: My current use case was, that we include a car_passenger mode in the network, which basically just means everywhere where we have car also car passengers can go. Until now, we were always adding this mode directly before the simulation to all car links. Now I wanted to put it directly in the network generation. The problem is that currently the cleanNetwork makes sure that there is a clean car network and a clean bus network, but it does not make sure for other modes.

What do you think? Am I missing something?

add extended route type 907

The latest GTFS data from Switzerland (e.g. https://opentransportdata.swiss/de/dataset/6f55f96d-7644-4901-b927-e9cf05a8c7f0/resource/308f9e55-9d2e-493c-90cc-f492fef8dde4/download/gtfsfp20202020-03-04.zip) contains routes with type 907:

"61-110-Y-j20-1","293","110-Y","","Drahtseilbahn","907"
"61-111-Y-j20-1","236","111-Y","","Drahtseilbahn","907"
"61-112-Y-j20-1","219","112-Y","","Drahtseilbahn","907"
"61-113-Y-j20-1","219","113-Y","","Drahtseilbahn","907"

This currently leads to an exception:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid GTFS route type: 907
	at org.matsim.pt2matsim.gtfs.lib.GtfsDefinitions$ExtendedRouteType.getExtendedRouteType(GtfsDefinitions.java:393)
	at org.matsim.pt2matsim.gtfs.lib.GtfsDefinitions$RouteType.getExtendedRouteType(GtfsDefinitions.java:212)
	at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.loadRoutes(GtfsFeedImpl.java:395)
	at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.loadFiles(GtfsFeedImpl.java:149)
	at org.matsim.pt2matsim.gtfs.GtfsFeedImpl.<init>(GtfsFeedImpl.java:84)

Sadly, this exception is then not caught, which results in the conversion to not complete.
The code in GtfsFeedImpl seems to expect a null value when a route type is not found and then handles this more gracefully by just ignoring this route. Too bad null is never returned, but an exception instead.
Not sure what the design decision on this point is, but I would prefer if the conversion would continue with some kind of warning.

For the time being, I'll likely going to replace the "907" with "1400" (Standseilbahn) in my gtfs-data.

Plausibility Warnings

I am new to MATSim and also new to Java. I am trying to model Maryland, USA. I downloaded the osm file for Maryland and GTFS files for Maryland (21 agencies). As this package can take GTFS data from one zip file, I merged all the data and used it. But finally, it shows the following warnings. Can you please suggest if I can ignore these warnings or I have to change/update/format any files? If so, how to do that? Thanks in advance.

Plausibility check for 5444 transit routes finished.
2884 artificial links
1073 loop warnings
911 direction change warnings
4845 travel time warnings
===============================

Encoding issue with HAFAS?

It seems there is an encoding issue when loading the HAFAS data / generating the schedule from it. For instance, the GTFS converter produces Genรจve while the HAFAS converter produces Genรƒยจve.

Versioning

In order to keep pt2matsim compatible with matsim, I propose the following scheme:

  • The master branch of pt2matsim is always keeping track of the master in Matsim, i.e. the dependency in the pom.xml always points towards the latest matsim development version.
  • For distinct MATSim releases, a tag is created here just as is done in the main Matsim repository. The pom.xml at this tag is locked to the corresponding version of MATSim.

Furthermore it might make sense to not only get the version right in the pom.xml for the master branch, but to directly link to the MATSim SCM for the latest version (though I did not look into that yet).

If this is appreciated I can set this up.

Time profile in Routes not correct when transforming from HAFAS

It seems that the departure and arrival times from HAFAS FPLAN files are not mapped correctly to MATSim routes. In the branch fplan-bug I added a unit test with two HRDF *Z blocks (two trips), each of it serving the same stops, but in the first trip the departure time is modified. Since the time profiles of the two trips are not equal one would expect two different MATSim routes. But the two trips are mapped two to the same MATSim route.
This leads to incorrect timetables and false results, for example with pt routing.

Issue with the best block selection in the BitAnalyzer/HafasConverter

Theres an issue with the hafas data for Switzerland currently, which results in pt2matsim generating a schedule with no stops or routes for local public transport in Geneva.

current as of the hafas data downloaded on 30.10

  1. For the first 288 days of the hafas data (fahrplan startdate 09.12.2018), there are no departures for the Geneva local public transport. Probably these routes are outdated and hence removed after a timetable update from the PT authority.
  2. This shouldnโ€™t be problem, however, as Pt2matsim picks the 4 day period with the most departures to take routes and departures from.
  3. Unluckily, this date is somewhere in the first half of the fahrplan period in the hafas data, despite the lack of data for Geneva in this period
  4. Hence a date after 22/9/2019 needs to be selected for the pt2matsim if we want local PT for Geneva.
  5. Selecting a date is only currently possible for the gtfs side of pt2matsim

Infinite loop while mapping when loop-link exists in the network

I just tried to create a new network and schedule from the current Geofabrik OSM Snapshot of Switzerland + SBB GTFS / HAFAS. Unfortunately, the mapping doesn't work. It goes in a infinite loop in NetworkTools::reduceSequencedLinks.

The reason is that in the network construction a loop-link is introduced (ID 689236). If this link is fed into this function the first do-while loop (line 526) always finds the same link as the preceding link of the current one and so it never exits. As I'm not 100% sure what exactly this function is doing and what implications my changes may have, it's maybe good if @polettif could have a look :)

Example input to PublicTransitMapper can be found here:
https://polybox.ethz.ch/index.php/s/dYBNKGGoQYnjIfV

PublicTransitMapper stopped

Dear all:
I'm using PublicTransitMapper to matching my "unmapped" public transport schedule file to the network file. When I run the main class, it didn't continue when calculating the 153th lines:
image
Could anyone can help me.
Hope to get your early reply soon.

FastAStarLandmarksFactory ClassNotFoundException

Hi Flavio,

I am struggling to run the PublicTransitMapper. You commented out the import
import org.matsim.core.router.FastAStarLandmarksFactory;
in class
mapping.networkRouter.ScheduleRouter
When adding it back I noticed there was a build problem so probably this is not new for you.
Do you have any solution in sight or a workaround?

Here is full error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/matsim/core/router/util/FastAStarLandmarksFactory
at org.matsim.pt2matsim.mapping.networkRouter.ScheduleRoutersStandard.load(ScheduleRoutersStandard.java:80)
at org.matsim.pt2matsim.mapping.networkRouter.ScheduleRoutersStandard.(ScheduleRoutersStandard.java:54)
at org.matsim.pt2matsim.mapping.PTMapper.run(PTMapper.java:113)
at org.matsim.pt2matsim.mapping.PTMapper.mapScheduleToNetwork(PTMapper.java:74)
at org.matsim.pt2matsim.run.PublicTransitMapper.run(PublicTransitMapper.java:85)
at org.matsim.pt2matsim.run.PublicTransitMapper.main(PublicTransitMapper.java:63)
at ch.ethz.matsim.basel.schedule.MapScheduleWithNetwork.mapScheduleToNetwork(MapScheduleWithNetwork.java:71)
at ch.ethz.matsim.basel.schedule.MapScheduleWithNetwork.main(MapScheduleWithNetwork.java:37)
Caused by: java.lang.ClassNotFoundException: org.matsim.core.router.util.FastAStarLandmarksFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more

Errors when creating unmapped transit schedule

Hello everyone,

I am new to MATSim and currently building my first scenario. Since I don't know how to obtain a suitable public transport input, I was guided here.

I am modelling the public transport network in Brussels, and I have downloaded the latest GTFS file. According to the guidance, the first step should be creating an unmapped MATSim transit schedule, that's the place where my error occurred.

Basically, I am using IDEA with the below argument:
E:\Model\Mobility\PublicTransportBrussels\gtfs "dayWithMostServices" EPSG:32631 E:\Model\Mobility\PublicTransportBrussels\transitSchedule E:\Model\Mobility\PublicTransportBrussels\vehicleFile

The first insertion is the root folder of my GTFS file after unzipped, I decided to use the dayWithMostServices option and EPSG:32631 coordinate system (the same one with my network). The last two insertions are just two new folders I created for the output.

The exception I encountered after run is as the image below:
image

To further clarify, I created a new project for this pt2matsim pipeline (instead of adding code in the original MATSim pom.xml), what I did is just clone the URL of this project and generating the pipeline from the visual control (that may be the potential reason for this? Since it lacks of MATSim package? It's just my personal guessing)

Iโ€™m wondering if anyone is aware of the potential reason for this exception? Thanks very much for your help in advance! :)

Infinity freespeed

With version 18.7, I'm getting a freespeed of Infinity on some (but not all) artificial bus links. I have never seen this before.

I build my own schedule using a different library but use pt2matsim for its PTMapper.mapScheduleToNetwork().

<link id="pt_f-dq9-hrt_0364_57620" from="pt_f-dq9-hrt_0364" to="10396" length="21.800366456967428" freespeed="Infinity" capacity="9999.0" permlanes="1.0" oneway="1" modes="bus,artificial" >

Any ideas what causes this?

How does MATSim handle a freespeed of Infinity?

(cc: @mrieser)

Use shapes.txt from GTFS

Many (but not all) GTFS Providers include a shapes.txt file. This includes among others some major public transit networks such as VBB (Berlin), OV (the whole Netherlands), Wiener Linien (Vienna), Trafiklab GTFS Regional SL (Stockholm).
I was wondering whether it would make sense to use these shape files in order to have more waypoints (in addition to the stop coordinates) and thereby more precise routes. At least for VBB the shape files seem to provide significantly more detailed information than the stop locations only.
Is there any particular reason why shapes.txt is not used yet (except of no time to implement it - which is a very good reason :-) )?

pedestrian network very incomplete

I have been trying to get this application to build me a multimodial network for pedestrians and cars for a county. In my first attempts, I took the default config and added the pedestrian subnetwork ways described in the config below. (Note that while there may exist other way definitions for pedestrians, the ones I described should make up the bulk of pedestrian links in the network). However, I got all of maybe 1000 pedestrian links, which only seemed to be concentrated in a single neighborhood. Trying to debug this issue, I tried removing the vehicular subnetwork, but then the program fails with a null pointer exception on the converter. How am I approaching this configuration file wrong? Why might it fail when I remove the vehicular subnetwork definition?

Config File:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config SYSTEM "http://www.matsim.org/files/dtd/config_v2.dtd">
<config>
	<module name="OsmConverter" >
		<param name="keepPaths" value="false" />
		<param name="keepTagsAsAttributes" value="true" />
		<param name="keepWaysWithPublicTransit" value="true" />
		<param name="maxLinkLength" value="500.0" />
		<param name="osmFile" value="maricopa.osm" />
		<param name="outputCoordinateSystem" value="EPSG:2223" />
		<param name="outputNetworkFile" value="network.xml" />
		<param name="scaleMaxSpeed" value="false" />

		<parameterset type="routableSubnetwork" >
			<param name="allowedTransportModes" value="walk" />
			<param name="subnetworkMode" value="walk" />
		</parameterset>

		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="walk" />
			<param name="freespeed" value="0.8333333333333333" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="pedestrian" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="walk" />
			<param name="freespeed" value="0.8333333333333333" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="footway" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="walk" />
			<param name="freespeed" value="0.8333333333333333" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="sidewalk" />
			<param name="osmValue" value="both" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="walk" />
			<param name="freespeed" value="0.8333333333333333" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="sidewalk" />
			<param name="osmValue" value="right" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="walk" />
			<param name="freespeed" value="0.8333333333333333" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="sidewalk" />
			<param name="osmValue" value="left" />
		</parameterset>

                <parameterset type="routableSubnetwork" >
			<param name="allowedTransportModes" value="car" />
			<param name="subnetworkMode" value="car" />
		</parameterset>

		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="33.333333333333336" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="2.0" />
			<param name="oneway" value="true" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="motorway" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="22.22222222222222" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1500.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="true" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="motorway_link" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="22.22222222222222" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="2000.0" />
			<param name="lanes" value="2.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="trunk" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="13.88888888888889" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1500.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="trunk_link" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="22.22222222222222" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1500.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="primary" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="16.666666666666668" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1500.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="primary_link" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="8.333333333333334" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="secondary" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="8.333333333333334" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="1000.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="secondary_link" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="6.944444444444445" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="600.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="tertiary" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="6.944444444444445" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="600.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="tertiary_link" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="6.944444444444445" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="600.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="unclassified" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="4.166666666666667" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="600.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="residential" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="car" />
			<param name="freespeed" value="2.7777777777777777" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="300.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="highway" />
			<param name="osmValue" value="living_street" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="rail" />
			<param name="freespeed" value="44.44444444444444" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="9999.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="railway" />
			<param name="osmValue" value="rail" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="rail" />
			<param name="freespeed" value="11.11111111111111" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="9999.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="true" />
			<param name="osmKey" value="railway" />
			<param name="osmValue" value="tram" />
		</parameterset>
		<parameterset type="wayDefaultParams" >
			<param name="allowedTransportModes" value="rail" />
			<param name="freespeed" value="22.22222222222222" />
			<param name="freespeedFactor" value="1.0" />
			<param name="laneCapacity" value="9999.0" />
			<param name="lanes" value="1.0" />
			<param name="oneway" value="false" />
			<param name="osmKey" value="railway" />
			<param name="osmValue" value="light_rail" />
		</parameterset>
         </module>
</config>

Exception (when run without vehicle subnetwork or default ways):

2019-10-22 23:34:40,706  INFO OsmMultimodalNetworkConverter:127 Converting OSM to MATSim network...
2019-10-22 23:34:45,710  INFO OsmMultimodalNetworkConverter:147 remove unusable ways...
Exception in thread "main" java.lang.NullPointerException
        at org.matsim.pt2matsim.osm.OsmMultimodalNetworkConverter.getWayDefaultParams(OsmMultimodalNetworkConverter.java:546)
        at org.matsim.pt2matsim.osm.OsmMultimodalNetworkConverter.convertToNetwork(OsmMultimodalNetworkConverter.java:149)
        at org.matsim.pt2matsim.osm.OsmMultimodalNetworkConverter.convert(OsmMultimodalNetworkConverter.java:106)
        at org.matsim.pt2matsim.run.Osm2MultimodalNetwork.run(Osm2MultimodalNetwork.java:92)
        at org.matsim.pt2matsim.run.Osm2MultimodalNetwork.run(Osm2MultimodalNetwork.java:64)
        at org.matsim.pt2matsim.run.Osm2MultimodalNetwork.main(Osm2MultimodalNetwork.java:47)

Coordinate transformation during schedule building not working

Hello,

I created my transit schedule with the following command:
java -cp pt2matsim-18.1.1-shaded.jar org.matsim.pt2matsim.run.Gtfs2TransitSchedule input/gtfs "dayWithMostServices" "EPSG:2154" input/interm/schedule.xml input/interm/vehicles.xml
This runs without error messages, but after checking the coordinates of my stopping facilities, I noticed that they where still in WGS84.
As a test, I inserted a wrongly formatted coordinate system (say just "2154") and got an error at org.matsim.core.utils.geometry.transformations.TransformationFactory.getCoordinateTransformation.
So the transformation procedure seems to be called correctly but somehow afterwards isn't applied to the outputs.
I was thinking, this might be causing #29 because the network and schedule end up being in different coordinate systems.

Division by zero

In case the transit feed is empty LinkCandidateCreatorStandard crashes with an division by zero.

2019-02-27 16:57:04,326  INFO LinkCandidateCreatorStandard:82 Creating link candidates...
2019-02-27 16:57:04,326  INFO LinkCandidateCreatorStandard:83    search radius: 1350.0
2019-02-27 16:57:04,326  INFO LinkCandidateCreatorStandard:84    Note: loop links for stop facilities are created if no link candidate can be found.
2019-02-27 16:57:04,328  INFO Progress:39 Getting closest links ... 0/0 (NaN%)
2019-02-27 16:57:04,328  INFO Progress:39 Creating link candidates ... 0/0 (NaN%)
2019-02-27 16:57:04,328  INFO Progress:39 Setting candidate priorities ... 0/0 (NaN%)
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at org.matsim.pt2matsim.mapping.linkCandidateCreation.LinkCandidateCreatorStandard.load(LinkCandidateCreatorStandard.java:229)
	at org.matsim.pt2matsim.mapping.linkCandidateCreation.LinkCandidateCreatorStandard.<init>(LinkCandidateCreatorStandard.java:71)
	at org.matsim.pt2matsim.mapping.PTMapper.run(PTMapper.java:107)
	at org.matsim.pt2matsim.mapping.PTMapper.run(PTMapper.java:94)
	at org.matsim.pt2matsim.mapping.PTMapper.mapScheduleToNetwork(PTMapper.java:75)
	at at.ac.ait.dts.matsim.pt2matsim.GraphPreparations.createTransitScheduleAndCombinedNetwork(GraphPreparations.java:168)
	at at.ac.ait.dts.matsim.pt2matsim.GraphPreparations.main(GraphPreparations.java:96)

Please add a safeguard to the following line:
log.info("Average number of link candidates: " + nLC / linkCandidates.size());

Unsure if functionality "Vehicle working" exists

Hi,

i am currently unsure if the functionality 'vehicle working'/circulation/Umlauf is already implemented for Transit Vehicles.

I have checked most useful .java files in this repository - regardless having someone confirm, that the functionality doesn't already exist would help me loads since I am considering implementing this functionality myself.

Regards
Gero

Clean fields on read

I have a stop_times.txt file with the following first line,

trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled
137737, 5:20:00,5:20:00,1892,1,,0,0,

Turns out the space in front of the 5:20:00 broke pt2matsim here:

int arrivalTime = (int) Time.parseTime(line[col.get(GtfsDefinitions.ARRIVAL_TIME)]);

Because this isn't expecting and can't handle the white space. I don't know if this is something you want to handle, or if you just chalk this up to a bad file.

Accept valid GTFS feeds without calendar.txt

There are quite a few GTFS feeds without calendar.txt, currently pt2matsim fails on the false assumption that calendar.txt is a required file.
Per GTFS reference documentation, it's only conditionally required and it's also valid to manually include all valid dates using calendar_dates.txt.
https://developers.google.com/transit/gtfs/reference#calendartxt

throw new RuntimeException("File calendar.txt not found! ");

artificial lines

 I have tried PublicTransitMapper in pt2matsim. 226 "artificial lines" have been created. I wonder if the artificial lines are inescapable? Or there are other problems? Here is my network in Via:

image
The red lines are "artificial lines" .And there are about 126 bus lines with 17183 links in my network. Do you have some advice?
Hope to get your early reply!

running as standalone application?

I am trying to follow the instructions given in the readme.
After downloading the binary-file "pt2matsim-17.12.jar", tried to create a default config file with running the following command from the command line:
java -cp pt2matsim-17.12.jar org.matsim.pt2matsim.run.CreateDefaultOsmConfig

This only results in the following error-message:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/matsim/core/config/ConfigGroup
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.matsim.core.config.ConfigGroup
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more

Did I miss a step, or did I do something fundamentally wrong?

Default behavior when calendar_dates.txt is missing

Some GTFS files do not contain a calendar dates file. This shouldn't really affect the mapping, since the effective date range is nowhere verified (though this could later be a possible feature). Probably should just log a warning and move on.

Add as Maven dependency

I'm trying to add pt2matsim to my project jar so that I can include it in some production runs.

It works great from within my local IntelliJ setup if I place the compiled jar in lib/ and then point my project to it as a dependency, but then I can't package it up inside my own jar. I'm trying to figure out at the moment how to bring it in from my local maven repository, but that's not really straight forward.

Is there a place I can point my maven to so that I can bring org.matsim.pt2matsim as a project dependency?

HAFAS 2018 Constant NJ

When creating an unmapped schedule from latest Switzerland HAFAS [1]. I get the following error:

Exception in thread "main" java.lang.IllegalArgumentException: No enum constantorg.matsim.pt2matsim.hafas.HafasDefaults.Vehicles.NJ
at java.lang.Enum.valueOf(Enum.java:238)
at org.matsim.pt2matsim.hafas.HafasDefaults$Vehicles.valueOf(HafasDefaults.java:67)
at org.matsim.pt2matsim.hafas.HafasConverter.createTransitRoutesFromFPLAN(HafasConverter.java:104)
at org.matsim.pt2matsim.hafas.HafasConverter.run(HafasConverter.java:78)
at org.matsim.pt2matsim.run.Hafas2TransitSchedule.run(Hafas2TransitSchedule.java:74)
at org.matsim.pt2matsim.run.Hafas2TransitSchedule.main(Hafas2TransitSchedule.java:58)

Problem with creating TransitSchedule

Hi, I am ok with create multimode network, but not able to get schedule file..please help

D:\sfsong\Desktop\Simulation>java -cp pt2matsim-18.1.1-shaded.jar org.matsim.pt2matsim.run.Osm2TransitSchedule map.osm schedule.xml
2018-02-09 14:29:42,902 INFO Config:131 context=[file:/D:/sfsong/Desktop/Simulation/]
2018-02-09 14:29:42,983 INFO Config:131 context=[file:/D:/sfsong/Desktop/Simulation/]
2018-02-09 14:29:43,013 INFO MatsimXmlParser:147 starting to parse xml from file map.osm ...
2018-02-09 14:29:43,020 INFO Counter:61 node 1
2018-02-09 14:29:43,021 INFO Counter:61 node 2
2018-02-09 14:29:43,021 INFO Counter:61 node 4
2018-02-09 14:29:43,022 INFO Counter:61 node 8
2018-02-09 14:29:43,023 INFO Counter:61 node 16
2018-02-09 14:29:43,025 INFO Counter:61 node 32
2018-02-09 14:29:43,029 INFO Counter:61 node 64
2018-02-09 14:29:43,034 INFO Counter:61 node 128
2018-02-09 14:29:43,047 INFO Counter:61 node 256
2018-02-09 14:29:43,066 INFO Counter:61 node 512
2018-02-09 14:29:43,087 INFO Counter:61 node 1024
2018-02-09 14:29:43,111 INFO Counter:61 node 2048
2018-02-09 14:29:43,137 INFO Counter:61 node 4096
2018-02-09 14:29:43,190 INFO Counter:61 node 8192
2018-02-09 14:29:43,250 INFO Counter:61 node 16384
2018-02-09 14:29:43,380 INFO Counter:61 node 32768
2018-02-09 14:29:43,395 INFO Counter:61 way 1
2018-02-09 14:29:43,398 INFO Counter:61 way 2
2018-02-09 14:29:43,401 INFO Counter:61 way 4
2018-02-09 14:29:43,403 INFO Counter:61 way 8
2018-02-09 14:29:43,406 INFO Counter:61 way 16
2018-02-09 14:29:43,407 INFO Counter:61 way 32
2018-02-09 14:29:43,417 INFO Counter:61 way 64
2018-02-09 14:29:43,421 INFO Counter:61 way 128
2018-02-09 14:29:43,432 INFO Counter:61 way 256
2018-02-09 14:29:43,448 INFO Counter:61 way 512
2018-02-09 14:29:43,463 INFO Counter:61 way 1024
2018-02-09 14:29:43,492 INFO Counter:61 way 2048
2018-02-09 14:29:43,520 INFO Counter:61 relation 1
2018-02-09 14:29:43,523 INFO Counter:61 relation 2
2018-02-09 14:29:43,528 INFO Counter:61 relation 4
2018-02-09 14:29:43,537 INFO Counter:61 relation 8
2018-02-09 14:29:43,545 INFO Counter:61 relation 16
2018-02-09 14:29:43,547 INFO Counter:61 relation 32
2018-02-09 14:29:43,557 INFO Counter:61 relation 64
2018-02-09 14:29:43,566 INFO OsmDataImpl:51 Build map...
2018-02-09 14:29:43,567 INFO OsmDataImpl:56 Create ways...
2018-02-09 14:29:43,567 INFO Counter:61 # 1
2018-02-09 14:29:43,573 INFO Counter:61 # 2
2018-02-09 14:29:43,574 INFO Counter:61 # 4
2018-02-09 14:29:43,579 INFO Counter:61 # 8
2018-02-09 14:29:43,580 INFO Counter:61 # 16
2018-02-09 14:29:43,581 INFO Counter:61 # 32
2018-02-09 14:29:43,583 INFO Counter:61 # 64
2018-02-09 14:29:43,585 INFO Counter:61 # 128
2018-02-09 14:29:43,589 INFO Counter:61 # 256
2018-02-09 14:29:43,598 INFO Counter:61 # 512
2018-02-09 14:29:43,607 INFO Counter:61 # 1024
2018-02-09 14:29:43,647 INFO Counter:61 # 2048
2018-02-09 14:29:43,666 INFO OsmDataImpl:88 Create relations...
2018-02-09 14:29:43,667 INFO Counter:61 # 1
2018-02-09 14:29:43,669 INFO Counter:61 # 2
2018-02-09 14:29:43,670 INFO Counter:61 # 4
2018-02-09 14:29:43,671 INFO Counter:61 # 8
2018-02-09 14:29:43,675 INFO Counter:61 # 16
2018-02-09 14:29:43,676 INFO Counter:61 # 32
2018-02-09 14:29:43,676 INFO Counter:61 # 64
2018-02-09 14:29:43,703 INFO Counter:67 node 34326
2018-02-09 14:29:43,703 INFO Counter:67 way 3112
2018-02-09 14:29:43,705 INFO Counter:67 relation 92
Exception in thread "main" java.lang.NullPointerException
at org.matsim.pt2matsim.osm.OsmTransitScheduleConverter.createStopFacilityFromOsmNode(OsmTransitScheduleConverter.java:191)
at org.matsim.pt2matsim.osm.OsmTransitScheduleConverter.convert(OsmTransitScheduleConverter.java:109)
at org.matsim.pt2matsim.run.Osm2TransitSchedule.run(Osm2TransitSchedule.java:63)
at org.matsim.pt2matsim.run.Osm2TransitSchedule.main(Osm2TransitSchedule.java:46)

Disconnected Loop Links

Hi,

I've found that after mapping, some stop facility nodes created with loop links appear to be disconnected from the network. This creates runtime errors upon routing. I can inspect the source link of the referenced routing problem in VIA using the routing tool as well as zooming in close. A nearby loop-link does seem to be connected. See attached screenshots.

Manually inspecting a few other links in the network, I've found that several nodes are affected in this way.

Best,

Sid

senozon_via

senozon_via

senozon_via

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.