CE 394K.2 Hydrology Introduction to OpenMI

Slides:



Advertisements
Similar presentations
Standa Vaněček The potential of Integrated Modelling and the OpenMI Standa Vaněček DHI, Chairman of the OATC.
Advertisements

CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Presented by: Sudipta K. Mishra. Project overview:  How much water do we have? How will it change in response to climate variation, human development.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Coupling Climate and Hydrological Models Interoperability Through Web Services.
UML - Development Process 1 Software Development Process Using UML (2)
Coupling Climate and Hydrological Models Interoperability Through Web Services Kathy Saint/SGI – NESII Jon Goodall/University of South Carolina Richard.
Christian Klar and Peter Neuhaus Working group ‚Agroecosystems‘ Designing an object-oriented architecture for process- based modelling of soil.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
An OpenMI Model Interface Implementation for Hydrologic Modeling in an Open Source GIS Daniel P. Ames, PhD PE Ted Dunsford, PhD Candidate Idaho State University.
Coupling Climate and Hydrological Models Interoperability Through Web Services.
The PROGRESS Grid Service Provider Maciej Bogdański Portals & Portlets 2003 Edinburgh, July 14th-17th.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Web based Hydrology and Water Resources Information System for India
SIMO SIMulation and Optimization ”New generation forest planning system” Antti Mäkinen & Jussi Rasinmäki Dept. of Forest Resource Management.
Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.
SEAMLESS: Demo Version 1.4 “Presenting current developments and welcoming your feedback” For contact:
1 januari 2008 RIBASIM input data by Wil N.M. van der Krogt.
Modeling with WEAP University of Utah Hydroinformatics - Fall 2015.
MANAGEMENT INFORMATION SYSTEM
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
5th Shire River Basin Conference 22 February 2017 Shire River Basin Management Project Shire Basin Planning Tool Sub-Component A1 Development of a.
Architecture Review 10/11/2004
Software Testing.
Prototyping in the software process
Software Prototyping.
Chapter 1: Introduction to Systems Analysis and Design
Coupling and Cohesion 1.
SOFTWARE DESIGN AND ARCHITECTURE
Unified Modeling Language
System Design and Modeling
Java Beans Sagun Dhakhwa.
In-situ Visualization using VisIt
Introduction to System Analysis and Design
System Design.
Distribution and components
Design and Implementation
CO6025 Advanced Programming
TIM 58 Chapter 8: Class and Method Design
Recall The Team Skills Analyzing the Problem (with 5 steps)
Introduction to Software Engineering
Background CRiteria for the IDentification of Groundwater thrEsholds BRIDGE Project Presentation Contract N° (SSPI) Co-ordinator: BRGM (Fr)
EU Water Framework Directive
Chapter 5 - Functions Outline 5.1 Introduction
Engineering Processes
Service-centric Software Engineering
VISUAL BASIC.
Water Information System for Europe (WISE) Concept and state-of-play
Ch 15 –part 3 -design evaluation
From Excel to Oracle Express
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 20 Object-Oriented Analysis and Design
GENERAL VIEW OF KRATOS MULTIPHYSICS
CIS 375 Bruce R. Maxim UM-Dearborn
Roger V. Moore Centre for Ecology and Hydrology UK
Chapter 13 Quality Management
Analysis models and design models
An Introduction to Software Architecture
Concurrency: Mutual Exclusion and Process Synchronization
Chapter 1: Introduction to Systems Analysis and Design
Metadata The metadata contains
Overview of Workflows: Why Use Them?
Background CRiteria for the IDentification of Groundwater thrEsholds BRIDGE Summary of BRIDGE achievements Contract N° (SSPI) Co-ordinator:
Towards a Work Programme for the Common Implementation Strategy for the Water Framework Directive (2000/60/EC) Water Directors Meeting 28 November.
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
What is a System? A system is a collection of interrelated components that work together to perform a specific task.
SDMX IT Tools SDMX Registry
Presentation transcript:

CE 394K.2 Hydrology Introduction to OpenMI Tim Whiteaker

What is OpenMI http://www.openmi.org/ The OpenMI standard defines an interface that allows time-dependent models to exchange data at runtime. When the standard is implemented, existing models can be run in parallel and share information at each time step. http://www.openmi.org/

Outline Background Thinking through integrated modeling The OpenMI standard

Outline Background Thinking through integrated modeling Who created OpenMI Why did they create OpenMI Thinking through integrated modeling The OpenMI standard

History and Organization Development team 14 organizations 7 countries Funding European Commission’s Fifth Framework programme European Commission Water Framework Directive Fifth Framework programme HarmonIT OpenMI

European Commission (EC) Executive body of EU Proposes and implements legislation One Commissioner from each member state http://ec.europa.eu/ European Commission Water Framework Directive Fifth Framework programme HarmonIT OpenMI

Water Framework Directive (WFD) Most substantial piece of EC water legislation to date Enacted December 22, 2000 2015 – “good status” for inland and coastal waters Defines standards and procedures Requires whole catchment modeling http://ec.europa.eu/environment/water/water-framework/index_en.html European Commission Water Framework Directive Fifth Framework programme conditions of minimal anthropogenic impact HarmonIT OpenMI

Whole Catchment Modeling Model interactions between hydrologic components Rainfall/Runoff Hydraulics Groundwater Ecology Social Key to integrated water management

Fifth Framework programme (FP5) Prioritizes EU research, technological development and demonstration activities (1998-2002) ~15b euro for implementation Programs Quality of Life and management of living resources User-friendly information society Competitive and sustainable growth Energy, environment and sustainable development http://cordis.europa.eu/fp5/ European Commission Water Framework Directive Fifth Framework programme HarmonIT OpenMI

HarmonIT Supported by FP5’s Energy, environment and sustainable development program Objective: to develop, implement and prove a system to simplify the linking of models to support whole catchment modeling http://www.harmonit.org/ European Commission Water Framework Directive Fifth Framework programme HarmonIT OpenMI

HarmonIT Team Centre for Ecology and Hydrology DHI Water and Environment WL Delft Hydraulics HR Wallingford Group Institute for Inland Water Management and Waste Water Treatment RIZA University of Dortmund Instituto di Ricerca Sulle Acque (IRSA) National Technical University of Athens WRc plc DHI Hydroinform a.s. Povodi Labe s.p. Hydroprojekt a.s. Alterra B.V. Centre National du Machinisme Agricole, du Genie Rural, des Eaux et des Forets Team leader Design and development Management, Support, Testing

OpenMI Open Modeling Interface and Environment Interface for model integration Supports understanding and prediction of process interactions http://www.openmi.org/ European Commission Water Framework Directive Fifth Framework programme HarmonIT OpenMI

OpenMI Aims and Objectives The aim of the OpenMI is to provide a mechanism by which physical and socioeconomic process models can be linked to each other, to other data sources and to a variety of tools at runtime, hence enabling process interactions to be better modeled. Specific objectives are that the mechanism’s design should: Be applicable to new and existing models Impose as few restrictions as possible on the modeler’s freedom Be applicable to most, if not all, time-based simulation techniques Require the minimum of change to the program code of existing applications Keep the cost, skill and time required to migrate an existing model to a minimum so that these factors are not a deterrent to the OpenMI’s use Be easy to use Not unreasonably degrade performance http://www.openmi.org/openminew/documents/A_OpenMI_Scope.pdf

Outline Background Thinking through integrated modeling What is a model How can models communicate The OpenMI standard

What models do we have now HMS - hydrologic RAS – hydraulic – 1D, steady/unsteady SWAT – Soil Water Assessment Tool HSPF BASINS (HSPF, QUAL2E) MODFLOW SWMM EPA NET

What comprises a model

What does a model need to run Separate Engine from User Interface Set model parameters Deal with Inputs and Outputs

Integrated Modeling ? How ? Application Application Surface runoff Evaporation Precipitation Application Application Rainfall/Runoff Output data Input data User interface User interface Input data Hydraulics ? Rainfall runoff model Output data How ? Estuary Coast Evaporation River Hydraulic model

Benefits of Integrated Modeling Water Balance Standardized, Modular system Process interactions Plug-and-play Chance for individuals to publish models

How can models exchange data

