opentraffic / traffic-data-exchange-format Goto Github PK
View Code? Open in Web Editor NEWOTv1: Binary location referencing format for exchanging traffic speed data
License: GNU General Public License v3.0
OTv1: Binary location referencing format for exchanging traffic speed data
License: GNU General Public License v3.0
Do we assume a constant 1h slot size for the speed average profiles? Even if the producer assume 1h slot internally, an idea for having more flexible output would be to output an array of (minute duration, speed) pairs. The special case 1h would be just a list of (60mn, speed) pair. The overhead should be minimal as protobuf use variable-length encoding for int32 so a minute value should probably be encoded in 1 or 2 bytes only. Also this would allow the compacting of large NULL ranges into one single slot.
That way the producer could generate more precise fallback values for the case where not enough data is available for some slots (for example if we have data for 1AM and 5AM but not 2-4AM, the average speed is probably lying somewhere the value for 1 and 5 AM, not the absolute average).
Unless I'm mistaken, there is no "real-time current speed" information in the format. Shouldn't we have this information on the format too?
We could also think on a predicted speed(s), if available.
Tiles will add a lot of bloat without a clear purpose. Would it make more sense to store data by some other partition, such as way id
? This would make it easier for most routing engines to process efficiently. Also, this would allow you to efficiently aggregate traffic data to your own set of geometry data, which could be rendered to vector tiles for visualization.
I have managed to run the app successfully and and import gps log into it.
I assume that the data computed from the GPS files is in data/cache and data/osm.
data/osm seems to have the relevant osm.pbf files.
I just don't know how to decode that data into readable format (JSON for instance).
Please help!
Best to use the OSM API lingo here: http://wiki.openstreetmap.org/wiki/Changeset
Currently we're segmenting the street network by intersections which works well in terms of integration with graph representations in OTP (and I assume OSRM) because every intersection should contain an OSM node that we can use as a reference.
However, if we want to create sub-segments of the network for long sections between intersections, how will this align with the representations in a journey planner? Should we store the sub-segment speeds with in the intersection segment and use linear referencing to define the sub-segment? We can count on segments having any intermediate nodes (could just be a long straight line with a pair of nodes at each end) and even if they do the nodes may not align with where we want to segment.
I think we can add this incrementally to the existing spec but curious if there are examples to draw from our thoughts on how this could be useful in a routing context. I'm guessing the primary application is visualization or routes that terminate mid-segment.
How do we format turn timing? Per opentraffic/architecture#8
I assume we can use a pair of segment IDs but how do we capture time/speed? We don't really have distances within intersections (although the pairs of trip lines are about 20m apart over the street network at an intersection) and our construct of an intersection might differ from that in a journey planner.
Any recs on how to handle this?
Which units should be used in the output format? I guess SI units (m/s, the standard), as some country use mph vs km/h. It could be nice to specify the unit in the format name (such as averageSpeedMetersPerSeconds, averageSpeedMs, or whatever)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.