Difference between revisions of "Tools portal"

From CSDMS
m (Use left-facing BMI logo.)
m (Move Landlab to a standalone page)
 
(35 intermediate revisions by 6 users not shown)
Line 1: Line 1:
=Tools=
+
{{PageTitle|Modeling Tools}}
CSDMS-IF (and maybe community?) has developed tools for the community to use. We should at least mention for each of our tools the following:
 
* why to use tools (how does a tool help them in their research),
 
* how to use the tools,
 
* where to get more information on the tools,
 
* how to report bugs, ....
 
* you name it.
 
I put your name down below each tool that needs more info. Maybe each tools needs its own page that links from this page, so the items below are really just a placeholder.<br>So type away, focus less on layout more on content right now maybe?<br>
 
Thanks, A.
 
  
 +
The CSDMS software engineers create tools to help CSDMS members couple and run models.
  
 +
<div>{{TOC limit|2}}</div>
 +
__NOCACHE__
  
==BMI==
+
==BMI Builder==
  
===BMI builder===
+
<div class=AutoScaleImage>[[ File:bmi-lego-left-facing.png | The Basic Model Interface | 200px | right ]]<div>
Eric
 
  
===BMI tester===
+
The '''BMI Builder''' helps developers build a Basic Model Interface for their model by generating template source code which is then customized by the user for their particular model. Users provide some basic metadata for their model (such as names of input and output items, units, etc.) to the bmi builder which then creates creates BMI implementation files in their language of choice. The user then go through these file of files and implements the labeled sections.
  
