Calculating+Habitat+Metrics

=Overview=

=Strategies=

Contiguity

 * Utilize a moving window to determine group membership ID
 * membership determined as equivalent to other ID's present in Moore Neighborhood
 * can utilize different Chebyshev distances to describe different levels of connectivity (specifically include 1 and 2)
 * moving window shape can be an irregular 2x4 (r=1) or 3x5 (r=2) filter - see example
 * could potentially apply at tile and megatile scale?
 * stored as individual raster / database files - flat or relational?
 * Must be able to update (find and replace) group ID's that are updated when new linkages are revealed

Edge

 * Moving window process to code as various edge classifications
 * most importantly, edge depth
 * secondly, could also include level of 'edginess' - how many bordering alternative habitats?
 * Probably want to stick to von Neumann neighborhood

Contiguity
code define neighborhood(r, shape): r = search radius (Chebyshev distance) shape = cells to include, numbered sequentially from upper left corner of neighborhood # ie. neighborhood(r=1, shape=(2,4,6,8)) would define vonNeumann neighborhood in terms of Moore neighborhood # or something like that

define processLevel_1_Contiguity: for every cell (starting from top-left) make list of CID_1's of cells in neighborhood(r=1, shape=(1,2,3,4)) if (CID_1 of any cells in != NA): if list contains multiple values: identify lowest CID_1 value (CID_1_low) globally replace higher CID_1 values contained in list with (CID_1_low) CID_1 of current cell = CID_1_low else: assign CID_1 of current cell next unassigned number

define processLevel_2_Contiguity: for every cell (starting from top-left) make list of CID_2's of cells in neighborhood(r=2, shape=(1,2,3,4,5,6,7,8,9,11,12)) if (CID_2 of any cells in != NA): if list contains multiple values: identify lowest CID_2 value (CID_2_low) globally replace higher CID_2 values contained in list with (CID_2_low) CID_2 of current cell = CID_2_low else: assign CID_2 of current cell next unassigned number code

Edge
code define edgeRelationDict: # relational pairing of classifications that when adjacent, create an edge # ie. forest and urban next to each other create an edge, housing and industrial do not # could just be based on macro-level classification (developed, forest, water) # can also refine based on requirements (ie. upland forest/wetland forest edge)

define processLevel_1_Edge: for every cell (starting from top-left) count of cells in neighborhood(r=1, shape=(2,4,5,7)) where edgeRelationDict lookup suggests edge

code

Combination
=Related Topics=