Skip to content


Subversion checkout URL

You can clone with
Download ZIP
GeoTrellis is a geographic data processing engine for high performance applications.
Scala Java JavaScript Shell CSS Python Other

Merge pull request #1181 from lossyrob/hadoop-catalog-apply

Adding applys to HadoopRasterCatalog
latest commit 00f0f342fc
@lossyrob lossyrob authored
Failed to load latest commit information.
.travis Setup intermediate releases for GeoTrellis on Bintray
admin break out subproject configurations
benchmark break out subproject configurations
demo/src/main Changed RasterSource method extensions to work with implicites like i…
dev updating catalog paths
engine-test Removed non-deterministic test.
engine break out subproject configurations
examples break out subproject configurations
gdal break out subproject configurations
geotools break out subproject configurations
graph break out subproject configurations
index break out subproject configurations
jetty break out subproject configurations
macros Modified TypeConversionMacros to prevent double evaluation.
notes removed extra stars from license headers
proj4 Fixed the resource file reading in geotrellis.proj4
project removing sigar as dependency
raster-test Added GridBounds.distinct
raster Fixed the resource file reading in geotrellis.proj4
scripts fix: EC2 spark worker/client refuses to use local IP, need to refer t…
services break out subproject configurations
slick break out subproject configurations
spark-etl tile layout scheme is command line argument in ETL
spark Adding applys to HadoopRasterCatalog
testkit break out subproject configurations
vector-benchmark break out subproject configurations
vector-test break out subproject configurations
vector Merge remote-tracking branch 'upstream/master' into feature/native-ti…
.gitattributes Add .gitattributes file.
.gitignore gitignore
.travis.yml Added travis keys.
LICENSE Update LICENSE Added Gitter badge
build.sbt Setup intermediate releases for GeoTrellis on Bintray Added JsonReader and JsonWriter for features. added added added cross-build to maven publish Added
sbt Attempting to cure Travis woes


Join the chat at

GeoTrellis is a Scala library and framework for creating processes to work with raster data.


GeoTrellis reads, writes, and operates on raster data as fast as possible. It also has functionality to warp (change the resolution and bounding box of) rasters on loading and throughout the operation sequence.


GeoTrellis implements many Map Algebra operations as well as vector to raster or raster to vector operations. This is the heart of GeoTrellis: preforming geospatial operations against raster data in the fastest way possible, no matter the scale.

Web Service Framework:

GeoTrellis provides tools to render rasters into PNGs for web mapping applications, or to convert information about the rasters into JSON format. One of the main goals of GeoTrellis is to provide raster processing at web speeds (sub-10 ms) for RESTful endpoints that can be consumed by web applications. Another goal is to provide fast batch processing of very large raster data.

Please visit our documentation page for more information.

You can also find more information at:

GeoTrellis is available under the Apache 2 license.

More information is also available on the GeoTrellis website.

Build Status


scalaVersion := "2.10.3"

libraryDependencies += "com.azavea.geotrellis" %% "geotrellis" % "0.9.0-RC1"

Some sample GeoTrellis code

  // Import some libraries and operations we'll use
  import geotrellis._
  import geotrellis.source._

  // Set up the rasters and weights we'll use:
  val r1 = RasterSource("rasterOne") // raster defined in catalog
  val r2 = RasterSource("rasterTwo")

  // This will define a RasterSource that is dthe addition of the
  // first raster with each cell multiplied
  // by 5, and the second raster with each cell multiplied by 2.
  // To understand what it means for a raster to be multiplied by an integer or
  // for two rasters to be added, see Map Algebra documentation,
  // GeoTrellis documentation or ask the mailing list/IRC.
  val added  = (r1*5) + (r2*2)

  // This divides the raster by the total weight,
  // which will give us the the final Weighted Overlay
  // (also called a Suitability Map).
  val weightedOverlay = added / (5+2)

  // Now we want to render this Weighted Overlay
  // as part of a WMS service. We could run the
  // renderPng operation with the default color ramp
  // (which is a Blue to Red color ramp descriped
  // at
  val rendered = weightedOverlay.renderPng

  // At this point we've only describe the work that
  // we wish to be done. Once we call 'run' on the souce,
  // we will invoke the chain of commands that we have been
  // building up, from loading the rasters from disk to
  // rendering the PNG of the wieghted overlay. match {
    process.Complete(png, history) =>
      // return the PNG as an Array of Bytes
      // for spray:
      respondWithMediaType(MediaTypes.`image/png`) {
        complete { png }
    process.Failure(message, history) =>
      // handle the failure.
      // for spray:
      failWith { new RuntimeException(message) }

API Reference

You can find Scaladocs for the latest version of the project here:


  • Josh Marcus
  • Erik Osheim
  • Rob Emanuele
  • Adam Hinz
  • Michael Tedeschi
  • Robert Cheetham
  • Justin Walgran
  • Eric J. Christeson
  • Ameet Kini
  • Mark Landry
  • Walt Chen
  • Eugene Cheipesh


Feedback and contributions to the project, no matter what kind, are always very welcome. A CLA is required for contribution, see the CLA FAQ on the wiki for more information. Please refer to the Scala style guide for formatting patches to the codebase.

Something went wrong with that request. Please try again.