test_that("st_transform works", {
skip_if_not_installed("sp")
library(sp)
s = st_sfc(st_point(c(1,1)), st_point(c(10,10)), st_point(c(5,5)), crs = 4326)
s1.tr = st_transform(s, 3857)
sp = as(s, "Spatial")
# sp.tr = spTransform(sp, CRS("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +nadgrids=@null +no_defs")) # web mercator
# s2.tr = st_as_sfc(sp.tr)
#attr(s1.tr, "crs")$proj4string = ""
#attr(s2.tr, "crs")$proj4string = ""
st_crs(s1.tr) = NA_crs_
# st_crs(s2.tr) = NA_crs_
# if (sf_extSoftVersion()[["proj.4"]] < "5.0.0") # FIXME:
# expect_equal(s1.tr, s2.tr)
toCrs = 3857
s1.tr = st_transform(s, toCrs)
#attr(s1.tr, "crs")$proj4string = ""
st_crs(s1.tr) = NA_crs_
# st_crs(s2.tr) = NA_crs_
# if (sf_extSoftVersion()[["proj.4"]] < "5.0.0") # FIXME:
# expect_equal(s1.tr, s2.tr)
expect_silent({
sf.tr = st_transform(st_sf(a=1:3, s), toCrs) # for sf
sfg.tr = st_transform(structure(s[[1]], proj4string="+proj=longlat +datum=WGS84 +no_defs"), toCrs) # sfg
})
})
#test_that("gdal can be loaded, unloaded, and loaded", {
# expect_silent({
# unload_gdal()
# load_gdal()
# }
# )
#})
test_that("st_wrap_dateline works", {
expect_silent(x <- st_wrap_dateline(st_sfc(st_linestring(rbind(c(-179,0),c(179,0))), crs = 4326)))
})
test_that('gdal_subdatasets works', {
skip_if(sf_extSoftVersion()[["GDAL"]] < "2.1.0")
skip_if(sf_extSoftVersion()[["GDAL"]] >= "2.5.0") # FIXME:
skip_on_os("mac") # FIXME:
fname = system.file("nc/cropped.nc", package = "sf")
sd2 = gdal_subdatasets(fname)[[2]]
})
# context("gdal utils")
test_that('gdal_utils work', {
skip_on_appveyor() # FIXME:
skip_if_not(Sys.getenv("USER") %in% c("edzer", "travis"))
skip_if_not(sf_extSoftVersion()[["GDAL"]] >= "2.1.0")
fname = system.file("nc/cropped.nc", package = "sf")
#fname = system.file("tif/geomatrix.tif", package = "sf")
info = gdal_utils("info", fname, quiet = TRUE)
sd2 = gdal_subdatasets(fname)[[2]]
info = gdal_utils("info", sd2, quiet = TRUE)
tf = tempfile()
tf2 = tempfile()
tf3 = tempfile()
#tf = "foo"
#gdal_utils("rasterize", points, tif) -> need a good example
#gdal_utils("warp", sd2, tf, c("-t_srs", "+proj=utm +zone=11 +datum=WGS84"))
#expect_true(gdal_utils("warp", sd2, tf, c("-t_srs", "+proj=utm +zone=11 +datum=WGS84")))
#gdal_utils("warp", sd2, tf, c("-t_srs", "+proj=utm +zone=11 +datum=WGS84"))
#expect_true(gdal_utils("warp", sd2, tf))
#expect_true(gdal_utils("rasterize", sd2, tf))
expect_true(gdal_utils("translate", sd2, tf))
expect_true(gdal_utils("vectortranslate", sd2, tf2))
shp = system.file("shape/nc.shp", package="sf")
gpkg = paste0(tempfile(), ".gpkg")
options = c("-f", "GPKG", "-overwrite", "-nlt", "PROMOTE_TO_MULTI",
"-oo", "ADJUST_TYPE=NO", "-doo", "FLATTEN_NESTED_ATTRIBUTES=NO")
expect_true(gdal_utils("vectortranslate", shp, gpkg, options = options))
expect_warning(gdal_utils("nearblack", sd2, tf))
# create point geom:
points = system.file("gpkg/nc.gpkg", package="sf")
expect_true(gdal_utils("grid", points, tf))
expect_true(gdal_utils("buildvrt", sd2, tf3))
expect_warning(gdal_utils("buildvrt", sd2, tf3, c("-oo", "FOO=BAR"))) # fake opening options
expect_error(gdal_utils("buildvrt", "foo.tif", tf3, c("-oo", "FOO=BAR")), "cannot open source dataset")
expect_true(gdal_utils("demprocessing", sd2, tf, processing = "hillshade"))
# check gdalfootprint
skip_if_not(sf_extSoftVersion()[["GDAL"]] >= "3.8.0")
tif <- system.file("tif/geomatrix.tif", package="sf")
tf4 <- tempfile(fileext = ".gpkg")
expect_true(gdal_utils("footprint", tif, tf4))
})
# gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' -overwrite NETCDF:avhrr-only-v2.19810901.nc:anom utm11.tif
# becomes:
# st_gdalwarp("NETCDF:avhrr-only-v2.19810901.nc:anom", "utm11.tif", c("-t_srs", "+proj=utm +zone=11 +datum=WGS84"))
test_that('gdal_addo works', {
skip_on_cran()
has_overviews = function(x){
info = gdal_utils(source = x, quiet = TRUE)
grepl("overview", info, ignore.case = TRUE)
}
has_compressed_overviews = function(x){
# Check if sidecar overview file has compression, x is tif path
path = paste0(x, ".ovr") # overview file
info = gdal_utils(source = path, quiet = TRUE)
if(!file.exists(path))
return(NA)
grepl("compression", info, ignore.case = TRUE)
}
# setup
dir = file.path(tempdir(), "gdal_addo")
dir.create(dir)
on.exit(unlink(dir, recursive = TRUE)) # cleanup when done
tif = file.path(dir, "geomatrix.tif")
file.copy(system.file("tif/geomatrix.tif", package = "sf"),
tif, overwrite = TRUE)
expect_false(has_overviews(tif))
# Default arguments
expect_no_error(gdal_addo(tif)) # internal overview
expect_true(has_overviews(tif))
expect_true(is.na(has_compressed_overviews(tif))) # no overview file
# Clean overviews
expect_no_error(gdal_addo(tif, clean = TRUE))
expect_false(has_overviews(tif))
# Overviews in separate file
expect_no_error(gdal_addo(tif, read_only = TRUE))
expect_false(has_compressed_overviews(tif)) # uncompressed overview file
# Clean overviews
expect_no_error(gdal_addo(tif, clean = TRUE))
expect_false(has_overviews(tif))
# Compression via config_options works
expect_no_error(gdal_addo(tif, read_only = TRUE,
config_options = c(COMPRESS_OVERVIEW="LZW")))
expect_true(has_compressed_overviews(tif))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.