#' Write out-of-the-box CIE sky model fitting
#'
#' @inheritParams ootb_interpolate_and_merge
#' @param name Character vector of length one. File name without extension. If
#' needed, a file path can be added to the names. For example:
#' `"C:/Users/Doe/Documents/DSCN4500"`.
#'
#' @returns No return value. Called for side effects.
#' @export
#'
#' @family Tool Functions
#'
write_ootb_sky_model <- function(ootb_sky, name) {
sink(paste0(name, ".txt"))
.print <- function(x) cat(x, "\n") # Use cat() to avoid [1]
paste0(rep("-", 80), collapse = "") %>% .print()
.print("v0.2 Generated by rcaiman::write_ootb_sky_model(): do not edit by hand")
paste0(rep("-", 80), collapse = "") %>% .print()
ootb_sky$model$sun_coord$zenith_azimuth[1] %>% paste("sun_theta:", .) %>% .print()
ootb_sky$model$sun_coord$zenith_azimuth[2] %>% paste("sun_phi:", .) %>% .print()
ootb_sky$model$zenith_dn %>% paste("zenith_dn:", .)%>% .print()
ootb_sky$model$start[1] %>% paste("start_a:", .) %>% .print()
ootb_sky$model$start[2] %>% paste("start_b:", .) %>% .print()
ootb_sky$model$start[3] %>% paste("start_c:", .) %>% .print()
ootb_sky$model$start[4] %>% paste("start_d:", .) %>% .print()
ootb_sky$model$start[5] %>% paste("start_e:", .) %>% .print()
ootb_sky$model$method %>% unname %>% paste("method:", .) %>% .print()
ootb_sky$model$coef[1] %>% unname %>% paste("fit_a:", .) %>% .print()
ootb_sky$model$coef[2] %>% unname %>% paste("fit_b:", .) %>% .print()
ootb_sky$model$coef[3] %>% unname %>% paste("fit_c:", .) %>% .print()
ootb_sky$model$coef[4] %>% unname %>% paste("fit_d:", .) %>% .print()
ootb_sky$model$coef[5] %>% unname %>% paste("fit_e:", .) %>% .print()
paste0(rep("-", 80), collapse = "") %>% .print()
ootb_sky$model_validation$lm %>% summary() %>% print()
paste0(rep("-", 80), collapse = "") %>% .print()
paste("grid:", names(ootb_sky$g)) %>% .print()
ootb_sky$dist_to_black %>% paste("dist_to_black:", .) %>% .print()
ootb_sky$min_spherical_dist %>% paste("min_spherical_dist:", .) %>% .print()
ootb_sky$sky_points %>% nrow() %>% paste("sky_points_no:", .) %>% .print()
ootb_sky$sky_points$is_outlier %>% sum() %>% paste("outliers_no:", .) %>% .print()
ootb_sky$model_validation$rmse %>% paste("RMSE:", .) %>% .print()
ootb_sky$model_validation$r_squared %>% paste("r_squared:", .) %>% .print()
ootb_sky$model_validation$mae %>% paste("mae:", .) %>% .print()
sink()
# Save sky points
cells <- terra::cellFromRowCol(ootb_sky$sky,
ootb_sky$sky_points$row,
ootb_sky$sky_points$col)
xy <- terra::xyFromCell(ootb_sky$sky, cells)
p <- terra::vect(xy, "points")
terra::crs(p) <- crs(ootb_sky$sky)
terra::writeVector(p,
paste0(name, "_sky_points", ".gpkg"),
filetype = "GPKG", )
# Save data for model validation
df <- data.frame(pred = ootb_sky$model_validation$pred,
obs = ootb_sky$model_validation$obs)
utils::write.csv2(df, paste0(name, "_val", ".csv"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.