Features

Last Updated: May 28, 2015

Tethys is a platform that can be used to develop and host engaging, interactive water resources web applications or web apps. It includes a suite of free and open source software (FOSS) that has been carefully selected to address the unique development needs of water resources web apps. Tethys web apps are developed using a Python software development kit (SDK) which includes programmatic links to each software component. Tethys Platform is powered by the Django Python web framework giving it a solid web foundation with excellent security and performance.

_images/example_app_page.png

Tethys platform can be used to create engaging, interactive web apps for water resources.

Software Suite

Tethys Platform provides a suite of free and open source software. Included in the Software Suite is PostgreSQL with the PostGIS extension for spatial database storage, GeoServer for spatial data publishing, and 52 North WPS for geoprocessing. Tethys also provides Gizmos for inserting OpenLayers and Google Maps for interactive spatial data visualizations in your web apps. The Software Suite also includes HTCondor for managing distributed computing resources and scheduling computing jobs.

_images/tethys_platform_diagram.png

Tethys Platform include software to meet water resources web app development needs.

Note

Read more about the Software Suite by reading the Software Suite documentation.

Python Software Development Kit

Tethys web apps are developed with the Python programming language and a Software Development Kit (SDK). Tethys web apps projects are organized using a model-view-controller (MVC) approach. The SDK provides Python module links to each software component of the Tethys Platform, making the functionality of each software easy to incorporate each in your web apps. In addition, you can use all of the Python modules that you are accustomed to using in your scientific Python scripts to power your web apps.

_images/app_code.png

Tethys web apps are developed using Python and the Tethys SDK.

Note

Read more about the Tethys SDK by reading the Software Development Kit documentation.

Templating and Gizmos

Tethys SDK takes advantage of the Django template system so you can build dynamic pages for your web app while writing less HTML. It also provides a series of modular user interface elements called Gizmos. With only a few lines of code you can add range sliders, toggle switches, auto completes, interactive maps, and dynamic plots to your web app.

_images/example_gizmo.png

Insert common user interface elements like date pickers, maps, and plots with minimal coding.

Note

Read more about templating and Gizmo by reading the App Templating API and the Template Gizmos API documentation.

Tethys Portal

Tethys Platform includes a modern web portal built on Django that is used to host web apps called Tethys Portal. It provides the core website functionality that is often taken for granted in modern web applications including a user account system with with a password reset mechanism for forgotten passwords. It provides an administrator backend that can be used to manage user accounts, permissions, link to elements of the software suite, and customize the instance.

The portal also includes landing page that can be used to showcase the capabilities of the Tethys Platform instance and an app library page that serves as the access point for installed apps. The homepage and theme of Tethys Portal are customizable allowing organizations to re-brand it to meet the their needs.

_images/apps_library.png

Browse available web apps using the Apps Library.

Note

Read more about the Tethys Portal by reading the Tethys Portal documentation.

Computing

Tethys Platform includes Python modules that allow you to run computing jobs in distributed computing environments. With CondorPy you can define your computing jobs and submit them to distributed computing environments using HTCondor or Dask Distributed.

_images/computing_condorpy.png

CondorPy enables computing jobs to be created and submitted to a HTCondor computing pool.

HTCondor provides a way to make use of the idle computing power that is already available in your office.

Note

To learn more, read the Jobs API.

Acknowledgements

This material is based upon work supported by the National Science Foundation under Grant No. 1135482