You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Vision

Delta Shell is an open modelling environment. The main goal of Delta Shell is to provide a solid software platform for running 1D, 2D and 3D environmental models.

The system allows creating, storing and visualizing different types of environmental data, like time series, networks, GIS features, and other data types defined in the spatio-temporal domain.

The architecture of the system, due to its modular and open design, can also support a wide range of other applications such as GIS data management and analysis/management of hydrological data.

The present version of the system makes extensive use of open-source libraries such as GeoAPI, NetTopologySuite, SharpMap, NetCDF, NHibernate, SQLite, PostSharp.

The Delta Shell Framework should result in decreased maintenance and support costs. Furthermore, it should enhance exibility in modelling opportunities resulting in an increase of project acquisition. It also enhances knowledge sharing between developers and modellers. Lead time to market for new products (plug-ins) should be decreased when using Delta Shell as a development platform.

For users:

All modellers should be able to use the Delta Shell combined with the modelling tools of their preference (ex. D-Flow 1D/2D, D-Flow FM, Simona, Mike11, etc.). The Delta Shell should facilitate modellers in batch execution (from command line), schematization (with/without graphical user interface), parallel execution (on clusters), calibration of models and running of models in standardized modelling environments (ex. OpenMI).

For developers:

The Delta Shell Framework should provide a generic, transparent and simple way of developing new or coupling existing modelling tools (plug-ins). The emphasis should be on reuse and expansion of existing code and features.

Architecture outline

The architecture outline of Delta Shell is shown in the figure below. As can be seen from the figure, Delta Shell consists of a set of common class libraries, mainly representing different domains and software standards such as:

  • OGC-based geometries and features;
  • hydrologic network objects;
  • mathematical and physics libraries;
  • general application framework class libraries (Core, Gui).

These general framework class libraries define on a very high level how a typical console or graphical user interface application is constructed. They also define how different parts of the environment can be extended by means of plugins. This includes both:

  • non-gui plugins providing new data types or computational models to the system, and;
  • graphical user interface components used to visualize different data.


Background readings on Delta Shell 

Unfortunately there currently is no complete set of documentation available for the Delta Shell components and interfaces and, additionally, the documentation that is available quickly becomes obsolete as development of Delta Shell progresses further.

Nevertheless, some background papers are available that are recommended for new Delta Shell developers to read before proceeding with any tutorials or exercises:

  • Delta Shell, an open modelling environment (PDF) 

    [TOOLS:TODO] Add link to PDF


    G. V. Donchyts, B. Jagers, (iEMSs 2010)
  • Functional Coverages (PDF) 

    [TOOLS:TODO] Add link to PDF


    G. V. Donchyts, F. Baart, H.R.A Jagers, A van Dam (OSGeo Journal 10, 2011)

Background readings on used open-source libraries

Additional information that might be useful, concerns the open source geospatial libraries that are used by Delta Shell. These background readings can be found at their repositories on the internet:

NetCDF, GeoAPI.Net and NetTopologySuite are used closely together and have each been extended by Deltares to develop the Functional Coverages spatial API.

SharpMap is the Map UI component used by Delta Shell which has been extended by Deltares in a separate branch that can be found at the SharpMap repository (http://sharpmap.codeplex.com/SourceControl/latest#Branches/0.9.5-DeltaShell).

Some final notes:

  • For NetCDF, the plain C API is used for optimal performance by integrating a .NET 'wrapper' in the DelfTools.Utils.NetCDF library. The C# wrapper classes are quite similar to but not exactly modelled after the NetCDF Java API.
  • Quite a few other external libraries (SQLite, NHibernate, PostSharp, Mono.Addins, etc.) are mentioned in the background papers or used in tutorials and exercises; you may need to read up on these tools later.
  • No labels