Builds a two-dimensional fmesher triangulation, its finite-element matrices,
and the observation-to-vertex projection matrix used by the fixed-kappa mesh
spatial field. This helper only creates the geometry and fixed SPDE inputs; it
neither estimates kappa nor defines a spatial likelihood.
Usage
make_mesh(coords, kappa, mesh = NULL, crs = attr(coords, "crs"), ...)Arguments
- coords
A finite two-column matrix or data frame of metric planar coordinates, normally returned by
spatial_coords(). Supplycrswhen the coordinate object does not already carry it.- kappa
One finite strictly positive fixed SPDE kappa value, expressed in inverse units of
coords.- mesh
Optional pre-built
fmeshertwo-dimensional mesh. When supplied, it is reprojected ontocoordsand validated rather than rebuilt.- crs
A projected CRS for plain planar coordinate inputs. Geographic CRS values are rejected.
- ...
Additional arguments passed to
fmesher::fm_mesh_2d_inla()when a mesh is built.
Value
A drmTMBmesh object containing loc_xy, xy_cols, mesh, spde,
loc_centers, A_st, alignment identifiers, the projected CRS, and the
fixed kappa configuration.
Examples
if (requireNamespace("sf", quietly = TRUE) && requireNamespace("fmesher", quietly = TRUE)) {
locations <- data.frame(lon = c(-123.2, -123.1, -123.15),
lat = c(49.2, 49.3, 49.25))
xy <- spatial_coords(locations, lon, lat, crs_out = 32610)
make_mesh(xy, kappa = 1 / 10000)
}
#> $loc_xy
#> x y
#> 1 485430.2 5449708
#> 2 492729.8 5460811
#> 3 489083.6 5455259
#> attr(,"crs")
#> Coordinate Reference System:
#> User input: EPSG:32610
#> wkt:
#> PROJCRS["WGS 84 / UTM zone 10N",
#> BASEGEOGCRS["WGS 84",
#> ENSEMBLE["World Geodetic System 1984 ensemble",
#> MEMBER["World Geodetic System 1984 (Transit)"],
#> MEMBER["World Geodetic System 1984 (G730)"],
#> MEMBER["World Geodetic System 1984 (G873)"],
#> MEMBER["World Geodetic System 1984 (G1150)"],
#> MEMBER["World Geodetic System 1984 (G1674)"],
#> MEMBER["World Geodetic System 1984 (G1762)"],
#> MEMBER["World Geodetic System 1984 (G2139)"],
#> ELLIPSOID["WGS 84",6378137,298.257223563,
#> LENGTHUNIT["metre",1]],
#> ENSEMBLEACCURACY[2.0]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4326]],
#> CONVERSION["UTM zone 10N",
#> METHOD["Transverse Mercator",
#> ID["EPSG",9807]],
#> PARAMETER["Latitude of natural origin",0,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8801]],
#> PARAMETER["Longitude of natural origin",-123,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8802]],
#> PARAMETER["Scale factor at natural origin",0.9996,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8805]],
#> PARAMETER["False easting",500000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8806]],
#> PARAMETER["False northing",0,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8807]]],
#> CS[Cartesian,2],
#> AXIS["(E)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["(N)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Navigation and medium accuracy spatial referencing."],
#> AREA["Between 126°W and 120°W, northern hemisphere between equator and 84°N, onshore and offshore. Canada - British Columbia (BC); Northwest Territories (NWT); Nunavut; Yukon. United States (USA) - Alaska (AK)."],
#> BBOX[0,-126,84,-120]],
#> ID["EPSG",32610]]
#> attr(,"xy_cols")
#> [1] "x" "y"
#> attr(,"class")
#> [1] "drmTMB_coords" "matrix" "array"
#>
#> $xy_cols
#> [1] "x" "y"
#>
#> $mesh
#> fm_mesh_2d object:
#> Manifold: R2
#> V / E / T: 23 / 46 / 24
#> Euler char.: 1
#> Constraints: Boundary: 20 boundary edges (1 group: 0), Interior: 0 edges
#> Bounding box: (484779.5,493380.4) x (5449058,5461462)
#> Basis d.o.f.: 23
#>
#> $spde
#> $spde$c0
#> 23 x 23 sparse Matrix of class "dgTMatrix"
#>
#> [1,] 116891.2 . . . . . . .
#> [2,] . 205677.3 . . . . . .
#> [3,] . . 2833687 . . . . .
#> [4,] . . . 176151.2 . . . .
#> [5,] . . . . 116891.2 . . .
#> [6,] . . . . . 205677.3 . .
#> [7,] . . . . . . 2833687 .
#> [8,] . . . . . . . 176151.2
#> [9,] . . . . . . . .
#> [10,] . . . . . . . .
#> [11,] . . . . . . . .
#> [12,] . . . . . . . .
#> [13,] . . . . . . . .
#> [14,] . . . . . . . .
#> [15,] . . . . . . . .
#> [16,] . . . . . . . .
#> [17,] . . . . . . . .
#> [18,] . . . . . . . .
#> [19,] . . . . . . . .
#> [20,] . . . . . . . .
#> [21,] . . . . . . . .
#> [22,] . . . . . . . .
#> [23,] . . . . . . . .
#>
#> [1,] . . . . . . . . .
#> [2,] . . . . . . . . .
#> [3,] . . . . . . . . .
#> [4,] . . . . . . . . .
#> [5,] . . . . . . . . .
#> [6,] . . . . . . . . .
#> [7,] . . . . . . . . .
#> [8,] . . . . . . . . .
#> [9,] 582608.8 . . . . . . . .
#> [10,] . 582608.8 . . . . . . .
#> [11,] . . 3611977 . . . . . .
#> [12,] . . . 3611542 . . . . .
#> [13,] . . . . 3612412 . . . .
#> [14,] . . . . . 5415265 . . .
#> [15,] . . . . . . 5420666 . .
#> [16,] . . . . . . . 5195281 .
#> [17,] . . . . . . . . 5195281
#> [18,] . . . . . . . . .
#> [19,] . . . . . . . . .
#> [20,] . . . . . . . . .
#> [21,] . . . . . . . . .
#> [22,] . . . . . . . . .
#> [23,] . . . . . . . . .
#>
#> [1,] . . . . . .
#> [2,] . . . . . .
#> [3,] . . . . . .
#> [4,] . . . . . .
#> [5,] . . . . . .
#> [6,] . . . . . .
#> [7,] . . . . . .
#> [8,] . . . . . .
#> [9,] . . . . . .
#> [10,] . . . . . .
#> [11,] . . . . . .
#> [12,] . . . . . .
#> [13,] . . . . . .
#> [14,] . . . . . .
#> [15,] . . . . . .
#> [16,] . . . . . .
#> [17,] . . . . . .
#> [18,] 1923460 . . . . .
#> [19,] . 1923460 . . . .
#> [20,] . . 1243773 . . .
#> [21,] . . . 1243773 . .
#> [22,] . . . . 658641 .
#> [23,] . . . . . 658641
#>
#> $spde$g1
#> 23 x 23 sparse Matrix of class "dgTMatrix"
#>
#> [1,] 1.4142136 -0.50000000 . . . .
#> [2,] -0.5000000 1.61704355 . . . .
#> [3,] . . 1.7549179 . . .
#> [4,] . . . 1.4781991 -0.5000000 .
#> [5,] . . . -0.5000000 1.4142136 -0.50000000
#> [6,] . . . . -0.5000000 1.61704355
#> [7,] . . . . . .
#> [8,] -0.5000000 . . . . .
#> [9,] -0.4142136 -1.04345464 . . . .
#> [10,] . . . -0.8341985 -0.4142136 -1.04345464
#> [11,] . . . . . .
#> [12,] . . . . . .
#> [13,] . . . . . .
#> [14,] . . -0.7314343 . . .
#> [15,] . . . . . .
#> [16,] . . . . . .
#> [17,] . . -0.2257120 . . .
#> [18,] . . -0.7977716 . . .
#> [19,] . . . . . .
#> [20,] . -0.07358891 . . . .
#> [21,] . . . . . -0.07358891
#> [22,] . . . -0.1440006 . .
#> [23,] . . . . . .
#>
#> [1,] . -0.5000000 -0.4142136 . . .
#> [2,] . . -1.0434546 . . .
#> [3,] . . . . . .
#> [4,] . . . -0.8341985 . .
#> [5,] . . . -0.4142136 . .
#> [6,] . . . -1.0434546 . .
#> [7,] 1.7549179 . . . . .
#> [8,] . 1.4781991 -0.8341985 . . .
#> [9,] . -0.8341985 4.2798215 . . .
#> [10,] . . . 4.2798215 . .
#> [11,] . . . . 4.300075 -1.0821648
#> [12,] . . . . -1.082165 2.1502937
#> [13,] . . . . -1.081129 .
#> [14,] . . . . -1.071605 -0.1963037
#> [15,] -0.7314343 . . . -1.065176 -0.1403910
#> [16,] -0.2257120 . . . . -0.7314343
#> [17,] . . . . . .
#> [18,] . . . . . .
#> [19,] -0.7977716 . . . . .
#> [20,] . . -0.8863731 . . .
#> [21,] . . . -0.8863731 . .
#> [22,] . . . -1.1015817 . .
#> [23,] . -0.1440006 -1.1015817 . . .
#>
#> [1,] . . . . . .
#> [2,] . . . . . .
#> [3,] . -0.731434290 . . -0.225711993 -0.7977716
#> [4,] . . . . . .
#> [5,] . . . . . .
#> [6,] . . . . . .
#> [7,] . . -0.731434290 -0.225711993 . .
#> [8,] . . . . . .
#> [9,] . . . . . .
#> [10,] . . . . . .
#> [11,] -1.0811289 -1.071605439 -1.065175634 . . .
#> [12,] . -0.196303669 -0.140390962 -0.731434290 . .
#> [13,] 2.1497725 -0.139030977 -0.198178408 . -0.731434290 .
#> [14,] -0.1390310 2.145004853 . . -0.006630479 .
#> [15,] -0.1981784 . 2.141809772 -0.006630479 . .
#> [16,] . . -0.006630479 2.367550999 . .
#> [17,] -0.7314343 -0.006630479 . . 2.367550999 -0.4519118
#> [18,] . . . . -0.451911819 2.4966113
#> [19,] . . . -0.451911819 . .
#> [20,] . . . -0.951862418 . .
#> [21,] . . . . -0.951862418 -0.1833128
#> [22,] . . . . . -1.0636150
#> [23,] . . . . . .
#>
#> [1,] . . . . .
#> [2,] . -0.07358891 . . .
#> [3,] . . . . .
#> [4,] . . . -0.1440006 .
#> [5,] . . . . .
#> [6,] . . -0.07358891 . .
#> [7,] -0.7977716 . . . .
#> [8,] . . . . -0.1440006
#> [9,] . -0.88637313 . . -1.1015817
#> [10,] . . -0.88637313 -1.1015817 .
#> [11,] . . . . .
#> [12,] . . . . .
#> [13,] . . . . .
#> [14,] . . . . .
#> [15,] . . . . .
#> [16,] -0.4519118 -0.95186242 . . .
#> [17,] . . -0.95186242 . .
#> [18,] . . -0.18331282 -1.0636150 .
#> [19,] 2.4966113 -0.18331282 . . -1.0636150
#> [20,] -0.1833128 2.29127519 . . -0.1961379
#> [21,] . . 2.29127519 -0.1961379 .
#> [22,] . . -0.19613792 2.5053351 .
#> [23,] -1.0636150 -0.19613792 . . 2.5053351
#>
#> $spde$g2
#> 23 x 23 sparse Matrix of class "dgTMatrix"
#>
#> [1,] 2.003915e-05 -9.238435e-06 . . .
#> [2,] -9.238435e-06 1.672519e-05 . . .
#> [3,] . . 1.526313e-06 . .
#> [4,] . . . 1.576919e-05 -9.652012e-06
#> [5,] . . . -9.652012e-06 2.003915e-05
#> [6,] . . . 3.632793e-06 -9.238435e-06
#> [7,] . . . . .
#> [8,] -9.652012e-06 3.632793e-06 . . .
#> [9,] -3.149698e-06 -1.404463e-05 . . .
#> [10,] . . . -1.111566e-05 -3.149698e-06
#> [11,] . . 1.447406e-07 . .
#> [12,] . . 2.651454e-08 . .
#> [13,] . . 5.055636e-08 . .
#> [14,] . . -7.424168e-07 . .
#> [15,] . . . . .
#> [16,] . 5.631778e-08 . . .
#> [17,] . . -5.431434e-08 . .
#> [18,] . . -1.509922e-06 2.325412e-07 .
#> [19,] . 1.084586e-08 . . .
#> [20,] 8.090730e-07 8.733734e-07 . . .
#> [21,] . . 1.173848e-07 1.312021e-06 8.090730e-07
#> [22,] . . 4.411436e-07 -1.788699e-07 1.191926e-06
#> [23,] 1.191926e-06 1.984542e-06 . . .
#>
#> [1,] . . -9.652012e-06 -3.149698e-06 .
#> [2,] . . 3.632793e-06 -1.404463e-05 .
#> [3,] . . . . .
#> [4,] 3.632793e-06 . . . -1.111566e-05
#> [5,] -9.238435e-06 . . . -3.149698e-06
#> [6,] 1.672519e-05 . . . -1.404463e-05
#> [7,] . 1.526215e-06 . . .
#> [8,] . . 1.576919e-05 -1.111566e-05 .
#> [9,] . . -1.111566e-05 4.462551e-05 .
#> [10,] -1.404463e-05 . . . 4.462551e-05
#> [11,] . 1.437288e-07 . . .
#> [12,] . 5.072115e-08 . . .
#> [13,] . 2.674108e-08 . . .
#> [14,] . . . . .
#> [15,] . -7.416970e-07 . . .
#> [16,] . -5.431523e-08 . 6.783436e-07 .
#> [17,] 5.631778e-08 . . . 6.783436e-07
#> [18,] 1.084586e-08 . . . 1.909541e-06
#> [19,] . -1.509922e-06 2.325412e-07 1.909541e-06 .
#> [20,] . 1.173848e-07 1.312021e-06 -7.442759e-06 .
#> [21,] 8.733734e-07 . . . -7.442759e-06
#> [22,] 1.984542e-06 . . . -1.146065e-05
#> [23,] . 4.411436e-07 -1.788699e-07 -1.146065e-05 .
#>
#> [1,] . . . . .
#> [2,] . . . . .
#> [3,] 1.447406e-07 2.651454e-08 5.055636e-08 -7.424168e-07 .
#> [4,] . . . . .
#> [5,] . . . . .
#> [6,] . . . . .
#> [7,] 1.437288e-07 5.072115e-08 2.674108e-08 . -7.416970e-07
#> [8,] . . . . .
#> [9,] . . . . .
#> [10,] . . . . .
#> [11,] 6.188447e-06 -1.866204e-06 -1.864021e-06 -1.599788e-06 -1.587590e-06
#> [12,] -1.866204e-06 1.718225e-06 3.340837e-07 1.264231e-07 1.810057e-07
#> [13,] -1.864021e-06 3.340837e-07 1.716738e-06 1.838751e-07 1.225845e-07
#> [14,] -1.599788e-06 1.264231e-07 1.838751e-07 1.372397e-06 3.312757e-07
#> [15,] -1.587590e-06 1.810057e-07 1.225845e-07 3.312757e-07 1.365528e-06
#> [16,] 2.204704e-07 -7.686438e-07 2.424089e-10 3.975677e-08 8.105254e-08
#> [17,] 2.202170e-07 2.403552e-10 -7.684348e-07 8.076380e-08 4.012679e-08
#> [18,] . . 6.362385e-08 2.064984e-07 .
#> [19,] . 6.362385e-08 . . 2.064984e-07
#> [20,] . 1.340110e-07 . . 1.214815e-09
#> [21,] . . 1.340110e-07 1.214815e-09 .
#> [22,] . . . . .
#> [23,] . . . . .
#>
#> [1,] . . . . 8.090730e-07
#> [2,] 5.631778e-08 . . 1.084586e-08 8.733734e-07
#> [3,] . -5.431434e-08 -1.509922e-06 . .
#> [4,] . . 2.325412e-07 . .
#> [5,] . . . . .
#> [6,] . 5.631778e-08 1.084586e-08 . .
#> [7,] -5.431523e-08 . . -1.509922e-06 1.173848e-07
#> [8,] . . . 2.325412e-07 1.312021e-06
#> [9,] 6.783436e-07 . . 1.909541e-06 -7.442759e-06
#> [10,] . 6.783436e-07 1.909541e-06 . .
#> [11,] 2.204704e-07 2.202170e-07 . . .
#> [12,] -7.686438e-07 2.403552e-10 . 6.362385e-08 1.340110e-07
#> [13,] 2.424089e-10 -7.684348e-07 6.362385e-08 . .
#> [14,] 3.975677e-08 8.076380e-08 2.064984e-07 . .
#> [15,] 8.105254e-08 4.012679e-08 . 2.064984e-07 1.214815e-09
#> [16,] 2.079681e-06 . . -5.886791e-07 -2.144225e-06
#> [17,] . 2.079645e-06 -5.886791e-07 . .
#> [18,] . -5.886791e-07 5.249068e-06 . .
#> [19,] -5.886791e-07 . . 5.249068e-06 -1.761011e-07
#> [20,] -2.144225e-06 . . -1.761011e-07 5.846103e-06
#> [21,] . -2.144225e-06 -1.761011e-07 . .
#> [22,] . 3.999984e-07 -5.397416e-06 . .
#> [23,] 3.999984e-07 . . -5.397416e-06 6.699047e-07
#>
#> [1,] . . 1.191926e-06
#> [2,] . . 1.984542e-06
#> [3,] 1.173848e-07 4.411436e-07 .
#> [4,] 1.312021e-06 -1.788699e-07 .
#> [5,] 8.090730e-07 1.191926e-06 .
#> [6,] 8.733734e-07 1.984542e-06 .
#> [7,] . . 4.411436e-07
#> [8,] . . -1.788699e-07
#> [9,] . . -1.146065e-05
#> [10,] -7.442759e-06 -1.146065e-05 .
#> [11,] . . .
#> [12,] . . .
#> [13,] 1.340110e-07 . .
#> [14,] 1.214815e-09 . .
#> [15,] . . .
#> [16,] . . 3.999984e-07
#> [17,] -2.144225e-06 3.999984e-07 .
#> [18,] -1.761011e-07 -5.397416e-06 .
#> [19,] . . -5.397416e-06
#> [20,] . . 6.699047e-07
#> [21,] 5.846103e-06 6.699047e-07 .
#> [22,] 6.699047e-07 1.234942e-05 .
#> [23,] . . 1.234942e-05
#>
#>
#> $loc_centers
#> [,1] [,2] [,3]
#> [1,] 485160.7 5449058 0
#> [2,] 485699.7 5449058 0
#> [3,] 493380.4 5456739 0
#> [4,] 493380.4 5461081 0
#> [5,] 492999.3 5461462 0
#> [6,] 492460.3 5461462 0
#> [7,] 484779.5 5453781 0
#> [8,] 484779.5 5449439 0
#> [9,] 485430.2 5449708 0
#> [10,] 492729.8 5460811 0
#> [11,] 489083.6 5455259 0
#> [12,] 489540.0 5452898 0
#> [13,] 488619.9 5457621 0
#> [14,] 491460.2 5454818 0
#> [15,] 486699.7 5455701 0
#> [16,] 487619.8 5450978 0
#> [17,] 490540.1 5459541 0
#> [18,] 493380.4 5458910 0
#> [19,] 484779.5 5451610 0
#> [20,] 486659.7 5450018 0
#> [21,] 491500.2 5460502 0
#> [22,] 493380.4 5459995 0
#> [23,] 484779.5 5450524 0
#>
#> $A_st
#> 3 x 23 sparse Matrix of class "dgCMatrix"
#>
#> [1,] . . . . . . . . 1 . . . . . . . . . . . . . .
#> [2,] . . . . . . . . . 1 . . . . . . . . . . . . .
#> [3,] . . . . . . . . . . 1 . . . . . . . . . . . .
#>
#> $alignment_ids
#> [1] "1" "2" "3"
#>
#> $source_rows
#> [1] 1 2 3
#>
#> $crs
#> Coordinate Reference System:
#> User input: EPSG:32610
#> wkt:
#> PROJCRS["WGS 84 / UTM zone 10N",
#> BASEGEOGCRS["WGS 84",
#> ENSEMBLE["World Geodetic System 1984 ensemble",
#> MEMBER["World Geodetic System 1984 (Transit)"],
#> MEMBER["World Geodetic System 1984 (G730)"],
#> MEMBER["World Geodetic System 1984 (G873)"],
#> MEMBER["World Geodetic System 1984 (G1150)"],
#> MEMBER["World Geodetic System 1984 (G1674)"],
#> MEMBER["World Geodetic System 1984 (G1762)"],
#> MEMBER["World Geodetic System 1984 (G2139)"],
#> ELLIPSOID["WGS 84",6378137,298.257223563,
#> LENGTHUNIT["metre",1]],
#> ENSEMBLEACCURACY[2.0]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4326]],
#> CONVERSION["UTM zone 10N",
#> METHOD["Transverse Mercator",
#> ID["EPSG",9807]],
#> PARAMETER["Latitude of natural origin",0,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8801]],
#> PARAMETER["Longitude of natural origin",-123,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8802]],
#> PARAMETER["Scale factor at natural origin",0.9996,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8805]],
#> PARAMETER["False easting",500000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8806]],
#> PARAMETER["False northing",0,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8807]]],
#> CS[Cartesian,2],
#> AXIS["(E)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["(N)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Navigation and medium accuracy spatial referencing."],
#> AREA["Between 126°W and 120°W, northern hemisphere between equator and 84°N, onshore and offshore. Canada - British Columbia (BC); Northwest Territories (NWT); Nunavut; Yukon. United States (USA) - Alaska (AK)."],
#> BBOX[0,-126,84,-120]],
#> ID["EPSG",32610]]
#>
#> $kappa
#> [1] 1e-04
#>
#> attr(,"class")
#> [1] "drmTMBmesh"