HydroShare modeling functionality has been developed to support collaborative modeling needs of the hydrologic community.  Hydrologic modeling is often collaborative and teamwork is required to develop models and conduct research involving hydrologic models.  The goal of HydroShare modeling functionality is to advance hydrologic science by enabling the scientific community to more easily and freely share products resulting from their research - not just the scientific publication summarizing a study, but also the data and models used to create the scientific publication.

Modeling functionality includes

A model program resource is designed to encapsulate all the software and files necessary to identify, install and run a given hydrologic model.  By saving, sharing and referring to the specific version of the model program used in your work you can enhance the reproducibility of results produced with a model and encourage its use by others.

A model instance resource holds the input files required for application of a hydrologic model to a specific location.  It refers to the associated model program. A model instance resource may optionally include the output files resulting from model execution. The design for metadata associated with a model instance was intended to capture the aspects required to define and distinguish between different model instances across the wide variety of hydrologic models. To accomplish this, the design first includes a generic model instance. This generic model instance has metadata elements applicable to any model program. The design also includes specific model instances that inherit the properties of a generic model instance and add new properties that are associated with a specific model program.  HydroShare has the following specific model instance capability

Additional specific model instance capability is under development.

How can I publish my model in HydroShare?

Refer to the github wiki guide to publishing model instances in HydroShare.

How can I execute a model in HydroShare?

Model execution in HydroShare is intended to help users execute models.  Most hydrologic modeling is done either on the user’s personal computer or through access to a centralized computing system.  This may be hampered by a user’s knowledge of centralized computing systems, especially high performance computing systems, the capacity of a local computer, the compatibility and dependency requirements for installation on a local computer, and the time taken to get a local model installation properly configured and validated.  HydroShare is working to provide server, or cloud based model execution capability.  Here “cloud” means execution on any server that is remote from the user and the user does not need to be too concerned where it is to use it.  This is part of the general trend towards use of software services instead of local computing.  HydroShare apps currently provide the capability to execute SWAT models through SWATShare, and to execute TauDEM hydrologic terrain analysis tools through the CyberGIS TauDEM app.  

To support more flexible model execution and data analysis, HydroShare supports Jupyter Notebook functionality as an app that may be launched from HydroShare, access the contents of HydroShare resources and save results back in HydroShare resources. A Jupyter notebook is a web application that contains live code, equations, visualizations and explanatory text. Code in a jupyter notebook may execute any operating system or language specific (HydroShare uses Python) commands within the hosting environment providing users with access to the computational capability of the hosting environment without requiring software installation or configuration.  This does not relieve the user from needing to learn the language involved (e.g. Python) or commands associated with the program being used (e.g. RHESSys, Landlab or TauDEM), but it does alleviate the need for users to install and have the capacity to run these programs locally.  HydroShare’s jupyter notebook installation includes the following functionality