fair-acc / pulsed-power-ml Goto Github PK
View Code? Open in Web Editor NEWStudie Pulslast-Überwachung & KI-basierte Verbraucher-Klassifikation
License: GNU Lesser General Public License v3.0
Studie Pulslast-Überwachung & KI-basierte Verbraucher-Klassifikation
License: GNU Lesser General Public License v3.0
Fetch-API,
JSON deserilization with either IoSerialiser or other library that works with Emscripten
Tasks
Findings
Tasks
lastTimeStamp=...
)Findings
This shall be the final API,
Unit tests are included,
n signals x 5 time sampling factors need to be managed as the client may ask arbitrary combinations of signals.
Mapping between different signals and ring buffers must be implemented. If signals are not compatible or not existent, an intelligent exception must be thrown.
Tasks
work
work
callback
Acquisition
object and calls notifyFindings
MultiArray
compilation errorPre-integration in FEC (power consumption over the last 10 seconds).
Global integration in Prometheus.
Integration must work independent of FEC restart and independent of Prometheus polling rate.
It must also work if 2 collectors fetch data from different FECs.
Productive code with unit test coverage and full QA,
Packaging to manage long polling API,
No inspection of the DataSet interface
API definition: https://git.gsi.de/acc/specs/generic-daq#time-domain-fec-acquisition-properties-user-interface
use Annotated
interface
Tasks
Reading the data stream we want to detect if there has been a change and only then use the model to classify the new data.
Tasks
Tasks
Findings
Cross-Origin Request Blocked
due to missing Acces-Control-Allow-Origin
header in opencmwSyntaxError: JSON.parse
: nlohman_json expects json to start with {
and end with }
Provide Readme / HowTo so that the set up facilitates for new contributors
UI loop: data structures are put in a queue. At the beginning of the loop, the data structure of the queue must be transferred to concrete data structures for the visualization.
Tasks
The Collector should be able to be reconfigured online without having to restart the Prometheus DB or the Prometheus Collectore itself.
The aim here is to be able to display the signals and read them out. The goal is to show that the data is available in the database.
The goal is not so much to reproduce the look and feel of the other dashboard. The goal of Grafana is to have a unit test for Prometheus - to check that the data is in the database.
Tasks
Pull Request: #100
Tasks
Create a holoview dashboard so that visualization is similar to the graph displayed in Ralph's presentation.
Code Example from holoviews gallery:
http://holoviews.org/gallery/apps/bokeh/streaming_psutil.html
Tasks
Findings
mp-units
(required for opencmw build) requires range-v3
if it is compiled with clang < 14 which is the case with emscripten compiler (https://emscripten.org/docs/tools_reference/emcc.html).ImPlot::PlotLine
only supports homogeneous data types (e.g. int64_t/int64_t or float/float), but int64_t/float is not supported.ImPlot
date/time axis formatting supports unix timestamps down to microsecond precision level using double epezent/implot#48 (comment). Timestamps in the time-domain DAQ API are given in nanosecond. For now, we will plot time in microsecond resolution as a max. 50 Hz sample rate results in 20 millisecond time intervals.Is to be executed with on-board means.
The downsampling is to be implemented in the collector.
This should actually only be a configuration of the collector.
Ideas
Create a data set for each appliance which contains three phases respectively (off -> on -> off)
Each data set contains the measured voltage and current (and timestamp or index?) (raw data)
Training data should be stored as .h5 files on the infoteam NAS.
This should be generic enough so that this data reduction also works for non-pulse load signals. In particular, this function should not depend directly on the variable names of the signals but work with "generic variable names".
This should be realized either also in the collector. Or in an adapter/plug-in between the collector and the DB.
Open Tasks:
Create the worker with the Settings object.
The interface for the boundary curve should look the same as that of the time-domain API.
Pull Request: #104
The measurement data will have no labels (i.e. active power per appliance), thus, such labels need to be added "manually".
For a measurement series with only one appliance being switched on and off 100% of the active power will be assigned to the respective appliance.
Once all appliances have been measured, we'll know how much power each appliance consumes, when it is switched of.
With the assumption, that the consumed power of all appliances is constant, it is possible to label measurement data with multiple appliances being switched on and off.
Work through GNU Radio Tutorial
The data from measurements will presumably have this format: [t, f_0, ..., f_n], where "t" is an index or a timestamp and f_0 to f_n are features (RMS_I, RMS_U, phase_shift, ...) evaluated at time "t", with one row per measurement.
After the labels have been added to the measurement data (see issue #XX) the format will be: [t, f_0, ..., f_n, p_0, ..., p_m], where p_0 through p_m is the current consumed active power consumed by an appliance at time "t".
The function to split the labeled measurement data will then split the data with a rolling-window of a fixed length "l" of timesteps and a stride of "s". One data point of the training data will consist of all values for all features from t_i to t_i+l (shape=[l, n]) and the respective label consists of the values p_0(t_i+l) to p_m(t_i+l), so the most recent distribution of the active power aver all appliances.
The next training data point will have all feature values and labels shifted in time by "s" steps (t_i -> t_i+s , t_i+l -> t_i+s+l).
Pull Request: #86
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.