diff --git a/joss/paper.bib b/joss/paper.bib index 83502a4..c0fe942 100644 --- a/joss/paper.bib +++ b/joss/paper.bib @@ -22,18 +22,11 @@ @Article{barnhart2019terrain DOI = {10.5194/gmd-12-1267-2019} } -@Article{adams2017dakotatheory, - address = {Albuquerque, NM}, - author = {B.M. Adams and L.E. Bauman and W.J. Bohnhoff and K.R. - Dalbey and M.S. Ebeida and J.P. Eddy and M.S. Eldred and - P.D. Hough and K.T. Hu and J.D. Jakeman and J.A. Stephens - and L.P. Swiler and D.M. Vigil and T.M. Wildey}, - journal = {Sandia Technical Report SAND2014-4253}, - title = {Dakota, A Multilevel Parallel Object-Oriented Framework - for Design Optimization, Parameter Estimation, Uncertainty - Quantification, and Sensitivity Analysis: Version 6.6 - Theory Manual}, - year = {2017} +@article{adams2019dakota, + author = {Adams, Brian M and Eldred, Michael S and Geraci, Gianluca and Hooper, Russell W and Jakeman, John D and Maupin, Kathryn A and Monschk, Jason A and Rushdi, Ahmad A and Stephens, J Adam and Swiler, Laura P and Wildey, Timothy M and Bohnhoff, William J and Dalbey, Keith R and Ebeida, Mohamed S and Eddy, John P and Hough, Patricia D and Khalil, Mohammad and Hu, Kenneth T and Ridgway, Elliott M and Vigil, Dena M and Winokur, Justin G}, + title = {{Dakota, A Multilevel Parallel Object-Oriented Framework for Design Optimization, Parameter Estimation, Uncertainty Quantification, and Sensitivity Analysis: Version 6.10 User{\textquoteright}s Manual}}, + journal = {Sandia National Laboratories, Tech. Rep. SAND2014-4633}, + year = {2019} } @@ -62,7 +55,7 @@ @Article{club2017geomorphometric } @article{mudd2014statistical, - author = {Mudd, Simon M. and Attal, Mikaƫl and Milodowski, David T. and Grieve, Stuart W. D. and Valters, Declan A.}, + author = {Mudd, S. M. and Attal, M. and Milodowski, D. T. and Grieve, S. W. D. and Valters, D. A.}, title = {A statistical framework to quantify spatial variation in channel gradients using the integral method of channel profile analysis}, journal = {Journal of Geophysical Research: Earth Surface}, volume = {119}, @@ -89,6 +82,7 @@ @Article{schwanghart2014topo @article{schwanghart2010topo, + author = "Schwanghart, W. and Kuhn, N. J.", title = "TopoToolbox: A set of Matlab functions for topographic analysis", journal = "Environmental Modelling & Software", volume = "25", @@ -99,3 +93,14 @@ @article{schwanghart2010topo doi = "https://doi.org/10.1016/j.envsoft.2009.12.002", url = "http://www.sciencedirect.com/science/article/pii/S1364815209003053" } + +@Article{ perron2013integral, + author = {Perron, J Taylor and Royden, Leigh}, + journal = {Earth Surface Processes and Landforms}, + number = {6}, + pages = {570--576}, + publisher = {Wiley Online Library}, + title = {An integral approach to bedrock river profile analysis}, + volume = {38}, + year = {2013} + } diff --git a/joss/paper.md b/joss/paper.md index e218092..819d2ca 100644 --- a/joss/paper.md +++ b/joss/paper.md @@ -31,7 +31,7 @@ affiliations: - name: University of Colorado at Boulder, Institute for Arctic and Alpine Research index: 4 date: 4 September 2019 -bibliography: papers.bib +bibliography: paper.bib --- # Summary @@ -48,7 +48,7 @@ Umami is a package for calculating objective functions or objective function com Umami offers two primary classes: a [`Residual`](https://umami.readthedocs.io/en/latest/umami.residual.html#Residual) which represents the difference between model and data, and a [`Metric`](https://umami.readthedocs.io/en/latest/umami.metric.html) -which is a calculated value on either model or data. The set of currently supported calculations are found in the [`umami.calculations`](https://umami.readthedocs.io/en/latest/umami.calculations.html) submodule. Both the `Metric` and `Residual` classes are designed to be fully specified through a YAML-style input-file or python Dictionary interface. Many different calculations can be accomplished through parameter specification. This supports reproducible analysis and systematic variation in metric construction. For example, when used with `terrainbento` one input file can describe the model run, and one input file can describe the model assessment or model-data comparison. This streamlines model analysis applications by making driver files more re-usable and by placing the code that accomplished calculations in the umami package rather than within the driver file. Umami also provides multiple output formats (YAML and Dakota), the latter of which is designed to interface with Sandia National Laboratory's Dakota package [@adams2017dakotatheory]. +which is a calculated value on either model or data. The set of currently supported calculations are found in the [`umami.calculations`](https://umami.readthedocs.io/en/latest/umami.calculations.html) submodule. Both the `Metric` and `Residual` classes are designed to be fully specified through a YAML-style input-file or python Dictionary interface. Many different calculations can be accomplished through parameter specification. This supports reproducible analysis and systematic variation in metric construction. For example, when used with `terrainbento` one input file can describe the model run, and one input file can describe the model assessment or model-data comparison. This streamlines model analysis applications by making driver files more re-usable and by placing the code that accomplished calculations in the umami package rather than within the driver file. Umami also provides multiple output formats (YAML and Dakota), the latter of which is designed to interface with Sandia National Laboratory's Dakota package [@adams2019dakota]. The novel contribution of the umami package is not primarily found in the specific calculations accomplished (e.g., some of them are as straightforward as the mean of a state variable). Instead it is the flexible and extensible nature of the input file format and the `Metric` and `Residual` classes. Additionally, the package can be extended through the addition of new calculation methods. diff --git a/notebooks/IntroductionToMetric.ipynb b/notebooks/IntroductionToMetric.ipynb index ed520e8..9d1843f 100644 --- a/notebooks/IntroductionToMetric.ipynb +++ b/notebooks/IntroductionToMetric.ipynb @@ -21,21 +21,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'umami'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mio\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mStringIO\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mlandlab\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mRasterModelGrid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimshow_grid\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mumami\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mMetric\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mumami\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalculations\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0maggregate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'umami'" - ] - } - ], + "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings('ignore')\n", diff --git a/setup.py b/setup.py index f7e1ca3..d4c7540 100644 --- a/setup.py +++ b/setup.py @@ -5,12 +5,14 @@ setup( name="umami", - python_requires=">=3.6", + python_requires=">=3", version=versioneer.get_version(), classifiers=[ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython",