wrld_1deg {Matrix} | R Documentation |

This matrix represents the distance-based contiguities of 15260 one-degree grid cells of land areas. The representation is as a row standardised spatial weights matrix transformed to a symmetric matrix (see Ord (1975), p. 125).

`data(wrld_1deg)`

A `15260 ^2`

symmetric sparse matrix of class
`dsCMatrix`

with 55973 non-zero entries.

The data were created into **R** using the coordinates of a
‘SpatialPixels’ object containing approximately one-degree grid
cells for land areas only (world excluding Antarctica), using package
spdep's
`dnearneigh`

with a cutoff distance of `sqrt(2)`

,
and row-standardised and transformed to symmetry using
`nb2listw`

and `similar.listw`

.
This spatial weights object was converted to a `dsTMatrix`

using `as_dsTMatrix_listw`

and then coerced
(column-compressed).

The shoreline data was read into **R** using `Rgshhs`

from the GSHHS coarse shoreline database distributed with the
maptools package, omitting Antarctica. A matching approximately
one-degree grid was generated using
`Sobj_SpatialGrid`

, and the grids on land were
found using the appropriate `over`

method for the ‘SpatialPolygons’ and ‘SpatialGrid’ objects,
yielding a ‘SpatialPixels’ one containing only the grid cells with
centres on land.

Ord, J. K. (1975)
Estimation methods for models of spatial interaction;
*Journal of the American Statistical Association* **70**, 120–126.

```
data(wrld_1deg)
(n <- ncol(wrld_1deg))
IM <- .symDiagonal(n)
doExtras <- interactive() || nzchar(Sys.getenv("R_MATRIX_CHECK_EXTRA"))
nn <- if(doExtras) 20 else 3
set.seed(1)
rho <- runif(nn, 0, 1)
system.time(MJ <- sapply(rho,
function(x) determinant(IM - x * wrld_1deg,
logarithm = TRUE)$modulus))
nWC <- -wrld_1deg
C1 <- Cholesky(nWC, Imult = 2)
## Note that det(<CHMfactor>) = det(L) = sqrt(det(A))
## ====> log det(A) = log( det(L)^2 ) = 2 * log det(L) :
system.time(MJ1 <- n * log(rho) +
sapply(rho, function(x) c(2* determinant(update(C1, nWC, 1/x))$modulus))
)
stopifnot(all.equal(MJ, MJ1))
C2 <- Cholesky(nWC, super = TRUE, Imult = 2)
system.time(MJ2 <- n * log(rho) +
sapply(rho, function(x) c(2* determinant(update(C2, nWC, 1/x))$modulus))
)
system.time(MJ3 <- n * log(rho) + Matrix:::ldetL2up(C1, nWC, 1/rho))
system.time(MJ4 <- n * log(rho) + Matrix:::ldetL2up(C2, nWC, 1/rho))
stopifnot(all.equal(MJ, MJ2),
all.equal(MJ, MJ3),
all.equal(MJ, MJ4))
```

[Package *Matrix* version 1.5-1 Index]