Skip to content

Commit

Permalink
Merge pull request #33 from ibi-group/merge-dev-1.x
Browse files Browse the repository at this point in the history
Merge dev 1.x
  • Loading branch information
landonreed authored May 1, 2020
2 parents 9718302 + 30b9bf6 commit 9d4cc3e
Show file tree
Hide file tree
Showing 375 changed files with 8,661 additions and 6,741 deletions.
3 changes: 2 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ To be completed by pull request submitter:
- [ ] **roadmap**: Check the [roadmap](https://github.com/orgs/opentripplanner/projects/1) for this feature or bug. If it is not already on the roadmap, PLC will discuss as part of the review process.
- [ ] **tests**: Have you added relevant test coverage? Are all the tests passing on [the continuous integration service (Travis CI)](https://github.com/opentripplanner/OpenTripPlanner/blob/master/docs/Developers-Guide.md#continuous-integration)?
- [ ] **formatting**: Have you followed the [suggested code style](https://github.com/opentripplanner/OpenTripPlanner/blob/master/docs/Developers-Guide.md#code-style)?
- [ ] **documentation**: If you are adding a new configuration option, have you added an explanation to the [configuration documentation](docs/Configuration.md) tables and sections?
- [ ] **changelog**: add a bullet point to the [changelog file](https://github.com/opentripplanner/OpenTripPlanner/blob/master/docs/Changelog.md) with description and link to the linked issue

To be completed by @opentripplanner/plc:

- [ ] reviews and approvals by 2 members, ideally from different organizations
- [ ] **before merging**: add a bullet point to the [changelog file](https://github.com/opentripplanner/OpenTripPlanner/blob/master/docs/Changelog.md) with description and link to the linked issue
- [ ] **after merging**: update the relevant card on the [roadmap](https://github.com/orgs/opentripplanner/projects/1)
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ gen-py/
_site/
/otp
/otp-batch-analyst
*.DS_Store
10 changes: 5 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
dist: trusty # jdk 8 not available on xenial
language: java
# OpenTripPlanner requires Java 8 and Travis doesn't (yet) support OpenJDK 8

jdk:
- oraclejdk8
- openjdk8

# Replace Travis's default Maven installation step with a no-op.
# This avoids redundantly pre-running 'mvn install -DskipTests' every time.
install: true
Expand Down Expand Up @@ -34,7 +34,7 @@ after_success:
# Secure envs are OSSRH_JIRA_USERNAME, OSSRH_JIRA_PASSWORD, GPG_KEY_NAME, GPG_PASSPHRASE
env:
global:
- JAVA_OPTS=-Xmx2g
- JAVA_OPTS=-Xmx2g

# If sudo is disabled, CI runs on container based infrastructure (allows caching &c.)
sudo: false
Expand Down Expand Up @@ -72,4 +72,4 @@ deploy:
skip_cleanup: true
on:
repo: ibi-group/OpenTripPlanner
all_branches: true
all_branches: true
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ After seven years of hard work and almost 10,000 commits from over 100 contribut

## Mailing Lists

The main forums through which the OpenTripPlanner community organizes development and provides mutual assistance are our two Google discussion groups. Changes and extensions to OTP are debated on the developers' list (opentripplanner-dev). More general questions and announcements of interest to non-developer OTP users should be directed to the opentripplanner-users list.
The main forums through which the OpenTripPlanner community organizes development and provides mutual assistance are our two Google discussion groups. Changes and extensions to OTP are debated on the developers' list - [opentripplanner-dev](https://groups.google.com/forum/#!forum/opentripplanner-dev). More general questions and announcements of interest to non-developer OTP users should be directed to the [opentripplanner-users](https://groups.google.com/forum/#!forum/opentripplanner-users) list.
2 changes: 1 addition & 1 deletion docs/Basic-Tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,4 @@ There are a number of different resources available through the HTTP API. Beside

- Return all unique sequences of stops on the TriMet Green rail line: [http://localhost:8080/otp/routers/default/index/routes/TriMet:4/patterns](http://localhost:8080/otp/routers/default/index/routes/TriMet:4/patterns)

We refer to this as the Index API. It is also documented [in the OTP HTTP API docs](http://otp-docs.ibi-transit.com/api/resource_IndexAPI.html).
We refer to this as the Index API. It is also documented [in the OTP HTTP API docs](http://otp-docs.ibi-transit.com/api/resource_IndexAPI.html).
21 changes: 20 additions & 1 deletion docs/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,41 @@
# Changelog

## 1.5 (in progress)
## 1.5.0 (in progress)

- Add application/x-protobuf to accepted protobuf content-types (#2839)
- Add Way Property Set for the UK (#2818)
- Fixes surefire test failure during build (#2816)
- Improve documentation for `mode` routing parameter (#2809)
- Disable linking from already linked stops (#2372)

## 1.4 (2019-07-30)

- Remove Open Traffic prototype code (#2698)
- Improved configuration documentation
- Update onebusaway-gtfs to latest version from OBA project (#2636)
- Remove the coupling to OneBusAway GTFS within OTP's internal model by creating new classes replacing the external classes (#2494)
- Allow OTP to search more service days for transit service (#2592)
- Allow itineraries in response to be sorted by duration (#2593)
- Add support for GTFS-flex services: flag stops, deviated-route service, and call-and-ride (#2603)
- Fix reverse optimization bug (#2653, #2411)
- Remove CarFreeAtoZ from list of deployments
- Fix bike rented though no bikes/spaces are available (#2735)
- increase GTFS-realtime feeds size limit from 64MB to 2G (#2738)
- Fix XML response serialization (#2685)
- Refactor InterleavedBidirectionalHeuristic (#2671)
- Add "Accept" headers to GTFS-RT HTTP requests (#2796)
- Fix minor test failure against BANO geocoder (#2798)
- Fix frequency bounds checking (#2540)
- Fix JTS coordinate order for Polygons/Polylines (#2784)
- Add JAXB API to allow compilation under Java 11
- Remove dependency on Conveyal jackson2-geojson
- Changed calculation of slope costs (#2579)
- Replace Java built in serialization with faster Kryo (#2681)
- Support OSM highway=razed tag (#2660)
- Memory leak fix (#2655)
- Add bicimad bike rental updater (#2503)
- Add Smoove citybikes updater (#2515)
- Switched to single license file, removing all OTP and OBA file license headers

## 1.3 (2018-08-03)

Expand Down
51 changes: 31 additions & 20 deletions docs/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,10 @@ config key | description | value type | value default | notes
`elevationBucket` | If specified, download NED elevation tiles from the given AWS S3 bucket | object | null | provide an object with `accessKey`, `secretKey`, and `bucketName` for AWS S3
`readCachedElevations` | If true, reads in pre-calculated elevation data. | boolean | true | see [Elevation Data Calculation Optimizations](#elevation-data-calculation-optimizations)
`writeCachedElevations` | If true, writes the calculated elevation data. | boolean | false | see [Elevation Data Calculation Optimizations](#elevation-data-calculation-optimizations)
`elevationUnitMultiplier` | Specify a multiplier to convert elevation units from source to meters | double | 1.0 | see [Elevation unit conversion](#elevation-unit-conversion)
`fares` | A specific fares service to use | object | null | see [fares configuration](#fares-configuration)
`osmNaming` | A custom OSM namer to use | object | null | see [custom naming](#custom-naming)
`osmWayPropertySet` | Custom OSM way properties | string | `default` | options: `default`, `norway`
`osmWayPropertySet` | Custom OSM way properties | string | `default` | options: `default`, `norway`, `uk`
`staticBikeRental` | Whether bike rental stations should be loaded from OSM, rather than periodically dynamically pulled from APIs | boolean | false |
`staticParkAndRide` | Whether we should create car P+R stations from OSM data | boolean | true |
`staticBikeParkAndRide` | Whether we should create bike P+R stations from OSM data | boolean | false |
Expand Down Expand Up @@ -140,7 +141,6 @@ yield very realistic transfer time expectations. This works particularly well in
the layering of non-intersecting ways is less prevalent. Here's an example in the Netherlands:

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openstreetmap.org/export/embed.html?bbox=4.70502644777298%2C52.01675028000761%2C4.7070810198783875%2C52.01813190694357&amp;layer=mapnik" style="border: 1px solid black"></iframe><small><a href="http://www.openstreetmap.org/#map=19/52.01744/4.70605">View Larger Map</a></small>

When such micro-mapping data is not available, we need to rely on information from GTFS including how stops are grouped
into stations and a table of transfer timings where available. During the graph build, OTP can create preferential
connections between each pair of stops in the same station to favor in-station transfers:
Expand Down Expand Up @@ -244,6 +244,21 @@ order as the above-mentioned SRTM data, which is also the default for the popula
DEM files(USGS DEM) is not supported by OTP, but can be converted to GeoTIFF with tools like [GDAL](http://www.gdal.org/).
Use `gdal_merge.py -o merged.tiff *.dem` to merge a set of `dem` files into one `tif` file.

See Interline [PlanetUtils](https://github.com/interline-io/planetutils) for a set of scripts to download, merge, and resample [Mapzen/Amazon Terrain Tiles](https://registry.opendata.aws/terrain-tiles/).

### Elevation unit conversion

By default, OTP expects the elevation data to use metres. However, by setting `elevationUnitMultiplier` in `build-config.json`,
it is possible to define a multiplier that converts the elevation values from some other unit to metres.

```JSON
// build-config.json
{
// Correct conversation multiplier when source data uses decimetres instead of metres
"elevationUnitMultiplier": 0.1
}
```

### Elevation Data Calculation Optimizations

Calculating elevations on all StreetEdges can take a dramatically long time. In a very large graph build for multiple Northeast US states, the time it took to download the elevation data and calculate all of the elevations took 5,509 seconds (roughly 1.5 hours).
Expand Down Expand Up @@ -333,10 +348,11 @@ It is possible to adjust how OSM data is interpreted by OpenTripPlanner when bui
OSM tags have different meanings in different countries, and how the roads in a particular country or region are tagged affects routing. As an example are roads tagged with `highway=trunk (mainly) walkable in Norway, but forbidden in some other countries. This might lead to OTP being unable to snap stops to these roads, or by giving you poor routing results for walking and biking.
You can adjust which road types that are accessible by foot, car & bicycle as well as speed limits, suitability for biking and walking.

There are currently 2 wayPropertySets defined;
There are currently 3 wayPropertySets defined;

- `default` which is based on California/US mapping standard
- `norway` which is adjusted to rules and speeds in Norway
- `uk` which is adjusted to rules and speed in the UK

To add your own custom property set have a look at `org.opentripplanner.graph_builder.module.osm.NorwayWayPropertySet` and `org.opentripplanner.graph_builder.module.osm.DefaultWayPropertySet`. If you choose to mainly rely on the default rules, make sure you add your own rules first before applying the default ones. The mechanism is that for any two identical tags, OTP will use the first one.

Expand Down Expand Up @@ -384,18 +400,23 @@ or MultiPolygons. If any part of the geometry of a StreetEdge intersects any par
This section covers all options that can be set for each router using the `router-config.json` file.
These options can be applied by the OTP server without rebuilding the graph.

config key | description | value type | value default | notes
---------- | ----------- | ---------- | ------------- | -----
`routingDefaults` | Default routing parameters, which will be applied to every request | object | | see [routing defaults](#routing-defaults)
`timeout` | maximum time limit for route queries | double | null | units: seconds; see [timeouts](#timeouts)
`timeouts` | when returning multiple itineraries, set different maximum time limits for the 1st, 2nd, etc. itinerary | array of doubles | `[5, 4, 2]` | units: seconds; see [timeouts](#timeouts)
`requestLogFile` | Path to a plain-text file where requests will be logged | string | null | see [logging incoming requests](#logging-incoming-requests)
`boardTimes` | change boarding times by mode | object | null | see [boarding and alighting times](#boarding-and-alighting-times)
`alightTimes` | change alighting times by mode | object | null | see [boarding and alighting times](#boarding-and-alighting-times)
`updaters` | configure real-time updaters, such as GTFS-realtime feeds | object | null | see [configuring real-time updaters](#configuring-real-time-updaters)

## Routing defaults

There are many trip planning options used in the OTP web API, and more exist
internally that are not exposed via the API. You may want to change the default value for some of these parameters,
i.e. the value which will be applied unless it is overridden in a web API request.

A full list of them can be found in the RoutingRequest class

[in the Javadoc](http://otp-docs.ibi-transit.com/JavaDoc/org/opentripplanner/routing/core/RoutingRequest.html).

Any public field or setter method in this class can be given a default value using the routingDefaults section of
A full list of them can be found in the RoutingRequest class [in the Javadoc](http://otp-docs.ibi-transit.com/JavaDoc/org/opentripplanner/routing/core/RoutingRequest.html). Any public field or setter method in this class can be given a default value using the routingDefaults section of
`router-config.json` as follows:

```JSON
Expand All @@ -413,8 +434,7 @@ Any public field or setter method in this class can be given a default value usi
The routing request parameter `mode` determines which transport modalities should be considered when calculating the list
of routes.

Some modes (mostly bicycle and car) also have optional qualifiers `RENT`, `HAIL` or `PARK` to specify if vehicles are to be parked at a station or rented. In theory
this can also apply to other modes but makes sense only in select cases which are listed below.
Some modes (mostly bicycle and car) also have optional qualifiers `RENT`, `HAIL` or `PARK` to specify if vehicles are to be parked at a station or rented. In theory this can also apply to other modes but makes sense only in select cases which are listed below.

Whether a transport mode is available highly depends on the input feeds (GTFS, OSM, bike sharing feeds) and the graph building options supplied to OTP.

Expand Down Expand Up @@ -637,7 +657,7 @@ The generic KML needs to be in format like
</Document></kml>
```

### Configuration
### Configuring real-time updaters

Real-time data can be provided using either a pull or push system. In a pull configuration, the GTFS-RT consumer polls the
real-time provider over HTTP. That is to say, OTP fetches a file from a web server every few minutes. In the push
Expand Down Expand Up @@ -724,15 +744,6 @@ connect to a network resource is the `url` field.
// Streaming differential GTFS-RT TripUpdates over websockets
{
"type": "websocket-gtfs-rt-updater"
},

// OpenTraffic data
{
"type": "opentraffic-updater",
"frequencySec": -1,
// relative to OTP's working directory, where is traffic data stored.
// Should have subdirectories z/x/y.traffic.pbf (i.e. a tile tree of traffic tiles)
"tileDirectory": "traffic"
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion docs/Deployments.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ The following are known deployments of OTP in a government- or agency-sponsored
* **Atlanta, Georgia** The Metropolitan Atlanta Rapid Transit Authority's (MARTA) [trip planner](http://itsmarta.com/planatrip.aspx) and the Atlanta region's transit information hub [atltransit.org](https://atltransit.org/) both use OTP to power their website trip planners.
* **Boston, Massachusetts** The [Massachusetts Bay Transportation Authority trip planner](https://www.mbta.com/trip-planner).
* **Seattle, Washington** The [Sound Transit Trip Planner](https://www.soundtransit.org/tripplanner) is based on OTP. OTP also powers the trip planning feature of the [OneBusAway native apps](http://onebusaway.org/) in the Puget Sound region. Technical details are [here](https://github.com/OneBusAway/onebusaway-android/blob/master/SYSTEM_ARCHITECTURE.md#add-trip-planning-andor-bike-share-optional).
* **Arlington, Virginia** The [commute planning site](http://www.carfreeatoz.com/) for the Washington, DC metropolitan area depends on OpenTripPlanner to weigh the costs and benefits of various travel options, making use of profile routing.
* **Tampa, Florida** Hillsoborough Area Regional Transit uses an OpenTripPlanner server to power the trip planning feature of the [OneBusAway native apps](http://onebusaway.org/) in their region. Technical details are [here](https://github.com/OneBusAway/onebusaway-android/blob/master/SYSTEM_ARCHITECTURE.md#add-trip-planning-andor-bike-share-optional).
* [**Piemonte Region, Italy**](https://map.muoversinpiemonte.it/#planner) and the [**City of Torino**](https://www.muoversiatorino.it/) built on OpenTripPlanner by [5T](http://www.5t.torino.it/).
* [**Valencia, Spain**](http://www.emtvalencia.es/geoportal/?lang=en_otp) from the Municipal Transport Company of Valencia S.A.U.
* [**Grenoble, France**](http://www.metromobilite.fr/) from SMTC, Grenoble Alpes métropole, l'État Français, the Rhône-alpes region, the Isère council and the City of Grenoble.
* **Rennes, France** where the STAR network provides an OTP client for [iOS](https://itunes.apple.com/us/app/starbusmetro/id899970416?mt=8), [Android](https://play.google.com/store/apps/details?id=com.bookbeo.starbusmetro), Windows Phone et Web.
* **Alençon, France** integrated urban and school bus network [planner from Réunir Alençon](https://altobus.com/mon-itineraire/).
* [**Poznań, Poland**](http://ztm.poznan.pl/#planner) from Urban Transport Authority of Poznań (ZTM Poznan).
* **Trento Province, Italy** - [ViaggiaTrento](https://play.google.com/store/apps/details?id=eu.trentorise.smartcampus.viaggiatrento) and [ViaggiaRovereto](https://play.google.com/store/apps/details?id=eu.trentorise.smartcampus.viaggiarovereto)
were implemented as part of the [SmartCampus Project](http://www.smartcampuslab.it), a research project founded by [TrentoRise](http://trentorise.eu), [UNITN](http://www.unitn.it), and [FBK](http://www.fbk.eu).
Expand Down
Loading

0 comments on commit 9d4cc3e

Please sign in to comment.