<div class=AutoScaleImage>[[ File:bmi-lego-left-facing.png | The Basic Model Interface | 200px | right | link=https://csdms.colorado.edu/bmi ]]<div>
+
=== Links ===
 +
* [https://github.com/bmi-forum/bmi-builder Source code on GitHub]
 +
* Documentation on how to use the BMI Builder is provided on GitHub in the read.me file
  
The '''bmi_tester''' package provides command-line utilities for testing a Python classes that implement the Basic Model Interface (BMI). '''bmi_tester''' also provides a Python interface to the tester that allows users to run tests programmatically. The package is also easily extendable so that new tests can be added to the suite.
+
==BMI Tester==
  
====Links====
+
The '''BMI Tester''' is a Python package that provides command-line utilities for testing Python classes that implement the Basic Model Interface (BMI). BMI Tester also provides a Python interface to the tester that allows users to run tests programmatically. The package is easily extendable so that new tests can be added to the suite.
 +
 
 +
===Links===
  
 
* [https://github.com/csdms/bmi-tester Source code]
 
* [https://github.com/csdms/bmi-tester Source code]
 
* [https://bmi-tester.readthedocs.io Documentation]
 
* [https://bmi-tester.readthedocs.io Documentation]
  
=== Standard Names===
+
== Standard Names registry==
 
   
 
   
A Python library for working with CSDMS Standard Names.
+
The '''Standard Names registry''' is a  Python library for working with [[CSDMS Standard Names]].
  
The CSDMS Standard Names provide a comprehensive set of naming rules
+
The CSDMS Standard Names provide a comprehensive set of naming rules and patterns that are not specific to any particular modeling domain. They were also designed to have many other nice features such as parsability and natural alphabetical grouping. CSDMS Standard Names always consist of an object part and a quantity/attribute part and the quantity part may also have an operation prefix which can consist of multiple operations.
and patterns that are not specific to any particular modeling domain.
 
They were also designed to have many other nice features such as parsability
 
and natural alphabetical grouping. CSDMS Standard Names always consist of
 
an object part and a quantity/attribute part and the quantity part may
 
also have an operation prefix which can consist of multiple operations.
 
  
'''standard_names''' is a Python package to define, query, operate, and
+
'''standard_names''' is a Python package to define, query, operate, and manipulate CSDMS Standard Names. It is distributed with a comprehensive list of the currently defined [https://github.com/csdms/standard_names_registry Standard Names].
manipulate CSDMS Standard Names. It is distributed with a comprehensive
 
list of the currently defined [https://github.com/csdms/standard_names_registry Standard Names].
 
  
 
The '''standard_names''' package consists of two basic classes:
 
The '''standard_names''' package consists of two basic classes:
Line 46: Line 37:
 
*  ''NamesRegistry'': a collection of names.
 
*  ''NamesRegistry'': a collection of names.
  
The standard_names package has a complete set of unit tests that are
+
The standard_names package has a complete set of unit tests that are continually tested on Mac, Linux, and Windows. It is distributed both as [https://github.com/csdms/standard_names source code]  and as Anaconda packages from Anaconda Cloud.
continually tested on Mac, Linux, and Windows. It is distributed both
 
as [https://github.com/csdms/standard_names source code]  and as Anaconda packages from
 
Anaconda Cloud.
 
  
 
==== Links ====
 
==== Links ====
Line 63: Line 51:
 
The CSDMS Web Modeling Tool,  
 
The CSDMS Web Modeling Tool,  
 
'''WMT''',
 
'''WMT''',
is a web application that provides an Ajax client-side graphical interface
+
is a web application that allows users on a desktop, laptop or tablet computer to build and run standalone or coupled Earth surface dynamics models on a supercomputer.
and a RESTful server-side database and API
 
that allows users,
 
from a web browser on a desktop, laptop or tablet computer,
 
to build and run standalone or coupled  
 
Earth surface dynamics models on a supercomputer.
 
  
 
With WMT, users can:
 
With WMT, users can:
Line 78: Line 61:
 
* Download simulation results
 
* Download simulation results
  
 +
The following components are currently [[WMT_run_models|available in WMT]].
  
 
To see how you can use WMT to configure and run a standalone or a coupled model on the web,
 
To see how you can use WMT to configure and run a standalone or a coupled model on the web,
Line 86: Line 70:
 
including links to its documentation and its source code repositories,
 
including links to its documentation and its source code repositories,
 
please see the [[CSDMS_Web_Modeling_Tool|CSDMS Web Modeling Tool]] wiki page.
 
please see the [[CSDMS_Web_Modeling_Tool|CSDMS Web Modeling Tool]] wiki page.
 
==PyMT==
 
<div class=AutoScaleImage>[[ File:Pymt-logo-cropped.png | right ]]<div>
 
 
PyMT is an Open Source Python package, developed by the Community Surface Dynamics Modeling System, that provides the necessary tools used for the coupling of models that expose the Basic Modeling Interface (BMI). It contains:
 
* Tools necessary for coupling models of disparate time and space scales (including grid mappers)
 
* Time-steppers that coordinate the sequencing of coupled models
 
* Exchange of data between BMI-enabled models
 
* Wrappers that automatically load BMI-enabled models into the PyMT framework
 
* Utilities that support open-source interfaces (UGRID, SGRID, CSDMS Standard Names, etc.)
 
* A collection of community-submitted models, written in a variety of programming languages, from a variety of process domains - but all usable from within the Python programming language
 
* A plug-in framework for adding additional BMI-enabled models to the framework
 
  
 
==Dakotathon==
 
==Dakotathon==
Line 103: Line 75:
 
{{:Dakotathon}}
 
{{:Dakotathon}}
 
For more information on Dakotathon, including links to its documentation and its source code repository, please see the [[Dakotathon]] wiki page.
 
For more information on Dakotathon, including links to its documentation and its source code repository, please see the [[Dakotathon]] wiki page.
 +
 +
==Permafrost Benchmark System==
 +
 +
<div class=AutoScaleImage>[[ File:PBS-signin-screen.png | The Permafrost Benchmark System (PBS) | 350px | right | link=https://permamodel.github.io/pbs ]]<div>
 +
 +
The '''Permafrost Benchmark System''' (PBS) wraps the command-line
 +
[https://bitbucket.org/ncollier/ilamb ILAMB] benchmarking software with a customized version of [[WMT]],
 +
and adds tools for uploading
 +
[https://cmip.llnl.gov/cmip5/output_req.html CMIP5-compatible] model outputs and benchmark datasets.
 +
The PBS allows users to access and run ILAMB remotely,
 +
without having to install software or data locally;
 +
a web browser on a desktop, laptop, or tablet computer is all that’s needed.
 +
 +
For more information on the PBS,
 +
including links to documentation and source code repositories,
 +
please see the PBS home page at https://permamodel.github.io/pbs.
 +
 +
If you're already set up with a login on the PBS,
 +
jump right to it at https://csdms.colorado.edu/pbs.
 +
<br><br><br><br><br><br><br><br>

Latest revision as of 15:14, 7 February 2019

Modeling Tools

The CSDMS software engineers create tools to help CSDMS members couple and run models.


BMI Builder

The Basic Model Interface

The BMI Builder helps developers build a Basic Model Interface for their model by generating template source code which is then customized by the user for their particular model. Users provide some basic metadata for their model (such as names of input and output items, units, etc.) to the bmi builder which then creates creates BMI implementation files in their language of choice. The user then go through these file of files and implements the labeled sections.

Links

  • Source code on GitHub
  • Documentation on how to use the BMI Builder is provided on GitHub in the read.me file

BMI Tester

The BMI Tester is a Python package that provides command-line utilities for testing Python classes that implement the Basic Model Interface (BMI). BMI Tester also provides a Python interface to the tester that allows users to run tests programmatically. The package is easily extendable so that new tests can be added to the suite.

Links

Standard Names registry

The Standard Names registry is a Python library for working with CSDMS Standard Names.

The CSDMS Standard Names provide a comprehensive set of naming rules and patterns that are not specific to any particular modeling domain. They were also designed to have many other nice features such as parsability and natural alphabetical grouping. CSDMS Standard Names always consist of an object part and a quantity/attribute part and the quantity part may also have an operation prefix which can consist of multiple operations.

standard_names is a Python package to define, query, operate, and manipulate CSDMS Standard Names. It is distributed with a comprehensive list of the currently defined Standard Names.

The standard_names package consists of two basic classes:

  • StandardName: a single name
  • NamesRegistry: a collection of names.

The standard_names package has a complete set of unit tests that are continually tested on Mac, Linux, and Windows. It is distributed both as source code and as Anaconda packages from Anaconda Cloud.

Links

WMT

The CSDMS Web Modeling Tool

The CSDMS Web Modeling Tool, WMT, is a web application that allows users on a desktop, laptop or tablet computer to build and run standalone or coupled Earth surface dynamics models on a supercomputer.

With WMT, users can:

  • Design a model from a set of CSDMS components
  • Edit model parameters
  • Save models to a web-accessible server
  • Share saved models with the community
  • Submit model runs to an HPC system
  • Download simulation results

The following components are currently available in WMT.

To see how you can use WMT to configure and run a standalone or a coupled model on the web, check out the WMT tutorial, or jump right into using WMT at https://csdms.colorado.edu/wmt.

For more information on WMT, including links to its documentation and its source code repositories, please see the CSDMS Web Modeling Tool wiki page.

Dakotathon

Dakotathon.jpg

Dakota is a software toolkit developed at Sandia National Laboratories that provides an interface between models and a library of analysis methods, including support for sensitivity analysis, uncertainty quantification, optimization, and calibration techniques. Dakota is a powerful tool, but its learning curve is steep: the user not only must understand the structure and syntax of the Dakota input file, but also must develop intermediate code that allows Dakota to set up and run a model, read outputs from the model, and calculate a response statistic from the outputs.

The CSDMS Dakota Interface, or Dakotathon, is a Python package that wraps and extends Dakota’s file-based user interface. It simplifies the process of configuring and running a Dakota experiment, and it allows a Dakota experiment to be scripted. Dakotathon creates the Dakota input file and provides a generic analysis driver. Any model componentized in the CSDMS modeling framework automatically works with Dakotathon. Dakotathon has a plugin architecture, so models not wrapped into the CSDMS modeling framework can be accessed by Dakotathon by programmatically extending a template; an example is provided in the Dakotathon distribution.

For more information on Dakotathon, including links to its documentation and its source code repository, please see the Dakotathon wiki page.

Permafrost Benchmark System

The Permafrost Benchmark System (PBS)

The Permafrost Benchmark System (PBS) wraps the command-line ILAMB benchmarking software with a customized version of WMT, and adds tools for uploading CMIP5-compatible model outputs and benchmark datasets. The PBS allows users to access and run ILAMB remotely, without having to install software or data locally; a web browser on a desktop, laptop, or tablet computer is all that’s needed.

For more information on the PBS, including links to documentation and source code repositories, please see the PBS home page at https://permamodel.github.io/pbs.

If you're already set up with a login on the PBS, jump right to it at https://csdms.colorado.edu/pbs.