Giter VIP home page Giter VIP logo

transitland-processing-animation's Introduction

Visualizing transit frequency from the command line

Using Mapzen's Transitland API to download transit schedule data and Processing with Unfolding Maps to create spatial-temporal visualizations.

See this blog post for more info: https://mapzen.com/blog/animating-transitland/

Here is an example animation generated for San Francisco with a single command:

python transitflow.py --name=san_francisco --bbox=-122.515411,37.710714,-122.349243,37.853983 --clip_to_bbox

IMAGE ALT TEXT

See here for more transit flow visualizations.

Install Processing

  1. Download Processing 3.
  2. Download Unfolding Maps version 0.9.9 for Processing 3.
  3. Navigate to ~/Documents/Processing/libraries on your machine.
  4. Drag and drop the unzipped Unfolding Maps folder into ~/Documents/Processing/libraries.
  5. Open Processing, navigate to Sketch > Import Library > Add Libary. Search for "Video Export" and click Install.
  6. Quit and re-open Processing.

Instructions

  • Download the repository, unzip it and cd into it
  • pip install -r requirements.txt to install the python requirements (pandas, numpy, requests)
  • cd transitflow

Now, you are ready to download transit schedule data and generate visualizations.

There are two ways to go about using this tool:

1) Search by transit operator Onestop ID

You can visualize a single transit operator by passing in the operator's Onestop ID. What's a Onestop ID, you ask? As part of Transitland's Onestop ID Scheme, every transit operator, route, feed and stop are assigned a unique identifier called a Onestop ID.

You can look up an operator's Onestop ID using the Transitland Feed Registery. For example, the Onestop ID for San Francisco BART is o-9q9-bart.

Visualize one day of BART transit flows:

  • python transitflow.py --name=bart --operator=o-9q9-bart

IMAGE ALT TEXT

2) Search by bounding box

You can also visualize transit flows by searching for all operators within a bounding box. The bounding box must be in the format: West, South, East, North. I like using bboxfinder to draw bounding boxes. For example, here's the command to visualize transit flows in Chicago:

  • python transitflow.py --name=chicago --bbox=-87.992249,41.605175,-87.302856,42.126747 --clip_to_bbox --exclude=o-9-amtrak,o-9-amtrakcharteredvehicle

IMAGE ALT TEXT

Note, the use of --clip_to_bbox. This command will clip the dataset to only include transit vehicle trips within the specified bounding box, both in the geo-visualization and in the vehicle count calculations that drive the stacked bar chart.

Also, note the optional use of --exclude. This command will exclude specified operators, Amtrak in this case.

Play your animation

Navigate to sketches\{name}\{date}\sketch and open the sketch.pde file.

This should open the Processing application. Simply click Play or command + r to play the animation.

Change map providers

Cycle through the first two rows on the keyboard (1 to 0, q to u) to see the built in map provider options.

Read more about Unfolding Maps map providers here: http://unfoldingmaps.org/tutorials/mapprovider-and-tiles.html

Panning and zooming

You can pan around on the map by clicking and dragging it. You can zoom in with Shift + "+" and zoom out with "-".

Exporting to video

Open sketch.pde file.

  • For a quick, medium quality video, set boolean recording = true;
  • For a high quality video, set boolean recording = true; and boolean HQ = true;. This will generate 3,600 .tiff frames that can be stiched together using ffmpeg or Processing's built in movie maker tool.

Command line arguments

Key Status Description Example
--name required The name of your project --name=boston
--date optional Defaults to today's date --date=2017-08-15
--operator optional Operator Onestop ID --operator=o-drt-mbta
--bbox optional West, South, East, North --bbox=-71.4811,42.1135,-70.6709,42.6157
--clip_to_bbox optional Clip results to bounding box --clip_to_bbox
--exclude optional Operators to be excluded --exclude=o-9-amtrak
--apikey optional Mapzen API key --apikey=mapzen-abc1234

A Mapzen API Key is optional, but recommended for faster results. Sign up for a Mapzen API Key here.

Troubleshooting

If your visualization is not working as expected...

  • Make sure that the operator of interest actually has service on the specified date (no --date argument defaults to today's date). Some operators are better than others at sharing updated data. For example, Mexico City's Metrobús has a service_end_date of 2016-08-17. So, you would need pass in a --date=2016-08-17 or earlier or to download and visualize the Metrobús.

  • Make sure that Transitland has coverage in your area of interest. You can search for transit operators and feeds using the Transitland Feed Registery. Is Transitland missing a feed? Let us know!

Attribution

Sources of inspiration

See more visualizations created with TransitFlow here: https://vimeopro.com/willgeary/transit-flows

Press & Recognition

transitland-processing-animation's People

Contributors

danie avatar irees avatar willgeary avatar

Watchers

 avatar

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.