Giter Site home page Giter Site logo

pbr's People

Contributors

ifed3 avatar strangerloops avatar thcrock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

thcrock zscore

pbr's Issues

Web app for viewing OSRM routes

We need to view OSRM routes to help us evaluate the quality of the output of our OSRM profiles over time. It should do these things:

  1. Take in user input in some way (typing in an address, moving a marker, etc)
  2. Query the OSRM instance described in #2 (until it's opened up, just use some sample OSRM output to aid development)
  3. Map the results
  4. Display the turn by turn directions elsewhere on the screen

Set up nginx for the server OSRM instance

We have an OSRM instance in a screen session on the server, but this is tough to automatically restart when we make changes. Rather we should daemonize it so after an update we can call 'sudo service osrm restart' or something.

Also, we want to expose it to the world so we can run requests from our local computers.

As it happens, we can kill two birds with one stone by setting up nginx on the server.

https://www.digitalocean.com/community/tutorials/how-to-set-up-an-osrm-server-on-ubuntu-14-04

A lot of the work from that tutorial is already done, but the latter part of it we should do.

Create PostGIS instance on server

We'll want a PostGIS database on the server to use during graph rebuilds as we start adding in GIS data (road closures, pavement quality data) to the profile

Audit treatment of bike lanes in bike profile

We noticed during sanity testing that the bike profile wasn't working very well with bike lanes; it would often recommend trips on terrible streets when a bike lane alternative was close by. Let's figure out why, and correct it.

Add 2-way stop penalty

Scenario: You have two choices of bike route, going east-west. One is a very low-stress neighborhood street. The other is a semi-major street without a bikelane (I'm thinking of the alternate streets, like Wellington, Webster, etc). The former would be very desirable, except when crossing a major thoroughfare. The neighborhood street would likely have a two-way stop at the major street, while the alternate street would likely have a light. The two-way stop is generally not something that is heavily penalized, but to me it should be, to the point where the router ends up taking me on the alternate street.

This applies much more when the cross street is major/high-traffic.

This task is to add this capability to a bike profile.

Deploy Node.js alongside nginx

Set up nginx as a reverse proxy alongside node.js. We can operate nginx primarily as a frontend server providing static styling and mapping assets. Then utilize node to serve routing, dynamic data and as a daemon handling OSRM recycles.

Add city bus route penalty

In many cases, if you're in a bike lane and you happen to be biking alongside a bus, the ride will be much more stressful. This is true if:

  1. The bus ends up going about the same average speed as you. Some buses are too fast (can't think of any examples, but they exist I'm sure) to cause this problem for most bikers, some buses are too slow (Halsted!).
  2. The bus has to cross the bike lane to get to the stop, or there is no bike lane. This is almost always true in Chicago, but it is changing. The new Clybourn/Division lane is supposed to remove conflicts between buses and bikes, so we do need a way of making sure we don't penalize that.

So we want to cross-reference bus route shape files with our potential routes, and potentially get average bus speeds from the GTFS data (or external speed data?)

We don't have to get this all into OSM; here's an example of a profile that queries PostGIS directly:
https://github.com/Project-OSRM/osrm-backend/blob/master/profiles/examples/postgis.lua

Create cyclist preference survey

We should create a survey with questions about the kinds of streets/routes people prefer to use for cycling and share it with Hack Night participants & others to get a better sense for the rules we'll want to implement

review this survey

Cycling Survey

  1. Approximately how often do you ride a bike?
    Less than 1/month, 1/month, 1/week, 3+/week
  2. Approximately, how often do you ride an unfamiliar route?
    Less than 1/month, 1/month, 1/week, 3+/week
  3. What tool do you most often use to select your routes?
    Chicago Bike Map
    Google maps (for bikes)
    Other: ___________
  4. How often are you satisfied with the routes you select with the tool you selected above?
    Never
    Rarely
    Sometimes
    Usually
    Always
  5. In order of importance, please rank the factors you consider when selecting a route:
    Distance
    Safety
    Street surface smoothness
    Sun/Shade
    Traffic flow direction
    Traffic volume
    Other: ____________
  6. Would you be interested in helping test a new mobile bike navigation application?
    If yes, then email: ___________________
    No thanks

See what Mapzen is up to with Valhalla

Mapzen has made Valhalla, a routing service based on OSRM (like PBR). They allow the user to change some options for all modes but bicycling!

Why are they building this?
What road blocks have they run into?
Why is bicycling the only one without options?
Will they accept contributions and ideas from the PBR team?

Propagate profile changes to server OSRM instance

When we make profile changes we want to automatically (or as easily as possible) update the server. We should have a script to run on the server that does the following things:

  1. Update the server's local repository copy
  2. Ensure the symlink in the server instance is pointing to the repo's profile (in theory this only has to be done once, but the script might as well do it in case it accidentally gets mangled
  3. Rebuild the OSRM graph
  4. Restart the OSRM (well, nginx) daemon

Depends on #8

Work Flow (Force)

Hi All, it was great to meet everyone and hear your ideas last night.

There was mention early of work flow, and I was wondering if we should start dividing tasks. Thoughts?

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.