Quantities are variables accepted or provided by a model What Quantities are variables accepted or provided by a model

Elements are the locations where quantities are measured

When At each time step? After simulations? Iterations?

How Model definition: Define quantities a model can exchange, and at which elements can it exchange them. Configuration: Define which models are linked in terms of quantities and elements. Runtime operation: Enable the model to accept or provide data at run time.

Outline Background Thinking through integrated modeling The OpenMI standard

What is OpenMI: Revisted The OpenMI standard defines an interface that allows time-dependent models to exchange data at runtime. When the standard is implemented, existing models can be run in parallel and share information at each time step. http://www.openmi.org/

What is an Interface result = Calculator.SquareRoot(16) What’s the square root of 16? Programs and functions, revisted Program Functions: 16 Math library Add Multiply 4 SquareRoot

What is an Interface An interface defines how a program interacts with an object An interface includes properties and methods (functions) Calculator object Math library Functions: Calculator Math library Add Multiply Add (NumberArray) : Number SquareRoot Multiply (NumberArray) : Number SquareRoot (Number) : Number

Interface for Hydro Data Exchange Rainfall runoff Get values Hydraulic Get values Ecology Get values Economic Get values OpenMI defines an Interface with a GetValues method, among others Interface

OpenMI is ‘interface-based’ Its ‘standardized’ part is defined as a software interface specification. This interface acts as a ‘contract’ between software components. The interface is not limited to specific technology platforms or implementations. By implementing this interface a component becomes an OpenMI compliant component.

OpenMI is ‘open’ Its specification is publicly available via the Internet (www.OpenMI.org). It enables linkages between different kinds of models, different disciplines and different domains. It offers a complete metadata structure to describe the numerical data that can be exchanged in terms of semantics, units, dimensions, spatial and temporal representation and data operations. It provides a means to define exactly what is linked, how and when. Its default implementation and software utilities are available under an open source software license.

OpenMI is a ‘standard’ It standardizes the way data transfer is specified and executed. It allows any model to talk to any other model (e.g. from a different developer) without the need for cooperation between model developers or close communication between integrators and model developers. Its generic nature does not limit itself to a specific domain in the water discipline or even in the environmental discipline.

GetValues Method Occurs at a time step Models called sequentially For the geeks… ILinkableComponent.GetValues(time :ITime, linkID :string) : IValueSet

GetValues Chaining Options optimization and iteration controllers can be created for those operations

Handling GetValues

Conceptual Model for Data Exchange GetValues(time, linkID) when what,where

Conceptual Model for Data Exchange What the values represent and in what unit they are expressed is indicated by the quantity and its unit. Where these values apply is indicated by the ElementSet class, which contains an ordered set of elements. When the values apply is indicated by the time, either expressed as an instantaneous moment in time (a timestep) or a period over time (a time span).

Base units and base quantities in OpenMI (derived from SI) Base quantity SI base unit Symbol used Length metre m Mass kilogram kg Time second s ElectricCurrent ampere A Temperature Kelvin K AmountOfSubstance mole mol LuminousIntensity candela cd Currency Euro E

Example of ‘Quantities’

Elements (where exchange happens) ID-based or geospatial representation If geospatial, defined by set of nodes May or may not be georeferenced Elements in an ElementSet must be of the same type

Element Types

Examples of Element Sets

Element Set Properties

Interpreting positive values of fluxes, levels and depths

Data Operations Operations which define how information is exchanged between exchange items Spatial Interpolation TakeNearest Temporal Aggregation Extrapolation Other

Advanced Example Data operations allow data to be exchanged between these two models at various types of interfaces (e.g., nodes, lines, interpolations on areas)

Exchange Items Grouping of Quantity and ElementSet Input and Output exchange items Output exchange items include DataOperation

Example of Exchange Items

Linkable Component Model engine with implementation of OpenMI standard interface DLL Model Definition Exchange Items Configuration Run-time operation GetValues Linkable Component Rainfall-Runoff Model --InputExchangeItems --Quantities --ElementSets --OutputExchangeItems Model

