The core GeoTrellis framework provides an ability to process large and small data sets with low latency by distributing the computation across multiple threads, cores, CPUs and machines. The software includes the ability to rapidly process and distribute processing of raster data as well as data import and conversion tools for the ARG data structure.
GeoTrellis is a general framework for low-latency geospatial data processing developed using Scala and Akka. The goal of the project is to transform user interaction with geospatial data by bringing the power of geospatial analysis to real time, interactive web applications. It is complementary to other open source geospatial projects such as GeoServer, OpenLayers and PostGIS. GeoTrellis was designed to solve three core problems, with an initial focus on raster processing:
- Create scalable, high performance geoprocessing web services;
- Create distributed geoprocessing services that can act on large data sets; and
- Parallelizing geoprocessing operations to take full advantage of multi-core architectures
GeoTrellis spatial data processing is organized into Operations. Multiple operations can be composed into Models. Operations include Local, Focal and Zonal operations for raster data, vector-raster conversion and network operations. A geoprocessing model in GeoTrellis is composed of smaller geoprocessing operations with well-defined inputs and outputs.
GeoTrellis is designed to help a developer create simple, standard REST services that return the results of geoprocessing models. Like an RDBS that can optimize queries, GeoTrellis will automatically parallelize and optimize geoprocessing models where possible. In the spirit of the object-functional style of Scala, it is easy to both create new operations and compose new operations with existing operations.