Also, we don't have any code that actually does the training itself either yet.master
parent
f7e2d77daa
commit
6dbb6c3b87
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
function normalise(value, { min : input_min, max: input_max }, { min : output_min, max: output_max }) {
|
||||
return (
|
||||
((value - input_min) / (input_max - input_min)) * (output_max - output_min)
|
||||
) + output_min
|
||||
}
|
||||
|
||||
function clamp(value, min, max) {
|
||||
if(value > max) return max;
|
||||
if(value < min) return min;
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
export { normalise, clamp };
|
@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
|
||||
import { normalise, clamp } from '../Helpers/Math.mjs';
|
||||
|
||||
class DatasetFetcher {
|
||||
constructor({ settings, RSSIRepo }) {
|
||||
this.settings = settings;
|
||||
this.repo_rssi = RSSIRepo;
|
||||
}
|
||||
|
||||
fetch(gateway_id) {
|
||||
let result = [];
|
||||
for(let rssi of this.repo_rssi.iterate_gateway(gateway_id) {
|
||||
result.push({
|
||||
input: [
|
||||
normalise(rssi.latitude,
|
||||
{ min: -90, max: +90 },
|
||||
{ min: 0, max: 1 }
|
||||
),
|
||||
normalise(rssi.longitude,
|
||||
{ min: -180, max: +180 },
|
||||
{ min: 0, max: 1 }
|
||||
)
|
||||
],
|
||||
output: [
|
||||
clamp(normalise(rssis.rssi,
|
||||
{ min: this.settings.ai.rssi_min, max: this.settings.ai.rssi_max },
|
||||
{ min: 0, max: 1 }
|
||||
), 0, 1)
|
||||
]
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export default DatasetFetcher;
|
Loading…
Reference in new issue