The GeoTiff File Format – GeoTrellis and Scala



The GeoTiff File Format – GeoTrellis and Scala

0 1


fosdem-2015-talk

GeoTrellis and the GeoTiff File Format talk @ FOSDEM 2015

On Github johanstenberg92 / fosdem-2015-talk

The GeoTiff File Format

with

GeoTrellis and Scala

Johan Stenberg / @johanstenbergg

How do you read GeoTiffs on the JVM?

  • GDAL, Geospatial C lib, fast!

  • GeoTools, Geospatial Java lib, speed?

Why yet another GeoTiff Reader?

  • GeoTools large dependency
  • GDAL Java bindings hard to install
  • Go-To raster file format at GeoTrellis
  • GeoTrellis is all about speed, everything optimized and benchmarked

What is the GeoTiff file format?

  • Extension to the Tiff File Format
  • Used for images with Geospatial Metadata
  • Adds a bounding box and the CRS through tags

Geodata?

  • Bounding Box easy to read
  • Coordinate Reference System horrible to read
  • Turn it into a proj4 string and use the proj4j lib to read

Compressions

  • Huffman, CCITT3, CCITT4, Packbits
  • LZW
  • Zip

Benchmark Time!

Benchmark Disclaimer

  • Ran on my development computer
  • Conducted with Caliper
  • Microbenchmarks, look at relative speed, not speed
  • GDAL is read through the Java bindings, into GeoTrellis rasters
  • GeoTools is also turned into GeoTrellis rasters

~same for CCITT3 and CCITT4

~same for CCITT3 and CCITT4

Sidenote about Speed

  • Scala slow when using functional mappings
  • Arrays, while loops and bit operations
  • Skip Big-O time complexity analyzation (O(n) - duh), use microbenchmarks

Future?

  • Tons of compressions, JPEG hard but needed
  • Keep up to date with custom tags
  • Add a shape file reader (GeoTools is fast!)

Thanks!

Benchmarks found at https://github.com/geotrellis/benchmark