Skip to contents

Produce a grains of connectivity (GOC) model at multiple scales (resistance thresholds) by scalar analysis. Patch-based or lattice GOC modelling can be done with this function.

Usage

GOC(x, ...)

# S4 method for class 'mpg'
GOC(
  x,
  nThresh = NULL,
  doThresh = NULL,
  weight = "lcpPerimWeight",
  verbose = 0,
  ...
)

Arguments

x

A mpg object produced by MPG(). For lattice GOC MPG must be run with patch set as an integer value.

...

Additional arguments (not used).

nThresh

Optional. An integer giving the number of thresholds (or scales) at which to create GOC models. Thresholds are selected to produce a maximum number of unique grains (i.e., models). nThresh thresholds are also approximately evenly spread between 0 and the threshold at which all patches or focal points on the landscape are connected. This is a simple way to get a representative subset of all possible GOC models. Provide either nThresh or doThresh not both.

doThresh

Optional. A vector giving the link thresholds at which to create GOC models. Use threshold() to identify thresholds of interest. Provide either nThresh or doThresh not both.

weight

A string giving the link weight or attribute to use for threshold. "lcpPerimWeight" uses the accumulated resistance or least-cost path distance from the perimeters of patches as the link weight.

verbose

Set verbose=0 for no progress information to console.

Value

A goc() object.

Details

Grain or scalar analysis of connectivity may be appropriate for a variety of purposes, not limited to visualization and improving connectivity estimates for highly-mobile organisms. See Galpern et al. (2012), Galpern & Manseau (2013a, 2013b) for applications and review of these capabilities.

Note

Researchers should consider whether the use of a patch-based GOC or a lattice GOC model is appropriate based on the patch-dependency of the organism under study. Patch-based models make most sense when animals are restricted to, or dependent on, a resource patch. Lattice models can be used as a generalized and functional approach to scaling resistance surfaces.

See MPG() for warning related to areal measurements.

References

Fall, A., M.-J. Fortin, M. Manseau, D. O'Brien. (2007) Spatial graphs: Principles and applications for habitat connectivity. Ecosystems 10:448:461.

Galpern, P., M. Manseau. (2013a) Finding the functional grain: comparing methods for scaling resistance surfaces. Landscape Ecology 28:1269-1291.

Galpern, P., M. Manseau. (2013b) Modelling the influence of landscape connectivity on animal distribution: a functional grain approach. Ecography 36:1004-1016.

Galpern, P., M. Manseau, A. Fall. (2011) Patch-based graphs of landscape connectivity: a guide to construction, analysis, and application for conservation. Biological Conservation 144:44-55.

Galpern, P., M. Manseau, P.J. Wilson. (2012) Grains of connectivity: analysis at multiple spatial scales in landscape genetics. Molecular Ecology 21:3996-4009.

Author

Paul Galpern

Examples

## Load raster landscape
tiny <- raster::raster(system.file("extdata/tiny.asc", package = "grainscape"))

