R Under development (unstable) (2024-09-06 r87101 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > suppressPackageStartupMessages(library(sf)) > options(rgdal_show_exportToProj4_warnings = "none") > > if (require(dplyr, quietly = TRUE)) { + + # plot linestrings: + l1 = st_linestring(matrix(runif(6)-0.5,,2)) + l2 = st_linestring(matrix(runif(6)-0.5,,2)) + l3 = st_linestring(matrix(runif(6)-0.5,,2)) + s = st_sf(a=2:4, b=st_sfc(l1,l2,l3)) + plot(s, col = s$a, axes = FALSE) + plot(s, col = s$a) + if (suppressPackageStartupMessages(require(sp, quietly = TRUE))) { + attr(s$b, "proj4string") = sp::CRS("+proj=longlat +ellps=WGS84 +no_defs")@projargs + } + plot(s, col = s$a, axes = TRUE) + plot(s, col = s$a, lty = s$a, lwd = s$a, pch = s$a, type = 'b') + l4 = st_linestring(matrix(runif(6),,2)) + plot(st_sf(a=1,b=st_sfc(l4)), add = TRUE) + # plot multilinestrings: + ml1 = st_multilinestring(list(l1, l2)) + ml2 = st_multilinestring(list(l3, l4)) + ml = st_sf(a = 2:3, b = st_sfc(ml1, ml2)) + plot(ml, col = ml$a, lty = ml$a, lwd = ml$a, pch = ml$a, type = 'b') + # plot points: + p1 = st_point(c(1,2)) + p2 = st_point(c(3,3)) + p3 = st_point(c(3,0)) + p = st_sf(a=2:4, b=st_sfc(p1,p2,p3)) + plot(p, col = s$a, axes = TRUE) + plot(p, col = s$a) + plot(p, col = p$a, pch = p$a, cex = p$a, bg = s$a, lwd = 2, lty = 2, type = 'b') + p4 = st_point(c(2,2)) + plot(st_sf(a=1, st_sfc(p4)), add = TRUE) + # multipoints: + mp1 = st_multipoint(matrix(1:4,2)) + mp2 = st_multipoint(matrix(5:8,2)) + mp = st_sf(a = 2:3, b = st_sfc(mp1, mp2)) + plot(mp) + plot(mp, col = mp$a, pch = mp$a, cex = mp$a, bg = mp$a, lwd = mp$a, lty = mp$a, type = 'b') + # polygon: + outer = matrix(c(0,0,10,0,10,10,0,10,0,0),ncol=2, byrow=TRUE) + hole1 = matrix(c(1,1,1,2,2,2,2,1,1,1),ncol=2, byrow=TRUE) + hole2 = matrix(c(5,5,5,6,6,6,6,5,5,5),ncol=2, byrow=TRUE) + pl1 = st_polygon(list(outer, hole1, hole2)) + pl2 = st_polygon(list(outer+10, hole1+10, hole2+10)) + po = st_sf(a = 2:3, st_sfc(pl1,pl2)) + plot(po, col = po$a, border = rev(po$a), lwd=3) + # multipolygon + r10 = matrix(rep(c(0,10),each=5),5) + pl1 = list(outer, hole1, hole2) + pl2 = list(outer+10, hole1+10, hole2+10) + pl3 = list(outer+r10, hole1+r10, hole2+r10) + mpo1 = st_multipolygon(list(pl1,pl2)) + mpo2 = st_multipolygon(list(pl3)) + mpo = st_sf(a=2:3, b=st_sfc(mpo1,mpo2)) + plot(mpo, col = mpo$a, border = rev(mpo$a), lwd = 2) + # geometrycollection: + gc1 = st_geometrycollection(list(mpo1, st_point(c(21,21)), l1 * 2 + 21)) + gc2 = st_geometrycollection(list(mpo2, l2 - 2, l3 - 2, st_point(c(-1,-1)))) + gc = st_sf(a=2:3, b = st_sfc(gc1,gc2)) + plot(gc, cex = gc$a, col = gc$a, border = rev(gc$a) + 2, lwd = 2) + + plot(gc1) + + plot(st_sfc(mp1, mpo1)) + + # color ramp + nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) + plot(nc) + plot(nc, axes = TRUE) + plot(nc, col="lightgrey") + plot(st_centroid(nc), add = TRUE, col = 1) + if ("geometry" %in% names(nc)) { + nc %>% + select(geometry) %>% + plot() + } + + nc$f = cut(nc[[1]], 5) + plot(nc["f"], key.pos = 1) + plot(nc[1], key.pos = 1) + + # test background map plotting: + load("bgmap.rda") + merc = st_crs(3857) + WGS84 = st_crs(4326) + nc = st_transform(nc, WGS84) + ## ggmap: + #library(ggmap) + #bgMap = get_map(unname(st_bbox(nc)), source = "google", zoom = 8) + plot(st_transform(nc[1], merc), bgMap = bgMap) + + # RgoogleMaps: + #library(RgoogleMaps) + #center = c(mean(st_bbox(nc)[c(2,4)]), mean(st_bbox(nc)[c(1,3)])) + #g = GetMap(center=center, zoom=6) # google + par(mar = c(0,0,1,0)) + plot(st_transform(nc, merc), bgMap = g) + + m = st_make_grid() + st_crs(m) = NA_crs_ + m = st_segmentize(m, 2) + st_crs(m) = 4326 + plot(m, axes = TRUE) + g = st_transform(m, st_crs("+proj=ortho +lat_0=30 +lon_0=45"), check = TRUE) + plot(g, axes = TRUE) + + nc[[1]] = NA + nc[[10]] = 1 + plot(nc, pal = rainbow, nbreaks = 3) + plot(nc, pal = rainbow, breaks = "jenks", nbreaks = 3) + plot(nc, pal = rainbow, breaks = (0:10)/3) + + # logz: + nc$e = 10^(nc$SID74) + plot(nc["e"], logz = TRUE) + + # shared key: + plot(nc[c("SID74", "SID79")], key.pos = -1) + plot(nc[c("BIR74", "BIR79")], key.pos = 1, logz=TRUE) + } Attaching package: 'dplyr' The following objects are masked from 'package:stats': filter, lag The following objects are masked from 'package:base': intersect, setdiff, setequal, union There were 13 warnings (use warnings() to see them) > > proc.time() user system elapsed 4.54 0.31 4.85