Appendix 1. An example "recipe" used to generate a multicategory gradient landscape. This recipe produces a pair of gradients in 90-degree contention as seen in Fig. 8. There is also an option to wrap the landscape seamlessly from top to bottom and side to side, to form a continuous, edgeless torus.

N
N                  (visualize the landscape?)
  7                (Number of levels)
  2                (highest data category)
n                  (supply external prob maps?)
0.95               (value of H for level  1, category  0)
0.95               (value of H for level  2, category  0)
0.95               (value of H for level  3, category  0)
0.95               (value of H for level  4, category  0)
0.95               (value of H for level  5, category  0)
0.95               (value of H for level  6, category  0)
0.95               (value of H for level  7, category  0)
0.95               (value of H for level  1, category  1)
0.95               (value of H for level  2, category  1)
0.95               (value of H for level  3, category  1)
0.95               (value of H for level  4, category  1)
0.95               (value of H for level  5, category  1)
0.95               (value of H for level  6, category  1)
0.95               (value of H for level  7, category  1)
0.95               (value of H for level  1, category  2)
0.95               (value of H for level  2, category  2)
0.95               (value of H for level  3, category  2)
0.95               (value of H for level  4, category  2)
0.95               (value of H for level  5, category  2)
0.95               (value of H for level  6, category  2)
0.95               (value of H for level  7, category  2)
.30000             (probability of habitat type 1)
.30000             (probability of habitat type 2)
n                  (generate GRASS input file?)
y                  (xpm file of realized landscape?)
n                  (xpm file of probability landscapes?)
    0.000000       (threshold for detection (xlow))
n                  (wrap?)
y                  (gradient?)
10
0
0
10
    0.000000       (threshold for detection (xlow))
n                  (wrap?)
y                  (gradient?)
10
10
0
0