120 lines
3.1 KiB
JavaScript
120 lines
3.1 KiB
JavaScript
var timestamps = []
|
|
var temperatures = []
|
|
var humidities = []
|
|
var winds = []
|
|
var precipitations = []
|
|
var clouds = []
|
|
var datetimes = []
|
|
var formatted_datetimes = []
|
|
var test_1 = [1, 2, 3, 4, 5, 6, 7]
|
|
var test_2 = [1, 2, 3, 4, 5, 6, 7]
|
|
|
|
async function get_all_data() {
|
|
let database = firebase.firestore()
|
|
let weather_data = database.collection("weather_data")
|
|
console.log("Waiting for data...");
|
|
var data_snapshot = await weather_data.orderBy("timestamp", "asc").get()
|
|
console.log("Got data, Processing...");
|
|
data_snapshot.forEach((data_slice) => {
|
|
var slice = data_slice.data()
|
|
timestamps.push(slice.timestamp)
|
|
datetimes.push(slice.datetime)
|
|
formatted_datetimes.push(slice.datetime.toDate())
|
|
temperatures.push(slice.temp)
|
|
humidities.push(slice.humidity)
|
|
winds.push(slice.wind)
|
|
precipitations.push(slice.rain_1h)
|
|
clouds.push(slice.cloud)
|
|
})
|
|
console.log("Added all data...");
|
|
}
|
|
|
|
function createGraph() {
|
|
var trace1 = {
|
|
type: 'line',
|
|
y: temperatures,
|
|
x: formatted_datetimes,
|
|
text: "trace.text variable",
|
|
marker: {
|
|
color: '#00FFFF',
|
|
line: {
|
|
width: 5
|
|
}
|
|
}
|
|
}
|
|
var data = [trace1]
|
|
|
|
var layout = {
|
|
title: 'Air temperature',
|
|
font: { size: 18, color: '#AAAAAA' },
|
|
paper_bgcolor: '#111111',
|
|
plot_bgcolor: '#111111',
|
|
title: {
|
|
text: "Air tempereature",
|
|
font: {
|
|
color: '#FFFFFF'
|
|
},
|
|
},
|
|
xaxis: {
|
|
title: {
|
|
text: 'Date',
|
|
font: {
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
},
|
|
yaxis: {
|
|
title: {
|
|
text: 'Temperature in ºC',
|
|
font: {
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var config = { responsive: true, scrollZoom: true, displaylogo: false}
|
|
|
|
Plotly.newPlot('chart', data, layout, config)
|
|
}
|
|
|
|
async function plot_graphs() {
|
|
await get_all_data()
|
|
console.log("Starting data plot...");
|
|
createGraph()
|
|
// createGraph_2();
|
|
}
|
|
|
|
|
|
function createGraph_2() {
|
|
console.log(temperatures);
|
|
var data = [ {type: "line", x: formatted_datetimes, y: temperatures} ]
|
|
var layout = {title: 'Graph 2', font: { size: 18 }}
|
|
var config = { responsive: true }
|
|
Plotly.newPlot('chart_2', data, layout, config)
|
|
|
|
}
|
|
|
|
plot_graphs();
|
|
|
|
|
|
|
|
// var counter = 0
|
|
// logRef.onSnapshot(function(querySnapshot) {
|
|
// var updates = querySnapshot.docChanges()
|
|
// if (updates.length < 5){
|
|
// updates.forEach(function(change) {
|
|
// var docData = change.doc.data()
|
|
// Plotly.extendTraces('chart', {y:[[docData.value2]]}, [0])
|
|
// counter++
|
|
// if (counter > 50) {
|
|
// Plotly.relayout('chart', {
|
|
// xaxis: {
|
|
// range: [counter - 50, counter]
|
|
// }
|
|
// })
|
|
// }
|
|
// })
|
|
// }
|
|
// })
|