Coder Social home page Coder Social logo

flowprint's Introduction

Flowprint

Visualise dynamics of spatial networks in Processing. Originally produced to deal with urban networks.

Feature Summary

  • Import network representations in NCOL format, including weighted networks based on euclidean distances.
  • Import node locations (lat/long or northing/easting).
  • Visualise topology of spatial networks.
  • Visualise node attributes.
  • Visualise node labels.
  • Import and construct network routes.
  • Visualise flows of 'vessels' or 'passengers' on network routes.
  • Import real trip information for playback of flows.
  • Capture vector or video output.

Examples

See the London Bus Flowprint example. For trip playback, see the London Oyster Flows, for topology view, see the Boris Bikes flowprint.

Basic Setup

For basic topology and simulated flows functionality, you need two plain-text files:

  • Place an NCOL network representation in the 'dat' subfolder, with the naming convention MyNetworkName.ncol. In default mode, the third column of this file is a 'line' variable describing the route number an edge belongs to. This is useful for public transit networks. In attributes mode the third column can be an edge weight (see below).
  • Place a CSV file with "latitude", "longitude" (or alternatively, "northing"/"easting") and "id" headers describing the location of nodes in the 'dat' subfolder, with the naming convention MyNetworkName_stops.csv.
  • The station IDs in the previous two files should correspond.
  • Simulated flows will be based on routes constructed by Flowprint from your NCOL file. Flowprint doesn't support loops or forks in routes right now. You'll have to define them as new routes.

Trip Playback

  • Add a trips CSV file in the 'dat' subfolder, with the naming convention MyNetworkName.trips, of the format:

    TripID, originID, destID, startTime, endTime

  • The network will then try to load a shortest path description file. You can produce this using iGraph. This is a tab delimited (TSV) file of the form:

    [PATH1]\t[PATH2]\t[PATH3]

  • Where each path is a comma delimited list of node IDs. The file describes a matrix Tij where each entry describes the shortest path from node i to node j. New rows in the matrix are delimited by a newline. Node IDs should correspond to those in the previous two files.

  • This gives Flowprint the routing information required to visualise a trip from an origin to a destination.

  • Flowprint will search for your shortest paths file in the 'dat' subfolder, with naming convention MyNetworkName_shortest_paths.rdat

  • Support for multiple trip files exist. More doc on that soon.

Weighted Networks

  • You can use the third column in your NCOL file to represent edge weights for visualisation. Switch on the 'attribs' configuration variable to visualise these weights in topology view.
  • Other node attributes can be loaded in via CSV files of the form MyNetworkName_attribute.csv. More doc on this soon, although this functionality is generally covered by other network packages such as Gephi.

Configuration

  • Coming soon...

Dependencies

You'll need the Processing visualisation framework, as well as the ControlP5 and gicentre-utils libraries.

flowprint's People

Watchers

 avatar  avatar  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.