GeoTrellis 1.0 Release with LocationTech

By Ross Bernet on January 9th, 2017

GeoTrellis 1.0 Release

GeoTrellis, a geographic data processing engine for high performance applications, is a Scala library and framework that uses Spark to work with raster and other geospatial data. GeoTrellis 1.0 was recently released under LocationTech, marking a major achievement for the community that has helped to build the project.

GeoTrellis

A 1.0 release is a significant milestone for an open source project. It’s an indicator of maturity and reliability. GeoTrellis was released as an open source project in 2011 with the goal of helping people process raster data (imagery, elevation and other, similar data) at scale. In April 2016, we released version 0.10, the first to leverage the Apache Spark framework to support distributed processing.

This post will explain the motivation to release under LocationTech and what the decision means for GeoTrellis users and contributors.

LocationTech

LocationTech is a working group hosted by the Eclipse foundation with a charter to foster community around commercial-friendly, open source, advanced geospatial technology. Azavea joined LocationTech in 2013 and submitted the GeoTrellis project for incubation later that year. Here are some of the reasons why:

GeoTrellis developers have already benefited from collaboration with other LocationTech projects since joining in 2013. An example of this is when developers from GeoMesa and GeoTrellis worked together to create the SFCurve library. It’s a solution to the common problem of creating Z-order curve indices based on spatial or spatiotemporal properties of data. Additionally, members from GeoTrellis have participated and presented at the annual LocationTech tour, which has become a global event promoting open source geospatial software.

Impact on Users

There will a number of new features and few inconveniences that come with 1.0. This major release marks our official graduation but only includes minor API breaks with respect to 0.10.3. The release from .09 to 0.10 had many large architectural changes stemming from the transition to Apache Spark which required significant API changes. This is not the case for 1.0. You will need to upgrade your project and change the organization to “org.locationtech” as shown below:

libraryDependencies += "org.locationtech.geotrellis" %% "geotrellis-raster" % "1.0.0"

GeoTrellis will still be available on Maven Central via sonatype’s nexus repository in addition to repo.locationtech.org. The last release 0.10.3 was only available on sonatype’s nexus repository.

Major New Features

  • Streaming GeoTiff support
  • Windowed GeoTiff reading on S3 and Hadoop
  • Improved ETL capabilities
  • HBase and Cassandra support
  • A new Collections API that eanbles users to bypass Spark in some cases
  • Experimental support for Vector Tiles, GeoWave integration, and GeoMesa integration
  • Expanded documentation moved to ReadTheDocs. This greatly improves usability, readability, and searchability

See a comprehensive list of changes here

Color Corrected Aerial Image of Egypt

Considerations

The GeoTrellis team decided that the many benefits to joining LocationTech outweighed the potential downsides. However, in the interest of transparency, it’s important to discuss the potential downsides we considered:

  1. We were required to transfer the GeoTrellis trademark to the Eclipse Foundation
  2. We had to cede some control by implementing formal voting and decision-making processes. There are pros and cons to creating a larger and more formal decision-making body for a project, but we think the increased number of perspectives will outweigh the possibility of slower decision-making time
  3. One-time requirements to officially graduate involved:
    1. Submitting the GeoTrellis codebase and dependencies to intellectual property review
    2. Setup software build systems that publish to LocationTech infrastructure
    3. Submit the project to the Project Management Committee for review before each release
    4. Graduation review to make sure project is up to Eclipse standards

We are excited about the move and the significance of the achievement. In addition to the core GeoTrellis library, we have also made substantial progress on related efforts including deployment tools with GeoDocker and new demonstration applications. GeoTrellis has grown it’s community and user base over the years. GeoTrellis has been the collective work of more than 50 people and 6,500 commits.

A 1.0 release marks the effort of this community and the maturation of GeoTrellis. Now that we’ve reached this milestone, we plan to implement a more regular release schedule.

Next Steps

We have lots of plans for new features in GeoTrellis, and we have posted a roadmap.  Here are a few highlights:

  • Support for vector tiles
  • Python bindings and Jupyter integration
  • Integration with other open source projects like GeoWave, GeoMesa, and GeoServer
  • New raster operations: viewshed, cost distance, hydrology operations
  • Support for machine learning and computer vision workflows

Connect with us

We appreciate hearing about the projects that GeoTrellis supports – please get in touch via Twitter, our mailing list, our Gitter channel, or email to share what you are working on.

  • GitHub – Issues, codebase, documentation, everything you need
  • Our mailing list – Stay informed about releases, bug bashes, and GeoTrellis updates
  • Gitter – Scala is hard. We can help. Come ask questions about your GeoTrellis project
  • Twitter – We send team members to conferences, workshops, and share Big Data Open Source Geo project news
  • Email – Have questions about a project idea that could benefit from processing rasters at a scale? Reach out to us via email – we’d love to hear from you!