-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
We're trying to deploy an OTP instance with germany-wide OSM and NeTEx data (EU-Profile) and are having some issues.
Expected behavior
The NeTEx import should finish without NullPointerException and produce a routable graph.
Observed behavior
A Major and several minor compatibility issues which all caused NullPointerExceptions during the import. This raised some questions on how to tackle these issues in the best way with regard to the given dataset and the EU-profile specification.
Note: Whenever I speak of the EU-Profile (EPIP) specification, I refer to the latest draft (2019-06) I found on the internet, since I don’t yet have access to the final document.
StopAssignments without QuayRef:
In our Dataset, the PassengerStopAssignment elements are lacking QuayRef and only provide StopPlaceRef. This seems to comply with the EU-Profile, since QuayRef are not required by the Profile. On the other hand, those Quays are modeled in the StopPlace elements, but never referenced. I think this is an issue with the dataset and hope that the data supplier is able to fix it. But I can imagine that we still might have lines without QuayRef due to less detailed data.
Since the Netex-Import seems to rely heavily on QuayRef being set, would it be feasible to support datasets without those?
RepresentedByGroupRef
Inside the RouteMapper.java, the method findOrCreateAuthority expects the RepresentedByGroupRef field to be set, which our dataset doesn’t provide. I can’t find it in the EU-Profile either, but an AuthorityRef is always set so I assume its safe to use this.
Is this correct?
GroupOfStopPlaces without Name and Centroid
OTP expects the Name and Centroid fields to be set for the GroupOfStationsMapper to work, but the EU-Profile doesn’t list them as part of GroupOfStopPlaces at all.
How relevant are these for OTPs functionality?
Minor Issues
I think these are not as relevant and just caused by poor modeling of certain lines but wanted to list them nevertheless.
- ServiceCalendarFrame without dayType
- TimeTableFrame without vehicleJourney
Version of OTP used (exact commit hash or JAR name)
90e8f89
plus some minor changes to locate further NullPointerExceptions I made here:
HBTGmbH@c6e1011
Data sets in use (links to GTFS and OSM PBF files)
NeTEx-Dataset
Note: The ZIP-File seems to be encoded in ISO-8859-1, so I had to specify the encoding in ZipFileDataSource.java
Command line used to start OTP
Intellij Run Configuration with following CLI arguments:
--loadStreet --save ....\otp2-data\src\main\resources
Router config and graph build config JSON
build-config:
{
"dataImportReport": true,
"extraEdgesStopPlatformLink": true,
"stationTransfers": true,
"netex": {
"groupFilePattern": "(.*)\\/.*\\.xml"
}
}
Steps to reproduce the problem
Run NeTEx import with the dataset linked above