Last Updated: May 18, 2016
The Software Suite is the component of Tethys Platform that provides access to resources and functionality that are commonly required to develop water resources web apps. The primary motivation of creating the Tethys Software Suite was overcome the hurdle associated with selecting a GIS software stack to support spatial capabilities in apps. Some of the more specialized needs for water resources app development arise from the spatial data components of the models that are used in the apps. Distributed hydrologic models, for example, are parameterized using raster or vector layers such as land use maps, digital elevation models, and rainfall intensity grids.
A majority of the software projects included in the software suite are web GIS projects that can be used to acquire, modify, store, visualize, and analyze spatial data, but Tethys Software Suite also includes other software projects to address computing and visualization needs of water resources web apps. This article will describe the components included in the Tethys Software Suite in terms of the functionality provided by the software.
Spatial Database Storage
Tethys Software Suite includes the PostgreSQL database with PostGIS, a spatial database extension, to provide spatial data storage capabilities for Tethys web apps. PostGIS adds spatial column types including raster, geometry, and geography. The extension also provides database functions for basic analysis of GIS objects.
To use a PostgreSQL database in your app use the :doc:`./tethys_sdk/tethys_services/persistent_store`. To use a spatially enabled database with PostGIS use the :doc:`./tethys_sdk/tethys_services/spatial_persistent_store`.
Tethys Software Suite provides GeoServer for publishing spatial data as web services. GeoServer is used to publish common spatial files such as Shapefiles and GeoTIFFs in web-friendly formats.
To use the map publishing capabilities of GeoServer in your app refer to the :doc:`./software_suite/geoserver` documentation and use the :doc:`./tethys_sdk/tethys_services/spatial_dataset_services`.
52°North Web Processing Service (WPS) is included in Tethys Software Suite as one means for supporting geoprocessing needs in water resources web app development. It can be linked with geoprocessing libraries such as GRASS, Sextante, and ArcGIS® Server for out-of-the-box geoprocessing capabilities.
The PostGIS extension, included in the software suite, can also provide geoprocessing capabilities on data that is stored in a spatially-enabled database. PostGIS includes SQL geoprocessing functions for splicing, dicing, morphing, reclassifying, and collecting/unioning raster and vector types. It also includes functions for vectorizing rasters, clipping rasters with vectors, and running stats on rasters by geometric region.
To use 52°North WPS or other WPS geoprocessing services in your app use the :doc:`./tethys_sdk/tethys_services/web_processing_services`.
To use an OpenLayers map in your app use the Map View Gizmo of the :doc:`./tethys_sdk/gizmos`.
To use an OpenLayers map in your app use the Google Map View Gizmo of the :doc:`./tethys_sdk/gizmos`.
To use an OpenLayers map in your app use the Plot View Gizmo of the :doc:`./tethys_sdk/gizmos`.
To facilitate the large-scale computing that is often required by water resources applications, Tethys Software Suite leverages the computing management middleware HTCondor. HTCondor is both a resource management and a job scheduling software.
File Dataset Storage
Tethys Software Suite does not include software for handling flat file storage. However, Tethys SDK provides APIs for working with CKAN and HydroShare to address flat file storage needs. Descriptions of CKAN and HydroShare are provided here for convenience.
CKAN is an open source data sharing platform that streamlines publishing, sharing, finding, and using data. There is no central CKAN hub or portal, rather data publishers setup their own instance of CKAN to host the data for their organization.
HydroShare is an online hydrologic model and data sharing portal being developed by CUAHSI. It builds on the sharing capabilities of CUAHSI’s Hydrologic Information System by adding support for sharing models and using social media functionality.
To use a CKAN instance for flat file storage in your app use the :doc:`./tethys_sdk/tethys_services/dataset_services`. HydroShare is not fully supported at this time, but when it is you will use the :doc:`./tethys_sdk/tethys_services/dataset_services` to access HydroShare resources.
Tethys Software Suite uses Docker virtual container system to simplify the installation of some elements. Docker images are created and used to create containers, which are essentially stripped down virtual machines running only the software included in the image. Unlike virtual machines, the Docker containers do not partition the resources of your computer (processors, RAM, storage), but instead run as processes with full access to the resources of the computer.
Three Docker images are provided as part of Tethys Software Suite including:
- PostgreSQL with PostGIS
- 52° North WPS
The installation procedure for each software has been encapsulated in a Docker image reducing the installation procedure to three simple steps:
- Install Docker
- Download the Docker images
- Deploy the Docker images as containers
Tethys Platform provides a software development kit (SDK) that provides application programming interfaces (APIs) for interacting with each of the software included in teh Software Suite. The appropriate APIs are referenced in each section above, but a summary table of the relationship between the Software Suite and the SDK is provided as a reference.
|PostgreSQL||:doc:`./tethys_sdk/tethys_services/persistent_store`||SQL Database Storage|
|PostGIS||:doc:`./tethys_sdk/tethys_services/spatial_persistent_store`||Spatial Database Storage and Geoprocessing|
|GeoServer||:doc:`./tethys_sdk/tethys_services/spatial_dataset_services`||Spatial File Publishing|
|52° North WPS||:doc:`./tethys_sdk/tethys_services/web_processing_services`||Geoprocessing Services|
|OpenLayers, Google Maps, HighCharts||:doc:`./tethys_sdk/gizmos`||Spatial and Tabular Visualization|
|HTCondor||:doc:`./tethys_sdk/compute` and :doc:`./tethys_sdk/jobs`||Computing and Job Management|
|CKAN, HydroShare||:doc:`./tethys_sdk/tethys_services/dataset_services`||Flat File Storage|
.. toctree:: :maxdepth: 1 software_suite/geoserver