Skip to main content
Version: Next

Introduction

The SeaSketch Geoprocessing framework is an all-in-one solution for developing low-cost and low-maintenance geoprocessing functions and reports for the web, with Typescript. Simplified publish to cloud with auto-scaling to meet high demand.

This framework is part of the SeaSketch ecosystem.

Who is this framework for?

This framework is primarily designed for people that want to create and host their own geoprocessing functions and reports and plug them into their SeaSketch project, though it is not dependent on SeaSketch.

It is used for all SeaSketch projects.

Goals

  • Serverless architecture that scales up to meet high demand, then scales down to near zero cost when not in use.
  • First-class Typescript development experience.
  • Provide a stable environment for writing analytical reports with React.
  • Utilize cloud-optimized data formats including Flatgeobuf and Cloud-optimized GeoTIFF (COG)
  • Open source license

License

Geoprocessing source code is licensed under a BSD 3-clause license and any reuse or modifications must retain this license with copyright notice.

Wiki docs, including any code snippets in tutorials, are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Creative Commons License

Features

  • Cloud-native serverless architecture
  • Plug-and-play with SeaSketch platform
  • End-to-end support and use of Typescript
  • Project generator with templates and built-in commands for common project tasks
  • Library of React UI components ready to add to reports.
  • Docker workspace preloaded with open source geo tools for data preparation.
  • Supports extended GeoJSON feature types called Sketches and SketchCollections suited to collaborative spatial planning
  • Uses cloud-optimized techniques for storing and retrieving large datasets over a network including Flatgeobuf, Cloud-optimized GeoTIFFs (COGs), and subdivision.
  • Toolbox of geoprocessing functions utilizing Turf JS, Geoblaze, Simple Statistics.
  • Cloud-native serverless architecture using AWS Cloud Formation, with automated provisioning and migration as a project evolves.
  • APIs for accessing project resources and integration including REST, Web Socket, and IFrame postMessage.

Skill Building

There are a number of required skills for using this framework successfully. If you don't have this knowledge, then skill building and potentially mentorship may be needed for you to succeed. Here is a list of resources that can help you get started:

Essential tips For configuring this framework using a specific operating system (usually Ubuntu).

3rd Party Building Blocks

You will interact with a number of building blocks when creating a geoprocessing project, many of which are 3rd party software and services. The main building blocks include:

  • Github - hosts the geoprocessing code repository. It's also the recommended place to host your geoprocessing project.
  • NPM - the Node Package Manager or NPM, hosts the geoprocessing Javascript package and allows it to be installed on your computer. It consists of an online repository for hosting Javascript packages, and a client library that is bundled with NodeJS on your local computer.
  • NodeJS - an open source, cross-platform Javascript environment that allows Javascript code to be run on your computer. The geoprocessing framework is written almost entirely in Typescript, which is converted to Javascript. Every time you run a geoprocessing command, NodeJS is what is used behind the scenes to execute it.
  • Docker hub - Docker Hub is a container image registry. Container images are lightweight, standalone, executable packages of software that include everything needed to be self-sufficient: code, runtime, system tools, system libraries and settings. Docker Hub publishes the geoprocessing docker container images including geoprocessing-workspace and geoprocessing-db, which together provide a full suite of geospatial software needed by the geoprocessing framework, and that you can use for working with and publishing your geospatial data.
  • Docker Desktop - software used to create and run instances of the geoprocessing container images on the users computer. For Windows users, it also provides a way to install and run the geoprocessing framework within the Windows Subsystem for Linux (WSL).
  • VS Code - provides an integrated development environment (IDE) for managing a geoprocessing project including code editing, command-line terminal, Github integration, and more.
  • Amazon Web Service (AWS) - AWS is the cloud service provider that ultimately hosts your geoprocessing project and integrates with a SeaSketch project to run reports on demand. It provisions the necessary storage, compute and database infrastructure automatically using CDK.

To learn more about , visit the architecture page.