knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 8, fig.height = 8, warning = FALSE, message = FALSE )
r pretty_region_name(region)
results_directory <- file.path(system.file(paste0("extdata/zeta_results/", region), package = "statisticalRoughness")) zeta_results <- read_zeta_raster(out_dir = results_directory, Lmax = 1E3, raster_resolution = 10, .len = 10, proxy = FALSE) rstr <- raster::raster(file.path(system.file("extdata/big_rasters/", package = "statisticalRoughness"), paste0(region, ".tif"))) Lmax <- min(head(dim(rstr), 2)) spatial_scales <- get_all_R_L(Lmax, 5, len = 13)$allL %>% head(-1) spatial_scales <- spatial_scales[spatial_scales >= 30] zeta_results$spatial_scales <- tail(spatial_scales, length(zeta_results$raster_list)) * 10 zeta_results$spatial_scales band_names <- read.csv(file.path(results_directory, "band_names.csv")) %>% names() if ("theta" %in% .selected) zeta_results$raster_list <- zeta_results$raster_list %>% make_angular(match("theta", band_names))
rstr <- raster::aggregate(rstr, fact = 10) library(rayshader) matrix_for_rayshader(raster::as.matrix(rstr)) %>% sphere_shade(colorintensity = 0.5, texture = "imhof4") %>% add_shadow(ray_shade(matrix_for_rayshader(raster::as.matrix(rstr)), sunaltitude = 20), max_darken = 0.1) %>% # add_shadow(ambient_shade(matrix_for_rayshader(raster::as.matrix(rstr))), 0) %>% plot_map()
sliced_clamped_raster <- slice_clamp( raster_list = zeta_results$raster_list, att_names = band_names, selected = .selected, clamp_raster = TRUE, clamp_params = cparams)
sliced_clamped_raster <- reduce_spatial_noise(sliced_clamped_raster) #' @param raster_list a `list` of `stars` objects #' @param target_id the id of the layer to be masked #' @return a `list` of `stars` logtransform_layer <- function(raster_list, target_id){ transformed_raster_list <- lapply(seq_along(raster_list), function(n){ s <- raster_list[[n]] %>% as("Raster") transformed_values <- raster::getValues(s[[target_id]]) transformed_values <- log10(transformed_values) transformed_values[!is.finite(transformed_values)] <- NA s <- raster::setValues(s, transformed_values, layer = target_id) return(stars::st_as_stars(s)) }) return(transformed_raster_list) } .sliced_clamped_raster <- sliced_clamped_raster for (x in c("alpha1.y", "alpha1.x", "alpha2.y", "alpha2.x", "w.y", "w.x", "xi.y", "xi.x", "zeta1", "zeta2")){ .sliced_clamped_raster <- logtransform_layer(.sliced_clamped_raster, match(x, .selected)) }
res <- lapply(.selected, function(x) { knitr::knit_child(text = c( '### `r x`', '', '```r', 'raster_select(.sliced_clamped_raster, band_id = match(x, .selected)) %>% make_leaflet_map(ttl = x, groups = zeta_results$spatial_scales, style = "continuous")', '```', '' ), envir = environment(), quiet = TRUE) }) cat(unlist(res), sep = '\n')
ind <- four_values_check(sliced_clamped_raster) sliced_clamped_raster <- sliced_clamped_raster[ind] spatial_scales <- zeta_results$spatial_scales[ind]
res <- lapply(.selected, function(x) { knitr::knit_child(text = c( '### `r x`', '', '```r', 'gb <- make_all_plots(sliced_clamped_raster, spatial_scales, match(x, .selected), x, begin = 0.1, end = 0.85, direction = 1, option = "viridis")', 'layout_mat <- matrix(c(1, 1, 1, 1, 1, 2, 2, 2, 3, 3), byrow = FALSE, nrow = 5, ncol = 2)', 'gridExtra::grid.arrange(grobs = gb, layout_matrix = layout_mat)', '```', '' ), envir = environment(), quiet = TRUE) }) cat(unlist(res), sep = '\n')
is_band1_gt_band2 <- function(band1, band2, rasters, .selected, spatial_scales){ allx <- raster_select(rasters, band_id = match(band1, .selected))$rasters ally <- raster_select(rasters, band_id = match(band2, .selected))$rasters xy <- foreach(x = allx, y = ally, .combine = rbind) %do% { x <- as(x, "Raster") y <- as(y, "Raster") s <- raster::stack(x, y) raster::calc(s, fun = function(x){x[1] > x[2]}) %>% raster::getValues() %>% rstatix::freq_table() %>% dplyr::filter(group == "TRUE") %>% dplyr::select(-group) } # rownames(xy) <- spatial_scales mean_xy <- xy %>% dplyr::summarize(n = mean(n), prop = mean(prop)) # rownames(mean_xy) <- "mean" xy <- rbind(xy, mean_xy) xy %>% knitr::kable("html", caption = paste0("Is ", band1, " greater than ", band2, "?")) %>% kableExtra::kable_styling(bootstrap_options = c("striped", "hover"), position = "center", full_width = TRUE) }
vars <- .selected[grepl(".x", .selected)] res <- foreach(var = vars) %do% { is_band1_gt_band2(var, gsub(".x", ".y", var), sliced_clamped_raster, .selected, spatial_scales) } cat(unlist(res), sep = '\n')
crossscale_correlations( raster_list = sliced_clamped_raster, att_names = band_names, selected = .selected, spatial_scales = spatial_scales, corr_type = "pearson")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.