epk200t_grids.R 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #' 100x100 km kaardiruudukeste genereerimine
  2. #'
  3. #' Eesti projektsioonile vastava ning kogu Eestit katva ruutvõrgustiku genereerimine ja salvestamine andmebaasi. Ruutvõrgustiku ruudu suurus 100x100 km. Võrgustik salvestatakse vaikimisi andmebaasi nime 'maaamet.epk200t_grid' alla.Loe: \url{https://geoportaal.maaamet.ee/est/Ruumiandmed/Kaardilehtede-susteemid-p224.html}. 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. #' epk200t_grids(conf = conf)
  14. #' }
  15. #'
  16. epk200t_grids <- function(conf = NULL) {
  17. ans <- utils::askYesNo("Do you want to import maps into database?", default = F)
  18. if (!ans | is.na(ans)) {
  19. cat("\n------------------------\n")
  20. cat("Kaardikihte ei lisatud.")
  21. cat("\n------------------------\n")
  22. return()
  23. }
  24. if (ans) {
  25. # Temp directory
  26. tmp_dir <- sprintf("%s/tmp/%s", system.file(package = "estmap"), "maaamet_epk_grids")
  27. if (!dir.exists(tmp_dir)) {
  28. dir.create(tmp_dir)
  29. }
  30. tmp_file <- sprintf("%s/epk200t_grid.gpkg", tmp_dir)
  31. if (!file.exists(tmp_file)) {
  32. # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid")
  33. algorithm <- "grass7:v.mkgrid"
  34. # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
  35. result <- qgisprocess::qgis_run_algorithm(
  36. algorithm = algorithm,
  37. "-h" = 0,
  38. "-p" = 0,
  39. GRASS_OUTPUT_TYPE_PARAMETER = 0,
  40. GRASS_REGION_PARAMETER = "",
  41. GRASS_VECTOR_DSCO = "",
  42. GRASS_VECTOR_EXPORT_NOCAT = 0,
  43. GRASS_VECTOR_LCO = "",
  44. angle = 0,
  45. box = "100000,100000",
  46. breaks = 0,
  47. coordinates = "300000,6300000 [EPSG:3301]",
  48. grid = "4,5",
  49. map = tmp_file,
  50. position = 0,
  51. # .quiet = TRUE
  52. )
  53. # result
  54. # epk200t_grid <- sf::read_sf(qgisprocess::qgis_output(result, "map"))
  55. # sf::st_geometry(epk200t_grid) %>% plot()
  56. }
  57. conf <- ruut::get_config()
  58. conf$table <- "epk200t_grid"
  59. conf$schema <- "maaamet"
  60. ruut::copy_qgis_object_to_db(
  61. x = result, conf = conf, geometry_type = "POLYGON",
  62. crs_source = "EPSG:3301"
  63. )
  64. cat(sprintf(
  65. "\nFail fail %s kopeeriti POSTGIS andmebaasi %s.%s\n\n",
  66. tmp_file, conf$schema, conf$table
  67. ))
  68. }
  69. }