ms_clip: Remove features or portions of features that fall outside a...

View source: R/clip_erase.R

ms_clipR Documentation

Remove features or portions of features that fall outside a clipping area.

Description

Removes portions of the target layer that fall outside the clipping layer or bounding box.

Usage

ms_clip(
  target,
  clip = NULL,
  bbox = NULL,
  remove_slivers = FALSE,
  force_FC = TRUE,
  sys = FALSE,
  sys_mem = 8
)

Arguments

target

the target layer from which to remove portions. One of:

  • geo_json or character points, lines, or polygons;

  • geo_list points, lines, or polygons;

  • SpatialPolygons, SpatialLines, SpatialPoints;

  • sf or sfc points, lines, or polygons object

clip

the clipping layer (polygon). One of:

  • geo_json or character polygons;

  • geo_list polygons;

  • SpatialPolygons*;

  • sf or sfc polygons object

bbox

supply a bounding box instead of a clipping layer to extract from the target layer. Supply as a numeric vector: c(minX, minY, maxX, maxY).

remove_slivers

Remove tiny sliver polygons created by clipping. (Default FALSE)

force_FC

should the output be forced to be a FeatureCollection (or Spatial*DataFrame) even if there are no attributes? Default TRUE. FeatureCollections are more compatible with rgdal::readOGR and geojsonio::geojson_sp. If FALSE and there are no attributes associated with the geometries, a GeometryCollection (or Spatial object with no dataframe) will be output.

sys

Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.

sys_mem

How much memory (in GB) should be allocated if using the system mapshaper (sys = TRUE)? Default 8. Ignored if sys = FALSE.

Value

clipped target in the same class as the input target

Examples


if (rmapshaper:::check_v8_major_version() >= 6L) {
  library(geojsonio, quietly = TRUE)
  library(sp)

  poly <- structure("{\"type\":\"FeatureCollection\",
    \"features\":[{\"type\":\"Feature\",\"properties\":{},
    \"geometry\":{\"type\":\"Polygon\",\"coordinates\":
    [[[52.8658,-44.7219],[53.7702,-40.4873],[55.3204,-37.5579],
    [56.2757,-37.917],[56.184,-40.6443],[61.0835,-40.7529],
    [58.0202,-43.634],[61.6699,-45.0678],[62.737,-46.2841],
    [55.7763,-46.2637],[54.9742,-49.1184],[52.799,-45.9386],
    [52.0329,-49.5677],[50.1747,-52.1814],[49.0098,-52.3641],
    [52.7068,-45.7639],[43.2278,-47.1908],[48.4755,-45.1388],
    [50.327,-43.5207],[48.0804,-41.2784],[49.6307,-40.6159],
    [52.8658,-44.7219]]]}}]}", class = c("json", "geo_json"))
  poly <- geojson_sp(poly)
  plot(poly)

  clip_poly <- structure('{
  "type": "Feature",
  "properties": {},
  "geometry": {
  "type": "Polygon",
  "coordinates": [
  [
  [51, -40],
  [55, -40],
  [55, -45],
  [51, -45],
  [51, -40]
  ]
  ]
  }
  }', class = c("json", "geo_json"))
  clip_poly <- geojson_sp(clip_poly)
  plot(clip_poly)

  out <- ms_clip(poly, clip_poly)
  plot(out, add = TRUE)
}


rmapshaper documentation built on May 11, 2022, 1:09 a.m.