Comments (5)
Hey Jake, for the "possible future work", we can make more issues for those as we go along. I didn't want to do it in one issue.
from better-intersections.
Hey Jake, I am taking up this issue. Thanks
from better-intersections.
Needed some clarity on this issue -
The current implementation takes the average "cycle length" at an intersection and maps it to a colour. These comparative values are constant for all intersections i.e 30, 45, 60, 90 etc. The lighter the colour, the lesser the average cycle time.
"Perhaps green should be best practice and shades of orange/red/purple/back up to a constant of the worst timing measured" - what I understand - I take some constant time difference starting from black. And after each constant time, a lighter colour is assigned. Black will be represented by the worst time measured at that intersection. The colour will be decided on - which values the average falls between. Am I correct in interpreting this ? If so, how would you like me to take the constant time ?
A proposal - Since a constant time will have to be chosen for the above method - Currently, your method has 7 colours. I could split the best and worst cycle lengths of that intersection by 7 and each split can represent a colour.
from better-intersections.
Sorry for the delay - I'm in the process of moving house!
By splitting cycle length times into colours I was thinking of across multiple intersections.
I strongly think that the colour for an intersection should be:
- By default, based on the total cycle time (green + flashing red + solid red) as this is how SCATS internally represents cycle times
- Chosen based on the average (or median, but likely not enough values) of all cycle time measurements for that intersection
However I don't have strong views on which colours or how to choose the colours! Your proposal of 7 "buckets" sounds like a good idea, spanning green to black. I'm also open to continuously variable colours (ie. a gradient, no steps).
Cycle times tend to be whole numbers (eg. 50 seconds or 90 seconds) so if colours are discrete, perhaps the "buckets" of times that one colour represents should make sure to account for observational errors. Eg. If choosing 10 or 20 second steps, assigning orange to 45-55 seconds would make sure all intersections with a cycle time of approximately 50 seconds are shown as equivalent. I assume a scatter graph of total cycle times will demonstrate this.
Happy for you to experiment and we can merge and tinker further!
Possible future work:
- Building on point 2, handling vastly different cycle times (eg. bimodal distributions for different peak & off peak cycle times) will eventually be an issue. Perhaps we could have a time selector (min time cutoff and max time cutoff) or just a min/max/avg dropdown, but I'll make a separate issue for this.
- On point 1, you could argue it's more important to visualise the median wait time for a pedestrian arriving at a random time rather than the cycle time, which will depend on the ratio of green to flashing red + red - this could be an additional checkbox/dropdown.
from better-intersections.
Fixed in #7
from better-intersections.
Related Issues (20)
- Fix `Warning: ReactDOM.render is no longer supported in React 18.` error
- Intersection stats pop up is below cycle time filter
- Minimise title info box on mobile HOT 1
- Improve overflow when lots of measurements of one intersection HOT 3
- Add CSV export of Supabase Postgres HOT 3
- Cache majority of OSM API requests HOT 1
- Investigate loading map at users rough location without location permission
- Add app version, and include version string with submission into new DB field
- Add query parameter or additional path to `/contribute-measurement` with node ID HOT 1
- Group measurements of intersections not at two stage crossings HOT 1
- Encourage measurements at other stage of multi stage crossings HOT 1
- Ensure form is completely reset after submission HOT 1
- Format timestamps in local time rather than UTC HOT 2
- No intersection Pins showing HOT 1
- "Filter by cycle time" slider can't be dragged on mobile HOT 1
- 'Cycle Length' should be rounded HOT 1
- Store traffic light coordinates as well as node IDs HOT 12
- Keystrokes in submission form trigger image redownload
- Geolocation button on map invisble without scrolling in iOS Safari
- Reinstate optional frontend field for RMS traffic signal ID on submission
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from better-intersections.