Skip to content

SeaSketch Technical Details

Chad Burt edited this page May 3, 2022 · 5 revisions

SeaSketch is offered as a web-based Software as a Service (SaaS) hosted and supported by the McClintock Lab at the University of California, Santa Barbara. End-users and project administrators need not install or host software in order to create new projects. New projects can be created and customized using SeaSketch's administrative interface. These tools can be used to upload data or link to services for visualization, configure planning tools to match local regulations and goals, and setup discussion forums and collaboration tools to match the structure of a planning process. Custom analytical reports can be developed and hosted by the McClintock Lab or created and self-hosted by project administrators using our Geoprocessing Framework.

SeaSketch is open-source licensed and we welcome contributions and feedback. We do not support self-hosting of the server and client software, though reporting tools can be customized using self-hosted geoprocessing tools.

Server Software and Environment

  • SeaSketch is hosted on Amazon Web Services. The deployment is managed using an infrastructure-as-code implementation using AWS CDK.
  • Authentication services are provided by Auth0. Project administrators have multiple options for managing access to their projects, including access control lists and email invites.
  • Application data is stored in a PostgreSQL database.
  • SeaSketch exposes a GraphQL API for communicating with clients. This API is supported by a Node.js server utilizing Postgraphile. These services are hosted by multiple containers on AWS ECS for redundancy and to support zero-downtime deployments.
  • Compute intensive tasks are offloaded to AWS Lambda services to avoid contention with GraphQL API requests.

Client Application

  • The SeaSketch client is a React application written in Typescript.
  • Apollo Client is used to fetch data from the GraphQL API
  • mapbox-gl-js is used as the mapping client, and we've developed extensions to support data services from other providers such as Esri.
  • Users are expected to access SeaSketch using an evergreen browser such as Chrome, Safari, Firefox, or MS Edge.

Development Practices

  • SeaSketch development is supported by a Continuous Integration system which runs unit and end-to-end tests upon each check in.
  • Zero-downtime, automated deployments are used to ensure a fast cadence of improvements to the system, often with multiple system updates in a day.
  • Errors are monitored using Sentry to ensure reliability of the system.

Geospatial Data Sources

Map data used for visualization in SeaSketch are broken up into two different categories, Maps and Overlays.

Maps

Maps (e.g. basemaps) contain many different data layers compiled into a single coherent view. We recommend simplifying data visualization by compiling a handful of basemaps representing important themes and frequently used datasets. An example list could be something like the following:

  • Satellite - Raster imagery
  • Benthic Habitats - benthic substrate classified into categories such as sand, reef, and cobble
  • Transportation - emphasizing locations of ports, and includes a heatmap of vessel transit data
  • Fishing - again emphasizing ports and boat ramps, and including fishing data from sources such as Global Fishing Watch

Maps are represented in SeaSketch as mapbox-gl-style documents. These may be authored and hosted in MapBox Studio, or developed and hosted using open source tools and uploaded to SeaSketch.

Overlays

Overlays are additional map layers that can be displayed on top of Maps. You can list an exhaustive set of all relevant geospatial data that may be used in a project but does not fit into the curated list of Maps. Overlays can be added from a growing list of different data sources, and vector data can even be uploaded directly into SeaSketch for hosting.

  • ArcGIS Feature Services
  • ArcGIS Map Services (dynamic or tiled)
  • GeoJSON Upload - coming soon
  • WMS - planned
  • Tiled Map Services (TMS/WMTS) - planned

Public Availability

SeaSketch Next is currently under development and is a full rewrite of the legacy system seen on seasketch.org. It has been used since February 2022 for ocean use surveys as part of the Blue Prosperity Initiative. SeaSketch Next is not yet a feature-complete replacement for legacy SeaSketch. We anticipate a public launch with full features such as sketching, reporting tools, and discussion forums by the end of 2022.