testthat::test_that("basic SAGA-GIS tool usage ", {
testthat::skip_on_cran()
testthat::skip_if(is.null(search_saga()))
saga <- saga_gis(all_outputs = FALSE)
# test execution of a SAGA-GIS tool
dem <- saga$grid_calculus$random_terrain(
target_user_xmin = 0,
target_user_xmax = 1000,
target_user_ymin = 0,
target_user_ymax = 1000,
radius = 100,
iterations = 500,
target_out_grid = tempfile(fileext = ".sgrd")
)
testthat::expect_s4_class(dem, "SpatRaster")
# table output
orb <- saga$climate_tools$earths_orbital_parameters(
orbpar = tempfile(fileext = ".csv")
)
testthat::expect_s3_class(orb, "tbl_df")
# optional outputs with conditions on inputs
flowacc <-
saga$ta_preprocessor$sink_removal(
dem,
dem_preproc = tempfile(fileext = ".sgrd")
)
flowacc <-
saga$ta_hydrology$flow_accumulation_top_down(
flowacc,
flow = tempfile(fileext = ".sgrd")
)
testthat::expect_s4_class(flowacc, "SpatRaster")
# test loading simple features object and pipes
categories <-
saga$grid_calculus$grid_calculator(
dem,
formula = "ifelse(g1>20000, 1, 0)",
result = tempfile(fileext = ".sgrd")
)
vers <- saga_version(search_saga())
fileext <- ifelse(vers < "7.0", ".shp", ".gpkg")
tempfile <- tempfile(fileext = fileext)
tool <- ifelse(vers >= "9.2", "vectorizing_grid_classes", "vectorising_grid_classes")
shapes <-
saga$shapes_grid[[tool]](
grid = categories,
polygons = tempfile,
.verbose = TRUE
)
testthat::expect_s3_class(shapes, "sf")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.