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.
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 IDauth0-secret
: your Auth0 client secretdatabase-uri
: URI to your Mongo clusterdatabase-name
: name of project database in your Mongo clusterfrontend-url
: URL of the analysis-ui frontend (see below)bundle_bucket
: S3 bucket for storing GTFS bundles and built transport networksgrid_bucket
: S3 bucket for storing opportunity dataset gridsresults_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.
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
You can then follow the instructions to get the analysis-ui frontend started
with yarn start
. If you want to avoid starting the frontend yourself, the default value of frontend-url
will use
a prebuilt copy of the frontend provided by Conveyal, but there are no guarantees this version of the frontend will be
compatible with the version of analysis-backend you are using.
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.