You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
:alt:A diagram showing current pysensors capabilities.
29
+
:figclass:align-center
24
30
25
31
Reconstruction
26
32
^^^^^^^^^^^^^^
@@ -43,12 +49,18 @@ feed them to a ``SSPOR`` instance with 10 sensors, and
43
49
model = pysensors.reconstruction.SSPOR(n_sensors=10)
44
50
model.fit(data)
45
51
46
-
Use the ``predict`` method to reconstruct a new function sampled at the chosen sensor locations:
52
+
Use the ``predict`` method to reconstruct a new function sampled at the chosen sensor locations. There are two methods of reconstruction using ``predict``: ``Unregularized Reconstruction`` and ``Regularized Reconstruction``.
53
+
47
54
48
55
.. code-block:: python
49
56
50
57
f = numpy.abs(x[model.selected_sensors]**2-0.5)
51
-
f_pred = model.predict(f)
58
+
# Unregularized reconstruction can be used using the method ``unregularized``
See `reconstruction comparison example <https://python-sensors.readthedocs.io/en/latest/examples/reconstruction_comparison.html>` for more information on the methods of reconstruction.
52
64
53
65
.. figure:: docs/figures/vandermonde.png
54
66
:align:center
@@ -89,24 +101,10 @@ Three strategies to deal with constraints are currently developed:
89
101
We have further provided functions to compute the sensors in the constrained regions. For example if the user provides the center and radius of a circular
90
102
constrained region, the constraints in utils compute the constrained sensor indices. Direct constraint plotting capabilities have also been developed.
91
103
92
-
The constrained shapes currently implemented are:
93
-
94
-
* ``Circle``
95
-
96
-
* ``Cylinder``
97
-
98
-
* ``Line``
99
-
100
-
* ``Parabola``
104
+
The constrained shapes currently implemented are: ``Circle``, ``Cylinder``, ``Line``, ``Parabola``, ``Ellipse``, ``Polygon``.
105
+
A user can also define their own constraints using ``UserDefinedConstraints``, this type of constraint has the ability to take in either a function or a .py file which contains a functional definition of the constrained region.
101
106
102
-
* ``Ellipse``
103
-
104
-
* ``Polygon``
105
-
106
-
* ``UserDefinedConstraints``
107
-
108
-
- This type of constraint has the ability to take in either a function from the user or a
109
-
.py file which contains a functional definition of the constrained region.
107
+
See `this example <https://python-sensors.readthedocs.io/en/latest/examples/Olivetti_constrained_sensing.html>` for more information.
110
108
111
109
Classification
112
110
^^^^^^^^^^^^^^
@@ -126,7 +124,7 @@ Bases
126
124
^^^^^
127
125
The basis in which measurement data are represented can have a dramatic
128
126
effect on performance. PySensors implements the three bases most commonly
129
-
used for sparse sensor placement: raw measurements, SVD/POD/PCA modes, and random projections. Bases can be easily incorporated into ``SSPOR`` and ``SSPOC`` classes:
127
+
used for sparse sensor placement: raw measurements, SVD/POD/PCA modes, and random projections. A user can also define their own custom basis. Bases can be easily incorporated into ``SSPOR`` and ``SSPOC`` classes:
130
128
131
129
.. code-block:: python
132
130
@@ -141,7 +139,7 @@ Installation
141
139
142
140
Dependencies
143
141
^^^^^^^^^^^^
144
-
The high-level dependencies for PySensors are Linux or macOS and Python 3.6-3.8. ``pip`` is also recommended as is makes managing PySensors' other dependencies much easier. You can install it by following the instructions `here <https://packaging.python.org/tutorials/installing-packages/#ensure-you-can-run-pip-from-the-command-line>`__.
142
+
The high-level dependencies for PySensors are Linux or macOS and Python 3.9-3.12. ``pip`` is also recommended as is makes managing PySensors' other dependencies much easier. You can install it by following the instructions `here <https://packaging.python.org/tutorials/installing-packages/#ensure-you-can-run-pip-from-the-command-line>`__.
145
143
146
144
PySensors has not been tested on Windows.
147
145
@@ -191,10 +189,23 @@ The primary PySensors objects are the ``SSPOR`` and ``SSPOC`` classes, which are
191
189
192
190
- ``Identity`` - use raw measurement data
193
191
- ``SVD`` - efficiently compute first k left singular vectors
194
-
- ``RandomProjection`` - Gaussian random projections of measurements
192
+
- ``RandomProjection`` - gaussian random projections of measurements
193
+
- ``CustomBasis`` - user defined bases ranging from DMD modes to Chebyshev polynomials
194
+
195
+
* ``optimizers`` - submodule implementing different optimizers to fit data
195
196
197
+
- ``QR`` - greedy QR optimizer
198
+
- ``CCQR`` - greedy cost constrained QR optimizer
199
+
- ``GQR`` - general QR optimizer
200
+
- ``TPGR`` - two point greedy optmizer
196
201
* Convenience functions to aid in the analysis of error as number of sensors or basis modes are varied
197
202
203
+
The diagram below outlines a flow chart of how a user can utilize pysensors.
204
+
.. figure:: docs/figures/pysensors-methods.png
205
+
:align:center
206
+
:alt:A flow chart of pysensors methods.
207
+
:figclass:align-center
208
+
198
209
Documentation
199
210
-------------
200
211
PySensors has a `documentation site <https://python-sensors.readthedocs.io/en/latest/index.html>`__ hosted by readthedocs.
- Karnik, Niharika, Mohammad G. Abdo, Carlos E. Estrada-Perez, Jun Soo Yoo,
304
-
Joshua J. Cogliati, Richard S. Skifton, Pattrick Calderoni, Steven L. Brunton, and Krithika Manohar.
305
-
"Constrained Optimization of Sensor Plcaement for Nuclear Digital Twins" IEEE Sensors Journal 24, no. 9
314
+
- Karnik, Niharika, Mohammad G. Abdo, Carlos E. Estrada-Perez, Jun Soo Yoo, Joshua J. Cogliati, Richard S. Skifton, Pattrick Calderoni, Steven L. Brunton, and Krithika Manohar.
315
+
"Constrained Optimization of Sensor Placement for Nuclear Digital Twins" IEEE Sensors Journal 24, no. 9
0 commit comments