Server component of Conveyal Analysis
Branch: dev
Clone or download
Latest commit f7c1bfe Feb 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
migrations
src feat(worker-startup): log error from create-tags Feb 13, 2019
.gitignore chore(ignore): Ignore the default analysis.properties files and check… Apr 18, 2018
.travis.yml build(travis): analysis, not analyst Jul 3, 2018
LICENSE chore(copyright): Happy New Year! Jan 2, 2018
Procfile
README.md Update README.md Aug 29, 2018
analysis.properties.test test(controller): add tests for the region and bundle controllers Oct 25, 2018
analysis.properties.tmp feat(od): Manually download LODES Jul 25, 2018
pom.xml fix(worker-startup): remove resources from pom Feb 13, 2019

README.md

Conveyal Analysis

This is the server component of Conveyal Analysis, which allows users to create public transport scenarios and evaluate them in terms of accessibility.

Please note: At this time Conveyal does not provide support for third-party deployments of Analysis. We provide paid subscriptions to a hosted deployment of this system, as well as transportation planning consulting for subscribers.

For now, the project is open source primarily to prevent vendor lock-in for our clients and to ensure transparency in planning and decision making processes. It is likely that over time the system will become easier to deploy by third parties, but we do not plan to provide technical support for such deployments.

Configuration

Conveyal Analysis can be run locally (e.g. on your laptop) or on Amazon Web Services EC2 instances, depending on the configuration set in analysis.properties. With extensions requiring software development skills, it could be modified to run in other cloud-computing environments.

To get started, copy the template configuration (analysis.properties.tmp) to analysis.properties.

To run locally, use the default values in the template configuration file. offline = true will create a local instance that avoids cloud-based storage, database, or authentication services. To run regional accessibility analyses (as opposed to single-point isochrone analyses), you will need to set up an AWS S3 bucket and set the value of results_bucket. By default, analysis-backend will use the analysis database in a local MongoDB instance, so you'll also need to install and start a MongoDB instance.

To run on the cloud, we use Auth0 for authentication and S3 for storage; configure these services as needed, then set the corresponding variables including:

  • auth0-client-id: your Auth0 client ID
  • auth0-secret: your Auth0 client secret
  • database-uri: URI to your Mongo cluster
  • database-name: name of project database in your Mongo cluster
  • frontend-url: URL of the analysis-ui frontend (see below)
  • bundle_bucket: S3 bucket for storing GTFS bundles and built transport networks
  • grid_bucket: S3 bucket for storing opportunity dataset grids
  • results_bucket: S3 bucket for storing regional analysis results

You will need S3 credentials set up in your environment or in ~/.aws for an identity that is allowed to access all the buckets above. If you have multiple profiles, you can use the AWS_PROFILE variable in the environment to choose which AWS credentials profile will be used.

Building and running

Once you have configured analysis.properties and started mongo locally, build the application with mvn package and start it with java -Xmx2g -jar target/analysis.jar

Next, follow the instructions to start the analysis-ui frontend . Once that is running, you should be able to log in without authentication (using the frontend URL, e.g. http://localhost:9966). Note that the default value of the analysis-backend frontend-url variable is a prebuilt copy of the frontend that relies on Conveyal's authentication setup; in general this will not work with local installations, so this value should be ignored.

Creating a development environment

In order to do development on the frontend, backend, or on R5, which we use for performing the analyses, you'll want a local development environment. We use IntelliJ IDEA (free/community version is fine) and add analysis-backend as a new project from existing sources. We also typically clone R5 with git, then use the green plus button in the Maven panel to add R5 as a Maven Project within the same IntelliJ project. Check to make sure that the version of R5 matches the version specified in the analysis-backend pom.xml.

You can then create a run configuration for com.conveyal.taui.AnalysisServer, which is the main class. You will need to configure the options mentioned above.