[gdal-dev] Map algebra

Gregory, Matthew matt.gregory at oregonstate.edu
Fri Apr 8 09:28:56 PDT 2016


Hi all,

Alex wrote:
> What exactly do you mean by Map Algebra? I understand it to cover the
> following:
> 
> 1. Local operations: pixel-by-pixel operations on raster bands.
> 2. Focal operations: operations that calculate an indicator for each
> pixel based on the values in surrounding pixels
> 3. Zonal operations: operations that calculate indicators for groups
> (zones) of pixels.
> 4. Global operations: operations that calculate indicators over all
> pixels.

I've been following this discussion with limited understanding of the C++ needed to implement such a library, but I echo the functionality that Alex lists above.  I *would* like to add my two cents in that I would want any map algebra library to handle three types of issues when dealing with raster data:

  1) Handling mask or nodata values (e.g. an analysis mask should be
     able to be set on any algebra operation that retains or combines
     nodata values from its component operands)

  2) Handling different spatial extents (e.g. the ability to specify 
     an output extent -- coming from a specific raster or from the
     union/intersection of rasters)

  3) Handling different cell sizes (e.g. the ability to specify an
     analysis cell size and resample/reproject(??) all operands based
     on this parameter)

So if raster 'a' was 1000x1000 30m in UTM and raster 'b' was 500x500 90m in WGS84, one might be able to do:

  c = a + b

with reasonable defaults chosen for output 'c' as well as the option to set output options explicitly (I fully admit the reprojection on-the-fly is a big ask ...).  

Sorry if this hijacks the discussion, but I appreciate your efforts to envision such a system.

thanks, matt




More information about the gdal-dev mailing list