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
Copy file name to clipboardExpand all lines: docs/JOSS/paper.md
+22-46Lines changed: 22 additions & 46 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,25 +23,6 @@ date: 7 October 2020
23
23
bibliography: paper.bib
24
24
---
25
25
26
-
# Extra material added in by Brian
27
-
28
-
TODO: remove extra material
29
-
30
-
## What should the paper contain?
31
-
From the [JOSS submission guide](https://joss.readthedocs.io/en/latest/submitting.html#what-should-my-paper-contain):
32
-
33
-
"JOSS welcomes submissions from broadly diverse research areas. For this reason, we require that authors include in the paper some sentences that explain the software functionality and domain of use to a non-specialist reader. We also require that authors explain the research applications of the software. The paper should be between 250-1000 words.
34
-
35
-
Your paper should include:
36
-
37
-
* A list of the authors of the software and their affiliations, using the correct format (see the example below).
38
-
* A summary describing the high-level functionality and purpose of the software for a diverse, non-specialist audience.
39
-
* A clear Statement of Need that illustrates the research purpose of the software.
40
-
* A list of key references, including to other software addressing related needs.
41
-
* Mention (if applicable) a representative set of past or ongoing research projects using the software and recent scholarly publications enabled by it.
42
-
* Acknowledgment of any financial support."
43
-
44
-
See also the [review checklist](https://joss.readthedocs.io/en/latest/review_checklist.html#software-paper) to get an idea of what the reviewers are looking for.
45
26
<!--
46
27
## Compiling this document
47
28
@@ -60,57 +41,52 @@ def fib(n):
60
41
else:
61
42
return fib(n - 1) + fib(n - 2)
62
43
```
63
-
64
-
## Other examples
65
-
Here are some other example JOSS papers:
66
-
67
-
* [Example on JOSS website](https://joss.readthedocs.io/en/latest/submitting.html#example-paper-and-bibliography)
68
-
* [pyomeca](https://joss.theoj.org/papers/10.21105/joss.02431) - this one is a bit long, but shows how figures can be incorporated into a JOSS submission
69
-
* [All published papers](https://joss.theoj.org/papers/published) -->
44
+
-->
70
45
71
46
# Summary
72
47
73
-
Successful predictive modeling and control of engineering and natural processes is often entirely determined by in situ measurements and feedback from sensors.
74
-
However, deploying sensors into complex environmentsin manufacturing, geophysical and biological processes is often expensive and challenging.
75
-
Furthermore, modeling outcomes are extremely sensitive to the location and number of these sensors, motivating the optimization of sensor placements for different decision-making tasks.
48
+
Successful predictive modeling and control of engineering and natural processes is often entirely determined by *in situ* measurements and feedback from sensors[@Brunton2019book].
49
+
However, deploying sensors into complex environments, including in application areas such as manufacturing[@Manohar2018jms], geophysical environments [@Yildirim:2009], and biological processes[@colvert2017local;Mohren2018pnas], is often expensive and challenging.
50
+
Furthermore, modeling outcomes are extremely sensitive to the location and number of these sensors, motivating optimization strategies for the principled placement of sensors for different decision-making tasks.
76
51
In general, choosing the globally optimal placement within the search space of a large-scale complex system is an intractable computation, in which the number of possible placements grows combinatorially with the number of candidates.
77
-
While sensor placements have traditionally been guided by expert knowledge and first principles models, the explosion in system complexity, data collection and data-driven modeling motivates automated algorithms for optimizing sensor placements.
78
-
79
-
A number of automated sensor placement methods have been developed in recent years, designed to optimize outcomes in the design of experiments, convex [@joshi2008sensor;@brunton2016sparse] and submodular objective functions [@summers2015submodularity], information theoretic criteria [@krause2008near], optimal control, and reduced order modeling [@willcox2006unsteady;@manohar2018data;@clark2018greedy].
80
-
Maximizing the impact of sensor placement algorithms requires tools to make them accessible to scientists across various domains and at various levels of mathematical expertise.
52
+
While sensor placement has traditionally been guided by expert knowledge and first principles models, increases in system complexity, emerging sensor technologies, and innovations in data-driven modeling strategies motivates automated algorithms for optimizing sensor placements.
81
53
82
-
`PySensors` is a Python package for the scalable optimization of sensor placements from data. In particular, `PySensors` provides tools for sparse sensor placement optimization approaches that employ data-driven dimensionality reduction [@brunton2016sparse;@manohar2018data]. This approach results in near-optimal placements for various decision-making tasks and can be readily customized using different optimization algorithms and objective functions.
54
+
A number of automated sensor placement methods have been developed in recent years, designed to optimize outcomes in the design of experiments [@Boyd2004convexbook;joshi2008sensor], convex [@joshi2008sensor;brunton2016sparse] and submodular objective functions [@summers2015submodularity], information theoretic and Bayesian criteria [@Caselton1984spl;krause2008near;Lindley1956ams;Sebastiani2000jrss;Paninski2005nc], optimal control [@Dhingra2014cdc;Munz2014ieeetac;Zare2018arxiv;Manohar2018arxivB], for sampling and estimating signals over graphs [@Ribeiro2010sigcomm;DiLorenzo2016ieee;Chen2016ieee;Chepuri2016sam], and reduced order modeling [@Barrault2004crm;willcox2006unsteady;Chaturantabut2010siamjsc;Chaturantabut2012siamjna;drmac2016siam;manohar2018data;clark2018greedy].
55
+
Maximizing the impact of sensor placement algorithms requires tools to make them accessible to scientists and engineers across various domains and at various levels of mathematical expertise and sophistication.
83
56
57
+
`PySensors` is a Python package for the scalable optimization of sensor placements from data. In particular, `PySensors` provides tools for sparse sensor placement optimization approaches that employ data-driven dimensionality reduction [@brunton2016sparse;manohar2018data]. This approach results in near-optimal placements for various decision-making tasks and can be readily customized using different optimization algorithms and objective functions.
84
58
85
-
The `PySensors` package can be used by both researchers looking to advance the state of theart and practitioners seeking simple sparse sensor selection methods for their applications of interest.
86
-
Straightforward methods and abundant examples help new users to hit the ground running.
87
-
At the same time modular classes leave flexibility for users to experiment with and plug in new sensor selection algorithms or dimensionality reduction techniques.
88
-
Users of `scikit-learn` will find `Pysensors` objects familiar, intuitive, and compatible with existing `scikit-learn` routines such as cross-validation.
59
+
The `PySensors` package can be used by both researchers looking to advance state-of-the-art methods and practitioners seeking simple sparse sensor selection methods for their applications of interest.
60
+
Straightforward methods and abundant examples help new users to quickly and efficiently leverage existing methods to their advantage.
61
+
At the same time, modular classes leave flexibility for users to experiment with and plug in new sensor selection algorithms or dimensionality reduction techniques.
62
+
Users of `scikit-learn` will find `PySensors` objects familiar, intuitive, and compatible with existing `scikit-learn` routines such as cross-validation.
89
63
90
64
91
65
# Features
92
66
93
67
`PySensors` enables the sparse placement of sensors for two classes of problems: reconstruction and classification.
94
-
For reconstruction problems the package implements a unified `SensorSelector` class, with methods for efficiently analyzing the effects data or sensor quantity have on reconstruction performance.
68
+
For reconstruction problems the package implements a unified `SensorSelector` class, with methods for efficiently analyzing the effects that data or sensor quantity have on reconstruction performance [@manohar2018data].
69
+
Sensor selection is based on the computationally efficient and flexible QR algorithm [@duersch2015true;martinsson2015blocked;Martinsson2017siamjsc], which has recently been used for hyper-reduction in reduced-order modeling [@drmac2016siam] and for sparse sensor selection [@manohar2018data].
95
70
Often different sensor locations impose variable costs, e.g. if measuring sea-surface temperature, it may be more expensive to place buoys/sensors in the middle of the ocean than close to shore.
96
71
These costs can be taken into account during sensor selection via a built-in cost-sensitive optimization routine [@clark2018greedy].
97
-
For classification tasks, the package implements the Sparse Sensor Placement Optimization for Classification (SSPOC) algorithm [@brunton2016sparse], allowing one to optimize sensor placement for classification accuracy.
98
-
This SSPOC implementation is fully general in the sense that it can be used in conjunction with any linear classifier.
72
+
For classification tasks, the package implements the Sparse Sensor Placement Optimization for Classification (SSPOC) algorithm [@brunton2016sparse], allowing one to optimize sensor placement for classification accuracy.
73
+
The algorithm is related to compressed sensing optimization [@Candes2006cpam;Donoho2006ieeetit;Baraniuk2007ieeespm], but identifies the sparsest set of sensors that reconstructs a discriminating plane in a feature subspace.
74
+
This SSPOC implementation is fully general in the sense that it can be used in conjunction with any linear classifier.
99
75
Additionally, `PySensors` provides methods to enable straightforward exploration of the impacts of primary hyperparameters like the number of sensors or basis modes.
100
76
101
77
It is well known [@manohar2018data] that the basis in which one represents measurement data can have a pronounced effect on the sensors that are selected and the quality of the reconstruction.
102
-
Users can readily switch between different bases typically employed for sparse sensor selection, including PCA modes and random projections.
103
-
Because `PySensors` was built with `scikit-learn` compatibility in mind, it is easy to use cross-validation to select among possible choices of bases, basis modes, and other hyperparameters.
78
+
Users can readily switch between different bases typically employed for sparse sensor selection, including principal component analysis (PCA) modes and random projections.
79
+
Because `PySensors` was built with `scikit-learn` compatibility in mind, it is easy to use cross-validation to select among possible choices of bases, basis modes, and other hyper-parameters.
104
80
105
81
Finally, included with `PySensors` is a large suite of examples, implemented as Jupyter notebooks.
106
82
Some of the examples are written in a tutorial format and introduce new users to the objects, methods, and syntax of the package.
107
83
Other examples demonstrate intermediate-level concepts such as how to visualize model parameters and performance, how to combine `scikit-learn` and `PySensors` objects, selecting appropriate parameter values via cross-validation, and other best-practices.
108
84
Further notebooks use `PySensors` to solve challenging real-world problems.
109
-
The notebooks reproduce many of the examples from the papers upon which the package is based [@manohar2018data;@clark2018greedy;@brunton2016sparse].
85
+
The notebooks reproduce many of the examples from the papers upon which the package is based [@manohar2018data;clark2018greedy;brunton2016sparse].
110
86
To help users begin applying `PySensors` to their own datasets even faster, interactive versions of every notebook are available on Binder.
111
-
Overall, the examples will compress the learning curve of learning a new software package.
87
+
Together with comprehensive documentation, the examples will compress the learning curve of learning a new software package.
112
88
113
89
# Acknowledgments
114
-
TODO: write acknowledgments section
90
+
The authors acknowledge support from the Air Force Office of Scientific Research (AFOSR FA9550-19-1-0386) and The Boeing Corporation. JNK acknowledges support from the Air Force Office of Scientific Research (AFOSR FA9550-19-1-0011)
0 commit comments