maaamet_eesti_muutmine.R 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #' Maa-ameti kogu Eesti andmestiku teisendamised
  2. #'
  3. #' Source: \url{https://geoportaal.maaamet.ee/est/Ruumiandmed/Topokaardid-ja-aluskaardid/Eesti-pohikaart-1-10000/Laadi-pohikaart-alla-p612.html} . Andmed salvestatakse postgisi andmebaasi. Schema = 'eesti'. Koniguratsiooni muutmiseks muuda konfiguratsiooni. Muutujate vaikeväärtused on sellised, et ei ole vaja midagi muuta.
  4. #' @param conf A list() of configuration variables. Default values \code{\link[ruut]{get_config}}.
  5. #' @return No output.
  6. #' @seealso [ruut::get_config()], [ruut::copy_shp_to_db()]
  7. #' @keywords postgis, maps, ESRI Shpfile, OSM
  8. #' @export
  9. #' @examples
  10. #' \dontrun{
  11. #'
  12. #' conf <- ruut::get_config()
  13. #' maaamet_eesti_muutmine(conf = conf)
  14. #' }
  15. maaamet_eesti_muutmine <- function(conf = NULL) {
  16. ans <- utils::askYesNo("Do you want to import maps into database?", default = F)
  17. if (!ans | is.na(ans)) {
  18. cat("\n------------------------\n")
  19. cat("Kaardikihte ei lisatud.")
  20. cat("\n------------------------\n")
  21. return()
  22. }
  23. if (ans) {
  24. # Export to postgis
  25. if (is.null(conf)) {
  26. conf <- ruut::get_config()
  27. conf$schema <- "eesti"
  28. }
  29. ## ==================================================================================================
  30. ## !!!!!!!!!!!!!!! Muud teisendused !!!!!!!!!!!!!!!!!!
  31. ## Võtab palju aega, kuni 10 tundi.
  32. ## 1. Üheks tervikobjektiks ühendamine mingi tunnuse järele.
  33. andmed <- data.frame("tabeli_nimi" = character(0), "tunnus" = character(0))
  34. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_201_meri_a", "tunnus" = "kood"))
  35. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_202_seisuveekogu_a", "tunnus" = "kkr_kood"))
  36. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_203_vooluveekogu_a", "tunnus" = "kkr_kood"))
  37. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_306_margala_a", "tunnus" = "tyyp"))
  38. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_307_turbavali_a", "tunnus" = "tyyp"))
  39. andmed <- rbind(andmed, data.frame("tabeli_nimi" = "e_305_puittaimestik_a", "tunnus" = "tyyp"))
  40. # ruut::qgis_algorithm_search_by_word('Dissolve')
  41. for (i in 1:nrow(andmed)) {
  42. conf$table <- andmed$tabeli_nimi[i]
  43. input <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geom", geometry_type = "Polygon", srid = 3301, checkPrimaryKeyUnicity = 1, key = "id")
  44. conf$table <- sprintf("%s_%s", conf$table, "dissolved")
  45. output <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geom", geometry_type = NULL, srid = NULL, checkPrimaryKeyUnicity = FALSE, key = NULL)
  46. str <- sprintf("{ 'FIELD' : ['%s'], 'INPUT' : '%s', 'OUTPUT' : '%s' }", andmed$tunnus[i], input, output)
  47. cmd <- ruut::construct_qgis_output_result_to_better_format(str = str, algorithm = "native:dissolve")
  48. system(cmd)
  49. cat(sprintf("\n\n%s/%s ---------------\nAndmed %s on muudetud.\n", i, nrow(andmed), andmed$tabeli_nimi[i]))
  50. }
  51. }
  52. }