Raster indexing is handled by a
RegularGrid object represents a multiband raster image. The underlying
data can be extracted as a numpy array using slicing syntax. In general, a slice
preserves a dimension, while an integer collapses it. To illustrate:
grid[:,:,:] # Returns a three-dimensional numpy array (nrow, ncol, nband) grid[:,:] # Shorthand for the above grid[:,:,0] # Returns a two-dimensional numpy array representing the # first band (nrow, ncol) grid[:,:,:2] # Returns a three dimensional numpy array with the first two # bands (nrow, ncol, 2) grid[:,10] # Returns all band values for the tenth column (nrow, nband) grid[:,10,0] # Returns the first band values for the tenth column (nrow,)
It is possible to extract grid values using numpy arrays as masks. This works similarly to indexing a numpy array with shape (nrow, ncol, nband).
mask.shape # (nrow, ncol, nband) sum(mask) # n grid[mask3] # an (n,) array
It’s also possible to index with a two-dimensional array. Unlike in numpy, the mask is broadcast along the band dimension.
mask.shape # (nrow, ncol) sum(mask) # n grid[mask2] # an (n, nband) array
Warning: as currently implemented, masking with an array is syntactic sugar
around unpacking the entire array and indexing with numpy array operations. As a
result, array masking generally results in the entire grid being decompressed or
read into memory, depending on the