❮ Projects Implement topojson reader/writer for vector data

TopoJSON is an extension to GeoJSON specification that encodes a collection of geometries in such a way that transformations on those geometries, such as reprojection, preserves the topology. In practice this prevents prevents gaps from forming between previously adjacent geometries when they undergo reprojection due to floating point approximations. Additionally a notion of topology is useful when performing geometry simplifications, removing vertexes while preserving as much of the original shape as possible. This project will extend GeoTrellis GeoJSON support with TopoJSON specification, allowing reading and writing of Topology feature type. In addition Topology will be added to geotrellis.vector package as a type that encodes a topology and supports common operations such as reprojection.

Milestones

Preparation

In the beginning of the project you will prepare by:

Coding Phase 1

In the first coding phase, you’ll create the core elements in GeoTrellis for representing topologies.

  • Create the Topology datatype
  • Transferring vector data (point, line, polygon) to topology datatypes

Coding Phase 2

In this phase of coding, you’ll work on TopoJSON I/O and simplification algorithms.

  • Writing and reading topology data as TopoJSON
  • Simplification of Topologies

Coding Phase 3

In the final coding phase, you’ll work towards testing and documenting the feature, add final touches, and get this contribution merged into GeoTrellis!

  • Other topological operations
  • Testing, documentation, PR review
  • Finalizing the contribution into the GeoTrellis codebase
Requirements
  • Scala experience
  • NetCDF experience not required but preferred
Difficulty

Medium

Until next time

Summer 2018 session is closed

Applications for the Summer 2018 session of the Azavea Open Source Fellowship Program are now closed. Sign up for notifications about future opportunities.