Skip to content
Snippets Groups Projects
Commit 9c1a8467 authored by Janne Alatalo's avatar Janne Alatalo :neutral_face:
Browse files

Change data coloring to use the free flow speed

parent 6a6e1214
No related branches found
No related tags found
No related merge requests found
Pipeline #4037 passed
......@@ -7,11 +7,21 @@ class LamStation {
this.coordinates = coordinates;
this.avg_speed_dir1 = avg_speed_dir1;
this.avg_speed_dir2 = avg_speed_dir2;
this.traffic_vol_dir1 = 0;
this.traffic_vol_dir2 = 0;
this.free_flow_speed_dir1 = null;
this.free_flow_speed_dir2 = null;
this.traffic_vol_dir1 = null;
this.traffic_vol_dir2 = null;
this.rainbow = new Rainbow();
this.rainbow.setSpectrum("red", "green");
this.rainbow.setNumberRange(0, 130);
this.rainbow.setSpectrum("orange", "yellow", "green");
this.rainbow.setNumberRange(0.0, 1.0);
}
set_free_flow_speed_dir1(free_flow_speed) {
this.free_flow_speed_dir2 = free_flow_speed;
}
set_free_flow_speed_dir2(free_flow_speed) {
this.free_flow_speed_dir1 = free_flow_speed;
}
set_avg_speed_dir1(avg_speed) {
......@@ -39,10 +49,22 @@ class LamStation {
}
get_color() {
if (this.get_avg_speed() === 0) {
return [211, 211, 211];
const grey = [211, 211, 211];
const free_flow1 = this.get_free_flow_speed_dir1();
const free_flow2 = this.get_free_flow_speed_dir2();
const avg_speed1 = this.get_avg_speed_dir1();
const avg_speed2 = this.get_avg_speed_dir2();
if (avg_speed1 === null || avg_speed2 === null) {
return grey;
} else if (free_flow1 === null || free_flow2 === null) {
return grey;
} else if (Math.min(avg_speed1, avg_speed2) === 0) {
return grey;
}
let hex = this.rainbow.colorAt(this.get_avg_speed());
const ratio1 = free_flow1 / avg_speed1;
const ratio2 = free_flow2 / avg_speed2;
const min_ratio = Math.min(ratio1, ratio2);
let hex = this.rainbow.colorAt(min_ratio);
let bigint = parseInt(hex, 16);
let r = (bigint >> 16) & 255;
let g = (bigint >> 8) & 255;
......@@ -51,6 +73,11 @@ class LamStation {
}
get_avg_speed() {
const avg_speed1 = this.get_avg_speed_dir1();
const avg_speed2 = this.get_avg_speed_dir2();
if (avg_speed1 === null || avg_speed2 === null) {
return 0;
}
return (this.avg_speed_dir1 + this.avg_speed_dir1) / 2;
}
......@@ -58,6 +85,22 @@ class LamStation {
return (this.traffic_vol_dir1 + this.traffic_vol_dir2) / 2;
}
get_free_flow_speed_dir1() {
return this.free_flow_speed_dir1;
}
get_free_flow_speed_dir2() {
return this.free_flow_speed_dir2;
}
get_avg_speed_dir1() {
return this.avg_speed_dir1;
}
get_avg_speed_dir2() {
return this.avg_speed_dir2;
}
}
export default LamStation;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment