ajutised_muutujad.R 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ajutised_muutujad <- function(pk = NULL, obj = NULL, conf = NULL) {
  2. ## Tühi list muutuja, mida funktsioon tagastab.
  3. l <- list()
  4. ## Objekti muutujale väärtuste omistamine, kui seda pole antud.
  5. if (is.null(obj)) {
  6. obj <- "demo"
  7. }
  8. obj <- gsub(" ", "_", tolower(obj))
  9. ## Konfiguratsiooni muutujale väärtuste omistamine, kui seda pole antud.
  10. if (is.null(conf)) {
  11. conf <- ruut::get_config()
  12. conf$schema <- obj
  13. l$conf <- conf
  14. }
  15. ## Piirkonna muutujale väärtuste omistamine, kui seda pole antud.
  16. if (is.null(pk)) {
  17. # geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658300,6474800],[658300,6475000],[658700,6476000],[659600,6475000],[659600,6474800],[658300,6474800]]}')
  18. geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658400,6474800],[658300,6475000],[658700,6476000],[659600,6475000],[659600,6474800],[659200,6474950],[658400,6474800]]}')
  19. pk <- sf::read_sf(geojson_txt)
  20. pk <- sf::st_cast(pk, "POLYGON")
  21. sf::st_crs(pk) <- 3301
  22. attributes(pk)$names <- attributes(pk)$sf_column <- "geom"
  23. }
  24. ## ------------- muutujad ja teisendused ---------------
  25. tmp_dir <- tempdir() # ajutine kataloog
  26. tmp_gpkg_file <- sprintf("%s/%s.gpkg", tmp_dir, obj) # ajutine gpkg fail
  27. conf$gpkg_home <- tmp_dir
  28. conf$gpkg_file <- obj
  29. conf$gpkg_table <- "test_layer_1"
  30. ## Loome lingid gpkg ajutistest tabelitest lugemiseks ja kirjutamiseks
  31. l$tmp_gpkg_file_output_1 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = F)
  32. l$tmp_gpkg_file_input_1 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = T)
  33. conf$gpkg_table <- "test_layer_2"
  34. l$tmp_gpkg_file_output_2 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = F)
  35. l$tmp_gpkg_file_input_2 <- ruut::construct_to_gpkg_output_file_str(conf = conf, is_input_str = T)
  36. # Loome ajutise gpkg faili koos ajutise tabeliga.
  37. sf::write_sf(pk, dsn = tmp_gpkg_file, layer = "test_layer_0", driver = "gpkg", fid_column_name = "id", delete_dsn = T)
  38. cat(sprintf("\n------------------\nAjutise gpkg faili asukoht: %s\n", tmp_gpkg_file))
  39. sf::st_layers(dsn = tmp_gpkg_file)
  40. # unlink(l$tmp_gpkg_file)
  41. l$obj <- obj
  42. l$tmp_gpkg_file <- tmp_gpkg_file
  43. l$tmp_dir <- tmp_dir
  44. l$pk <- pk
  45. return(l)
  46. }