License New BSD license
Lines 21
Keywords
array (4) expand (1) GIS (7) mask (1) NumPy (4) raster (3)
Permissions
Viewable by Everyone
Editable by All Siafoo Users
Hide
Solve a problem – Filter by language, license, keyword, owner, or search text to find code & info fast. Join Siafoo Now or Learn More

Expand Mask (True Area of Boolean Numpy Array ) Atom Feed 0

In Brief Expands a mask of Trues by one cell in both the horizontal and vertical directions, a given number of times. Useful for including everything in an unevenly-shaped region, plus a little bit around the edges.... more
# 's
 1# Copyright 2007 Regents of the University of California
2# Written by David Isaacson at the University of California, Davis
3# BSD License
4
5def ExpandMask(input, iters):
6 """
7 Expands the True area in an array 'input'.
8
9 Expansion occurs in the horizontal and vertical directions by one
10 cell, and is repeated 'iters' times.
11 """
12 yLen,xLen = input.shape
13 output = input.copy()
14 for iter in xrange(iters):
15 for y in xrange(yLen):
16 for x in xrange(xLen):
17 if (y > 0 and input[y-1,x]) or \
18 (y < yLen - 1 and input[y+1,x]) or \
19 (x > 0 and input[y,x-1]) or \
20 (x < xLen - 1 and input[y,x+1]): output[y,x] = True
21 input = output.copy()
22 return output

Expands a mask of Trues by one cell in both the horizontal and vertical directions, a given number of times. Useful for including everything in an unevenly-shaped region, plus a little bit around the edges.

Requires numpy.