sintel-dev / sigpro Goto Github PK
View Code? Open in Web Editor NEWSignal Processing Tools
License: MIT License
Signal Processing Tools
License: MIT License
Currently SigPro primitives are stored as json files and used in pipelines as specifically formatted dictionaries. We would like to update this interface to be more object oriented, allowing for more intuitive construction of SigPro pipelines.
Currently, dataframes are expected to bin values in each row. However, in a typical scenario, the data is expected to be recorded at each timestamp with one value. process_signal
needs to handle the other type of data format.
The means that our dataframe goes from this expected format
turbine_id signal_id timestamp values
0 T001 Sensor1_signal1 2020-01-01 00:00:00 [0.43616983763682876, -0.17662312586241055, 0....
1 T001 Sensor1_signal1 2020-01-01 01:00:00 [0.8023828754411122, -0.14122063493312714, -0....
2 T001 Sensor1_signal1 2020-01-01 02:00:00 [-1.3143142430046044, -1.1055740033788437, -0....
3 T001 Sensor1_signal1 2020-01-01 03:00:00 [-0.45981995520032104, -0.3255426061995603, -0...
4 T001 Sensor1_signal1 2020-01-01 04:00:00 [-0.6380405111460377, -0.11924167777027689, 0....
.. ... ... ... ...
to something like
turbine_id signal_id timestamp values
0 T001 Sensor1_signal1 2020-01-01 00:00:00 0.43617
1 T001 Sensor1_signal1 2020-01-01 00:00:01 -0.176623
2 T001 Sensor1_signal1 2020-01-01 00:00:02 0.056531
3 T001 Sensor1_signal1 2020-01-01 00:00:04 0.433728
4 T001 Sensor1_signal1 2020-01-01 00:00:06 -0.019152
.. ... ... ... ...
Update HISTORY.md to show the latest updates in SigPro.
Currently, SigPro supports only linear pipelines:
We would like to support _tree_shaped pipelines, which apply several primitives at each step to the values generated at the previous step:
Ideally, we can also generalize the previous example to support layered pipelines with a custom set of primitives applied to transform each layer to the following layer.
The stft
and stft_real
methods are listed in the JSON annotations under sigpro.transformations.frequency.stft.stft
andsigpro.transformations.frequency.stft.stft_real
, respectively. However, these primitives are actually implemented in the correct locations sigpro.transformations.frequency_time.stft.stft
and sigpro.transformations.frequency_time.stft.stft_real
. The JSON annotation should be amended to reflect this.
Sigpro does not currently support python 3.9 through 3.11.
As it stands, it is not clear what a sigpro.SigPro
object actually is from the name alone. Currently, the approach to constructing and running a pipeline is to instantiate a sigpro.SigPro
object:
mypipeline = sigpro.SigPro(transformations, aggregations, keep_columns = True)
Following this, we can run the pipeline on sample data using the process_signal
instance method, which under the hood calls the _apply_pipeline
method:
processed_data, feature_columns = pipeline.process_signal(dataframe, '1h', time_index = 'timestamp')
However, the sigpro.SigPro
constructor itself calls the _build_pipeline
method to actually build the pipeline. A more intuitive interface would look like:
mypipeline = sigpro.create_pipeline(transformations, aggregations, keep_columns = True)
This new create_pipeline
method should still return a SigPro pipeline (potentially not a sigpro.SigPro
object), and should preserve the process_signal
interface.
Since randint(a, b)
generates a random integer a <= x <= b
inclusive.
We should sample at most len(df) - 1
Line 76 in 1a33006
SigPro should enable support for primitives that take two-column datasets (xvalues
and yvalues
). Currently, SigPro pipelines support only a single column of amplitude values.
We would like to add a demonstration of the new Primitive
and Pipeline
classes as a notebook within the tutorials folder.
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.