Giter Site home page Giter Site logo

Comments (3)

morganherlocker avatar morganherlocker commented on August 26, 2024

@kpwebb I took your metrics list and attempted to normalize it into a set of key features per metric for the official specification. Outstanding questions below.

Metrics Specification

  • Vehicles
    • description: count of unique vehicles
    • spatial: global, h3, shst
    • temporal: 1h
    • filter: >=2
    • source: /trips
  • Pickups
    • description: count of unique trips
    • spatial: global, h3, shst
    • temporal: 1h
    • filter: >=2
    • source: /trips
  • Dropoffs
    • description: count of unique trips
    • spatial: global, h3, shst
    • temporal: 1h
    • filter: >=2
    • source: /trips
  • Pickups Via
    • description: per zone count of trips originating in target zone
    • spatial: h3+h3
    • temporal: 1h
    • filter: >=5
    • source: /trips
  • Dropoffs Via
    • description: per zone count of trips ending in target zone
    • spatial: h3+h3
    • temporal: 1h
    • filter: >=5
    • source: /trips
  • Utilization
    • description: aggregate % of time any vehicles in zone were in use
    • spatial: global, h3
    • temporal: live
    • filter: N/A
    • source: /status_changes
  • Availability
    • description: aggregate % of time any vehicles in zone were not in use
    • spatial: global, h3
    • temporal: live
    • filter: N/A
    • source: /status_changes

Questions

  • Availability/Utilization both require a definition of "in zone", since a vehicle would normally cross many zones without registering a status event. One way to do this would be to assign every vehicle a single zone at all times of day, with the zone changing only at time of dropoff. We should poke holes in this to make sure the metrics would not be statistically meaningless.
  • I added a spatial aggregation called "global", but had not heard this discussed before. Is a city-wide aggregation useful for the metrics I have it labeled for?
  • I was liberal in my interpretation of "X per hour" where referenced. "X per hour" is an instantaneous rolling metric, where as the metrics I described are more like "in hour X". These metrics would be updated at the top of the hour and would not change depending on when a query was run within the hour. Either aggregation strategy is feasible, but "in hour X" requires less storage and compute, and the two are mostly functionally equivalent.
  • OD segment flows per pair may not be viable with the volumes of data a micromobility service would be generating, which may mean not enough useful data being reported. As an illustration, imagine a small city with about 50k street edges, such as Honolulu. If we had medium-low resolution binning with ~100 zones, we would split our dimensions 10,000 dimensions = 100 zones * 100 zones we would already have significant fragmentation of aggregates, made impossibly small when including roads 500,000,000 dimensions = 10,000 OD combinations * 50,000 street edges. With that much fragmentation, edge volume mode would be 0, with just a few lighting up with volume of 1, essentially reconstructing a raw GPS map. There will be some amount of concentration on OD pairs and edges, but I think we would still need millions of trips within the query window to show any useful patterns.

from mobility-metrics.

morganherlocker avatar morganherlocker commented on August 26, 2024

Update: I have edited the specification draft to include the MDS provider endpoint source for each metric.

from mobility-metrics.

morganherlocker avatar morganherlocker commented on August 26, 2024

These have all shipped in one form or another, and are documented on the readme. There is work in progress on utilization & availability metrics as I am rewriting those today based on user feedback. I will track additional work in smaller issues.

from mobility-metrics.

Related Issues (20)

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.