Links LINK Rainfall-Runoff Model River Model A link is the data path connecting two linkable components Linkable Component Linkable Component Rainfall-Runoff Model --InputExchangeItems --Quantities --ElementSets --OutputExchangeItems River Model --InputExchangeItems --Quantities --ElementSets --OutputExchangeItems LINK ID Description TargetComponent TargetQuantity TargetElementSet SourceComponent SourceQuantity SourceElementSet DataOperationsCount GetDataOperation Model Model

Example Links

Composition LINK Composition Rainfall-Runoff Model River Model A composition is a set of linkable components, possibly populated with model data and interconnected with links. Composition Rainfall-Runoff Model --InputExchangeItems --Quantities --ElementSets --OutputExchangeItems River Model --InputExchangeItems --Quantities --ElementSets --OutputExchangeItems LINK Model Model

OpenMI Systems An OpenMI system is any software application that includes a set of one or more OpenMI compliant components. The system must know: where it can find linkable components. what links exist between linkable components. how to instantiate, deploy and run a combination of linkable components.

OMI Files An OMI file is an XML file that contains the information needed to instantiate an OpenMI component and populate it with input data. An OMI file points to: Location of DLL for the OpenMI compliant model Location of input files

Deployment of an OpenMI linkable component Instantiation and initialization. Read OMI file, construct linkable component, and populate with input data. Inspection and configuration. Set up links with exchange items and validate links. Preparation. Finish preparatory work before computation begins. For example, database and network connections are established, output files are opened and buffers are organized. Computation/execution. Loop through each time step, making necessary calculations and exchanging data with other linkable components. Completion. Close file and network connections, clean up memory, etc. Disposal. This phase is entered when the application is closed. Remaining objects are removed and memory is deallocated.

OmiEd A visual tool for building and running OpenMI systems

Steps to Building an OpenMI System Start the configuration editor. Add models to the composition. Establish connections between the models. Configure the connections. Add a trigger. Run the composition.

Migrating Existing Models Rework engine to implement OpenMI interfaces Allows exchange of quantities Can be applied to databases or other data sources Easiest way is to modify engine core and then wrap it

Requirements for OpenMI Linkable Components (1) Initialization is separate from computation. Available modeled quantities are exposed to the outside world. Modeled quantities can be provided for any requested point in time and space. The model must be able to respond to a request, even when the component itself is time independent; if the response requires data from another component, the component must be able to pass on the time in its own request. The model must be able to submit to runtime control by an outside entity.

Requirements for OpenMI Linkable Components (2) For components progressing in time, the requirement ‘always’ to return values when requested imposes the following conditions: The delivering component must know what time it has reached, how that compares to the requested time, and how to proceed if the times don’t match up (extrapolate, compute, etc.). Components must be able to interpolate if the requested time is not in their own time step or space frame. Components must know when they are waiting for data, in which case they will have to return an extrapolated value.

Migrating a Model OpenMI provides utilities to assist in migrating a model. Model migration involves 7 steps. Change the engine core. Create the .NET assemblies. Access the functions in the engine core. Implement MyEngineDotNetAccess. Implement the wrapper class. Implement the linkable component. Implement the remaining IEngine methods.

Model Migration: 1 Change the engine core. The model engine should be converted from an EXE file to a DLL, which can be accessed by other components.

Model Migration: 2 Create the .NET assemblies. After installing the OpenMI Environment, create assemblies for wrapper classes and test classes in the .NET development environment.

Model Migration: 3-7 Access the functions in the engine core. The engine needs to be accessible from .NET. The MyEngineDLLAccess class makes a one-to-one conversion of all exported functions in the engine core code to public .NET methods. Implement MyEngineDotNetAccess. This class changes the calling conventions to C# conventions and converts error messages into .NET exceptions. Implement the wrapper class. The MyEngineWrapper class implements the ILinkableEngine interface. (Initializing, Finalizing) Implement the linkable component. The MyModelLinkableComponent class must be implemented. This class defines the linkable component that is accessed by other models. Implement the remaining IEngine methods. The remaining methods in the MyEngineWrapper class must be implemented (e.g., GetValues). In some cases you may need to make changes to the engine core as well as adding code to the IEngine methods.

Acknowledgements Content and images are taken from material at http://www.openmi.org/openminew/ http://www.openmi-life.org/