Skip to content

Commit 164b20f

Browse files
committed
Update body of JOSS paper
1 parent 6995179 commit 164b20f

File tree

1 file changed

+22
-46
lines changed

1 file changed

+22
-46
lines changed

docs/JOSS/paper.md

Lines changed: 22 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,6 @@ date: 7 October 2020
2323
bibliography: paper.bib
2424
---
2525

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.
4526
<!--
4627
## Compiling this document
4728
@@ -60,57 +41,52 @@ def fib(n):
6041
else:
6142
return fib(n - 1) + fib(n - 2)
6243
```
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+
-->
7045

7146
# Summary
7247

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 environments in 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.
7651
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.
8153

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.
8356

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.
8458

85-
The `PySensors` package can be used by both researchers looking to advance the state of the art 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.
8963

9064

9165
# Features
9266

9367
`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].
9570
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.
9671
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.
9975
Additionally, `PySensors` provides methods to enable straightforward exploration of the impacts of primary hyperparameters like the number of sensors or basis modes.
10076

10177
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.
10480

10581
Finally, included with `PySensors` is a large suite of examples, implemented as Jupyter notebooks.
10682
Some of the examples are written in a tutorial format and introduce new users to the objects, methods, and syntax of the package.
10783
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.
10884
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].
11086
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.
11288

11389
# 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)
11591

11692
# References

0 commit comments

Comments
 (0)