GeoTrellis is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
, geographic data processing library designed to work with large geospatial
raster data
upright=1, The Smiley, smiley face in the top left corner is a raster image. When enlarged, individual pixels appear as squares. Enlarging further, each pixel can be analyzed, with their colors constructed through combination of the values for ...
sets. It is written in
Scala and has an open-source
Apache 2.0 license.
Description
GeoTrellis' core competency is raster data processing: enabling distributed processing of large geospatial raster data sets using the techniques of
map algebra
Map algebra is an algebra for manipulating geographic data, primarily Field (geography) , fields. Developed by Dr. Dana Tomlin and others in the late 1970s, it is a set of primitive operations in a geographic information system (GIS) which allows ...
. In addition to support for raster data operations, GeoTrellis includes some support for operations using
vector and
point cloud
Point or points may refer to:
Places
* Point, Lewis, a peninsula in the Outer Hebrides, Scotland
* Point, Texas, a city in Rains County, Texas, United States
* Point, the NE tip and a ferry terminal of Lismore, Inner Hebrides, Scotland
* Point ...
data.
GeoTrellis leverages
Apache Spark
Apache Spark is an open-source unified analytics engine for large-scale data processing. Spark provides an interface for programming clusters with implicit data parallelism and fault tolerance. Originally developed at the University of Californi ...
for distributed processing. Distributed processing relies on indexing large datasets based on a multi-dimensional
space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, space ...
(SFC). SFCs enable the translation of multi-dimensional indices into a single-dimensional one, while maintaining geospatial locality. This allows for efficient reading and writing of large datasets to be performed in parallel across multiple computers.
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
bindings have been developed for GeoTrellis as a sub-project called GeoPySpark that enables Python developers to access and use the GeoTrellis library.
Project History
GeoTrellis started as a research project at Azavea, a geospatial software company based in Philadelphia. A precursor software component, DecisionTree, was developed beginning in 2006 with support from a
Small Business Innovation Research
The Small Business Innovation Research (or SBIR) program is a U.S. government funding program, coordinated by the Small Business Administration, intended to help certain small businesses conduct research and development (R&D). Funding takes the f ...
grant from the
U.S. Department of Agriculture. In 2009, with financial support from the
William Penn Foundation
The William Penn Foundation is a grant-making foundation established in 1945 in Philadelphia, Pennsylvania, by businessman Otto Haas and his wife Phoebe, and initially called the Phoebe Waterman Foundation.
It strives to improve "the quality of ...
and
Stroud Water Research Center, Azavea embarked on early development of GeoTrellis.
GeoTrellis was released as an open source project in 2011 with the goal of supporting fast processing of geospatial raster data at scale.
GeoTrellis initially supported distributed computation through
Akka
Akka or AKKA may refer to:
Arts and entertainment
* ''Akka'' (film), a 1976 Indian Tamil film
* ''Akka'' (TV series), a 2014–2015 Indian Tamil soap opera
* Akka, a character in the children's novel ''The Wonderful Adventures of Nils'' by Selma ...
, a Scala framework for building concurrent and distributed applications. The need to support additional use cases and features such as caching and sharding datasets across a storage cluster led to a search for a new distribution framework. GeoTrellis moved to
Apache Spark
Apache Spark is an open-source unified analytics engine for large-scale data processing. Spark provides an interface for programming clusters with implicit data parallelism and fault tolerance. Originally developed at the University of Californi ...
as its distribution engine in 2014 in order to leverage management, scheduling, and other features in the Spark framework. One key use case that drove this phase of development was the need to efficiently process large, spatiotemporal datasets like those used for many earth science applications, such as climate change. The move to Apache Spark enabled efficient support for large climate change forecast datasets published by the
Intergovernmental Panel on Climate Change
The Intergovernmental Panel on Climate Change (IPCC) is an intergovernmental body of the United Nations. Its job is to advance scientific knowledge about climate change caused by human activities. The World Meteorological Organization (WMO) a ...
(IPCC).
GeoTrellis was submitted to the
Eclipse Foundation's LocationTech working group in 2013 and graduated from incubation with a 1.0 release in December 2016.
GeoTrellis has been used in a number of geospatial domains including: satellite and aerial image processing, forest growth simulation, agricultural yield predictions, planning, digital humanities, government infrastructure investment, and machine learning to support crime risk forecasting. It is currently integrated into other open source software projects including: Raster Foundry, Raster Frames, and GeoPySpark.
References
{{Reflist
External links
GeoTrellis homepageGeoTrellis SourceAzavea homepageLocationTech homepageRaster Foundry homepageGeoPySpark SourceRaster Frames project
Free software programmed in Scala