## Create a resistance surface from a raster using an is-becomes reclassification
tinyCost <- raster::reclassify(tiny, rcl = cbind(c(1, 2, 3, 4), c(1, 5, 10, 12)))
## Produce a patch-based MPG where patches are resistance features=1
tinyPatchMPG <- MPG(cost = tinyCost, patch = tinyCost == 1)
## Extract a representative subset of 5 grains of connectivity
tinyPatchGOC <- GOC(tinyPatchMPG, nThresh = 5)
## Examine the properties of the GOC graph of grain 3 of 5
graphdf(grain(tinyPatchGOC, whichThresh = 3))
#> [[1]]
#> [[1]]$v
#>    name polygonId centroidX centroidY polygonArea totalPatchArea
#> 1     9         9 82.775739 30.824978        1117             80
#> 2    14        14 91.982587  6.067164         201             26
#> 3     1         1 31.441401 71.328875        2355            349
#> 4    13        13 55.800797 12.209163         502             32
#> 5     2         2 72.141353 87.096043        1567            202
#> 6     8         8 40.915855 33.420723         719             88
#> 7     7         7 11.853001 32.207019         983             68
#> 8    12        12 22.657810 12.435588         621             42
#> 9     5         5 92.944795 58.755521         317              6
#> 10    4         4  8.658451 58.595070         284              9
#> 11   15        15 64.756757  3.216216          74              2
#> 12   10        10 96.468504 35.633858         127              3
#> 13   11        11 60.324561 33.085965         285             15
#> 14    6         6 73.349741 51.795337         193              4
#> 15    3         3 60.669856 71.672249         418              2
#> 16   17        17 76.169643  4.223214         112              2
#> 17   16        16 36.820000  3.692000         125              2
#>    totalPatchEdgeArea totalCoreArea
#> 1                  80             0
#> 2                  26             0
#> 3                 336            13
#> 4                  32             0
#> 5                 197             5
#> 6                  84             4
#> 7                  68             0
#> 8                  39             3
#> 9                   6             0
#> 10                  9             0
#> 11                  2             0
#> 12                  3             0
#> 13                 15             0
#> 14                  4             0
#> 15                  2             0
#> 16                  2             0
#> 17                  2             0
#>                                         patchId
#> 1                                    68, 80, 86
#> 2                                           100
#> 3  5, 7, 22, 30, 32, 37, 40, 41, 48, 54, 55, 56
#> 4                                       95, 103
#> 5                  8, 9, 12, 14, 19, 28, 29, 31
#> 6                                        67, 85
#> 7                                62, 64, 74, 84
#> 8                                            93
#> 9                                            60
#> 10                                           50
#> 11                                          105
#> 12                                       73, 78
#> 13                                           76
#> 14                                           61
#> 15                                           46
#> 16                                          107
#> 17                                          106
#> 
#> [[1]]$e
#>    e1 e2 maxWeight linkIdMaxWeight minWeight linkIdMinWeight medianWeight
#> 1   9 14        55              34        55              34         55.0
#> 2  14 17        54              35        54              35         54.0
#> 3   1  4       135              79        55              36         95.0
#> 4   1 11        64              37        64              37         64.0
#> 5   1  6        59              38        59              38         59.0
#> 6  13 15        75              42        65              39         70.0
#> 7   1  2       107              65        69              41         75.0
#> 8   8 11        95              62        75              43         85.0
#> 9   1  8       210              96        75              44         85.0
#> 10  7 12        80              48        80              48         80.0
#> 11  2  3       220              97        81              49        140.0
#> 12  9 17        85              51        85              51         85.0
#> 13 12 16        85              52        85              52         85.0
#> 14 13  8        85              56        85              56         85.0
#> 15  5 10        88              60        88              60         88.0
#> 16  7  4       130              82       105              64        117.5
#> 17 15 17       105              66       105              66        105.0
#> 18  9 10       129              76       105              67        113.0
#> 19  8 12       146              87       105              69        125.5
#> 20  1  3       132              84       105              70        127.0
#> 21 13 16       125              81       115              73        120.0
#> 22 13 12       115              74       115              74        115.0
#> 23  9  5       130              75       130              75        130.0
#> 24 13 11       123              77       123              77        123.0
#> 25  9  6       210              92       123              78        166.5
#> 26  9 11       144              85       144              85        144.0
#> 27  8  7       180              89       151              86        165.5
#> 28  2  5       290              98       162              90        226.0
#> 29 11  6       200              91       200              91        200.0
#> 30 13 17       195              93       195              93        195.0
#> 31  9 13       208              95       201              94        204.5
#> 32  6  3       365              99       365              99        365.0
#> 33  9  2       358             100       358             100        358.0
#> 34  2  6       432             101       432             101        432.0
#>    meanWeight numEdgesWeight      linkIdAll eucCentroidWeight
#> 1    55.00000              1             34          26.41430
#> 2    54.00000              1             35          15.92009
#> 3    95.00000              2         36, 79          26.10005
#> 4    64.00000              1             37          47.92449
#> 5    59.00000              1             38          46.23709
#> 6    70.00000              2         39, 42          12.69182
#> 7    83.66667              3     41, 47, 65          43.64733
#> 8    85.00000              2         43, 62          19.41159
#> 9   113.75000              4 44, 45, 61, 96          39.07420
#> 10   80.00000              2         48, 53          22.53117
#> 11  147.00000              3     49, 88, 97          19.22209
#> 12   85.00000              1             51          27.40975
#> 13   85.00000              1             52          16.64386
#> 14   85.00000              1             56          25.91316
#> 15   88.00000              1             60          23.38863
#> 16  117.50000              2         64, 82          26.58071
#> 17  105.00000              1             66          11.45723
#> 18  115.00000              4 67, 71, 72, 76          14.51266
#> 19  125.50000              2         69, 87          27.81604
#> 20  121.33333              3     70, 83, 84          29.23047
#> 21  120.00000              2         73, 81          20.80415
#> 22  115.00000              1             74          33.14376
#> 23  130.00000              1             75          29.72415
#> 24  123.00000              1             77          21.36130
#> 25  166.50000              2         78, 92          22.99142
#> 26  144.00000              1             85          22.56474
#> 27  165.50000              2         86, 89          29.08819
#> 28  226.00000              2         90, 98          35.15634
#> 29  200.00000              1             91          22.79684
#> 30  195.00000              1             93          21.87842
#> 31  204.50000              2         94, 95          32.77493
#> 32  365.00000              1             99          23.57692
#> 33  358.00000              1            100          57.26712
#> 34  432.00000              1            101          35.32138
#> 
#> 

## Extract grains of connectivity
## representation of the finest grain and three others
## by giving thresholds in link weights (doThresh)
tinyPatchGOC <- GOC(tinyPatchMPG, doThresh = c(0, 20, 40))