Skip to content

Commit

Permalink
Auto adapt vario and speed scale and support no pressure altitude
Browse files Browse the repository at this point in the history
  • Loading branch information
01ive committed Jun 15, 2024
1 parent ba5ab5b commit d04f544
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
30 changes: 25 additions & 5 deletions common.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,31 @@ function get_distance(paragliding_data) {
return [distance, min, max];
}

function get_speed(paragliding_data) {
let speed_data = Object.values(paragliding_data).map( item => item.speed);
let min = Math.min(...speed_data);
let max = Math.max(...speed_data);

return [speed_data, min, max];
}

function get_vertical_speed(paragliding_data) {
let vertical_speed_data = Object.values(paragliding_data).map( item => item.vertical_speed);
let min = Math.min(...vertical_speed_data);
let max = Math.max(...vertical_speed_data);

return [vertical_speed_data, min, max];
}

// Refresh point stats
function display_stats(point) {
document.getElementById("point_info_time").innerHTML = point.time;
document.getElementById("point_info_elevation_gps").innerHTML = point.gpsAltitude.toPrecision(4) + "m";
document.getElementById("point_info_terrain").innerHTML = point.terrain_elevation.toPrecision(4) + "m";
if(point.pressureAltitud != null) {
if(point.pressureAltitude != null) {
document.getElementById("point_info_elevation_pressure").innerHTML = point.pressureAltitude.toPrecision(4) + "m";
} else {
document.getElementById("point_info_elevation_pressure").innerHTML = "----";
}
document.getElementById("point_info_distance").innerHTML = point.distance_total.toPrecision(4) + "m";
document.getElementById("point_info_finesse").innerHTML = point.finesse.toPrecision(4);
Expand Down Expand Up @@ -397,8 +415,10 @@ function refresh_map(flight) {
// Create elevation graph
let [elevation_data, elevation_min, elevation_max, terrain_elevation] = get_elevation(paragliding_stats);
let [distance_data, distance_min, distance_max] = get_distance(paragliding_stats);
let speed_data = Object.values(paragliding_stats).map( item => item.speed);
let vertical_speed_data = Object.values(paragliding_stats).map( item => item.vertical_speed);

let [speed_data, speed_data_min, speed_data_max] = get_speed(paragliding_stats);
let [vertical_speed_data, vertical_speed_data_min, vertical_speed_data_max] = get_vertical_speed(paragliding_stats);

elevation_graph = document.getElementById('elevation');
Plotly.newPlot( elevation_graph,
[{x: distance_data, y: elevation_data, name: "elevation", hoverinfo: "none", yaxis: 'y4'}, // Defining y4 axis allows to have mouse hover linked to elevation_data
Expand Down Expand Up @@ -437,11 +457,11 @@ function refresh_map(flight) {
showgrid: false,
},
yaxis2: {
range: [0, 60],
range: [speed_data_min-5, speed_data_max+5],
showgrid: false
},
yaxis3: {
range: [-5, 5],
range: [vertical_speed_data_min-1, vertical_speed_data_max+1],
showgrid: false,
visible: false,
showline: false,
Expand Down
4 changes: 1 addition & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,12 @@

// Load file button
const fileSelector = document.getElementById('file-selector');
let current_file;
fileSelector.addEventListener('change', (event) => {
const fileList = event.target.files;
const reader = new FileReader();
reader.addEventListener('load', (event) => {
let flight = new Flight("flight");
flight.load_igc_file(event.target.result);
current_file = IGCParser(event.target.result);
flight.load_file(event.target.result, '.' + fileList[0].name.split('.').pop().toLowerCase());
update_map(flight);
});
reader.readAsText(fileList[0]);
Expand Down

0 comments on commit d04f544

Please sign in to comment.