azavea/geotrellis — pull request #112 by non (2012-05-31 21:21:00+00:00)
Title: Topic/alt raster data

This pull request encompasses a bunch of work on alternate RasterData objects. There is also a bunch of refactoring, including renaming IntRaster to Raster.

The end result is that in addition to supporting lazy raster data (in the future) we are seeing performance improvements now for arg8 (at least) and probably arg16. To back those up here is a before/after comparison.

MiniWeightedOverlay benchmark before:

```
[info] size ms linear runtime
[info] 64 2.14 =
[info] 128 2.31 =
[info] 256 2.88 =
[info] 512 5.17 =
[info] 1024 14.79 =
[info] 2048 47.68 =
[info] 4096 180.56 ===
[info] 8192 701.52 ===============
[info] 10000 1383.79 ==============================
```

and after:

```
[info] size ms linear runtime
[info] 64 1.84 =
[info] 128 2.04 =
[info] 256 2.39 =
[info] 512 4.38 =
[info] 1024 11.90 =
[info] 2048 36.34 =
[info] 4096 121.74 =====
[info] 8192 449.95 ====================
[info] 10000 668.67 ==============================
```

Obviously this is a pretty big improvement, especially for large rasters. All tests pass.

Future work will need to introduce floating point, and will want to make use of the lazy raster data (or remove them).