seee prev. commit

This commit is contained in:
rxf
2023-06-27 17:14:18 +02:00
parent f5fba41a50
commit ecdcded663
7 changed files with 113 additions and 149 deletions
+78
View File
@@ -176,6 +176,82 @@ export const fetchActData = async (opts) => {
).toArray();
*/
export const fetchgeigerAVGData = async (opts) => {
let docs = []
let ret = {err: null, values: []}
let start = opts.start.slice(7)
let end = opts.stop.slice(6)
start = DateTime.fromISO(start).toJSDate()
end = DateTime.fromISO(end).toJSDate()
let datRange = {sensorid: opts.sensorid, datetime: {$gte: start, $lt: end}}
let sorting = {datetime: opts.sort};
let client = await connectMongo()
try {
if(opts.mooving) {
docs = await client.db(MONGOBASE).collection('sensors').aggregate([
{
$sort: sorting
}, // sort by date
{
$match: {sensorid: opts.sensorid}
}, // select only values for given sensor
{
$match: datRange
}, // select only values in give data range
{
$setWindowFields: {
sortBy: {datetime: 1},
output: {
cpm_avg: {
$avg: "$values.counts_per_minute",
window: {
range: [-60, 0],
unit: "minute"
}
}
}
}
},
{
$project: {_id:0, cpm_avg: 1, datetime:1, uSvph_avg: { $multiply: ["$cpm_avg", opts.factor]}
}
]).toArray();
} else {
docs = await client.db(MONGOBASE).collection('sensors').aggregate([
{
$sort: sorting
}, // sort by date
{
$match: {sensorid: opts.sensorid}
}, // select only values for given sensor
{
$match: datRange
}, // select only values in give data range
{ $group: {
_id: {$dateTrunc: {
date: "$datetime",
unit: "minute",
binSize: 60
}},
cpm_avg: {$avg: "$values.counts_per_minute"}, // calculate the average
}
},
{ $addFields: { datetime: "$_id"}}, // change '_id' to 'datetime
{
$project: {_id:0, uSvph_avg: { $multiply: ["$cpm_avg", opts.factor]}, datetime: 1, cpm_avg: 1}
}
]).toArray();
}
} catch(e) { // if there was an error
ret.err = e // log it to console
}
finally {
client.close()
}
ret.values = docs
return ret
}
export const fetchNoiseAVGData = async (opts) => {
let docs = []
let ret = {err: null, values: []}
@@ -216,6 +292,8 @@ export const fetchNoiseAVGData = async (opts) => {
return ret
}
export const fetchAVGData = async (opts) => {
}
/*
// *********************************************
// getAverageData