00_algandmed.R 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #' Andmebaasi loomine ja ühendamine
  2. #'
  3. system("ogr2ogr --long-usage")
  4. str <- "{ 'INPUT' : 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'id\' srid=3301 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"maaamet\".\"epk2t_grid\" (geom)', 'INTERSECT' : '/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/marja.gpkg|layername=piir', 'OUTPUT' : 'TEMPORARY_OUTPUT', 'PREDICATE' : [5] }"
  5. ruut::construct_qgis_output_result_to_beter_format(str = str)
  6. source("functions/delete_existing_variables.R")
  7. library(dplyr)
  8. library(qgisprocess)
  9. library(sf)
  10. par(oma = c(0, 0, 0, 0)) # outer margin
  11. par(mar = c(0, 0, 0, 0) + 0.0)
  12. # Uue schema loomine
  13. conf <- ruut::get_config()
  14. conf$schema <- "xxx_artikkel_210127"
  15. ruut::db_create_new_schema(conf = conf)
  16. ## --------------- testi algus 'ruudu' funktsioonidele ------------------
  17. geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658300,6474800],[658300,6475000],[658700,6476000],[659600,6475000],[659600,6474800],[658300,6474800]]}')
  18. # read geojson from string:
  19. geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658300,6474800],
  20. [658300,6475000],[658400,6475100],[658600,6475000],[658600,6474800],
  21. [658300,6474800]]}')
  22. x <- sf::read_sf(geojson_txt) %>% sf::st_cast("POLYGON")
  23. sf::st_crs(x) <- 3301
  24. x
  25. sf::st_geometry(x) %>% graphics::plot()
  26. gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
  27. obj <- "mikihiir"
  28. dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
  29. ## GPKG loomine
  30. ruut::gpkg_sellest_alustame_gpkg_loomist(pk = x, obj = obj, gpkg_home = gpkg_home)
  31. # Layers list
  32. sf::st_layers(dsn = dsn)
  33. ## GPKG ruudustike lisamine
  34. ruut::gpkg_piirkonnale_ruudustike_lisamine(obj = obj, gpkg_home = gpkg_home)
  35. ## GPKG polügoonide lisamine
  36. ruut::gpkg_piirkonnale_polygoonide_lisamine(obj = obj, gpkg_home = gpkg_home)
  37. ## Loeme andmebaasist piiri ja piirikasti.
  38. # Layers list
  39. gpkg_info <- sf::st_layers(dsn = dsn)
  40. layer_names <- gpkg_info$name
  41. for (layer_name in layer_names) {
  42. cat(sprintf("\nFailist %s laeti alla: %s", dsn, layer_name))
  43. assign(layer_name, sf::read_sf(dsn = dsn, layer = layer_name))
  44. }
  45. ## Test plot
  46. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  47. sf::st_geometry(bb) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  48. sf::st_geometry(piir) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  49. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  50. sf::st_geometry(bb) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  51. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(add = T, border = 3, lwd = 0.3)
  52. sf::st_geometry(bb_shp_katastriyksus) %>% graphics::plot(add = T, border = 2, lwd = 0.3)
  53. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  54. sf::st_geometry(piir) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  55. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(add = T, border = 3, lwd = 0.3)
  56. sf::st_geometry(piir_shp_katastriyksus) %>% graphics::plot(add = T, border = 2, lwd = 0.3)
  57. ##------------------ testi lõpp -------------------
  58. # Objektide nimekiri
  59. objektid <- c("valga", "matsalu", "lahemaa")
  60. # ----------------- Loe piirkond (objekt) -----------------
  61. ## Piirkonna 'pk'
  62. conn <- ruut::db_connect(conf = conf)
  63. ## Valitud objekti indeks
  64. i <- 1
  65. source("geomeetria_teisendused/pk_piir.R")
  66. source("gpkg/61_kas_on_piirkond.R")
  67. source("gpkg/01_piirkonnale_ruudustike_lisamine.R")
  68. source("gpkg/02_piirkonnale_polygoonide_lisamine.R")
  69. source("gpkg/03_piirkonnale_punktide_lisamine.R")
  70. source("gpkg/04_piirkonnale_joonte_lisamine.R")
  71. # for (i in 1:length(objektid)) {
  72. # ## ---------------- 1. piirkonna piir ------------------
  73. ## Muutujad: pk - piirkond
  74. obj <- objektid[i]
  75. pk <- pk_piir(obj = obj)
  76. # pk <- sf::st_transform(pk, 3301)
  77. # sf::st_crs(pk)
  78. sf::st_geometry(pk) %>% plot()
  79. gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
  80. #
  81. #
  82. # piirkonnale_ruudustike_lisamine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  83. # piirkonnale_polygoonide_lisamine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  84. # piirkonnale_punktide_lisamine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  85. # piirkonnale_joonte_lisamine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  86. # }
  87. m <- piirkonnale_maatriksi_loomine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  88. m_filename <- sprintf("minu_%s_maatriks.csv", obj)
  89. write.table(m,file=m_filename, sep = ";", row.names = T)
  90. y <- read.table(m_filename,header=TRUE, sep = ";")
  91. unlink(m_filename) # Kustuta fail
  92. conn <- ruut::db_connect()
  93. q <- sprintf("SELECT * FROM %s.%s_bb", "xxx_artikkel_210127", obj)
  94. cat(sprintf("\n-----------------\n%s\n\n", q))
  95. pk_bb_3301 <- sf::st_read(conn, query = q)
  96. sf::st_geometry(pk) %>% plot()
  97. sf::st_geometry(pk_bb_3301) %>% plot(add = T)
  98. ## 3. piirkonna epk10t ruudud
  99. # 3.1 kogu ruutvõrgustik
  100. epk10t_grid <- pk_epk10t_grid(obj = objektid[i])
  101. # 3.1 ainult piirkonna ruutvõrgustik
  102. epk10t <- pk_epk10t(obj = objektid[i])
  103. sf::st_geometry(epk10t_grid) %>% plot(border = 3, lwd = 0.3, col = "#d3fffb")
  104. sf::st_geometry(epk10t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  105. sf::st_geometry(pk) %>% plot(add = T)
  106. # 4 piirkonna epk10t kaardiruutude nimekiri ortofotode allalaadimiseks
  107. epk10t_nr <- pk_epk10t_ruutude_nimekiri(objektid[i])
  108. ## 5. piirkonna epk2t ruudud
  109. # 3.1 kogu ruutvõrgustik
  110. epk2t_grid <- pk_epk2t_grid(obj = objektid[i])
  111. # 3.1 ainult piirkonna ruutvõrgustik
  112. epk2t <- pk_epk2t(obj = objektid[i])
  113. sf::st_geometry(epk2t_grid) %>% plot(border = 3, lwd = 0.3, col = "#d3fffb")
  114. sf::st_geometry(epk2t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  115. sf::st_geometry(pk) %>% plot(add = T)
  116. ## -------------- Muud ruudustikega seotud demo joonised ----------------
  117. ## 2. Kaardiruudustiku epk200t (100x100km) piirikast
  118. conn <- ruut::db_connect()
  119. q <- sprintf("SELECT * FROM %s.%s", "maaamet", "epk200t_bb")
  120. cat(sprintf("\n-----------------\n%s\n\n", q))
  121. epk200t_bb <- sf::st_read(conn, query = q)
  122. sf::st_geometry(epk200t_bb) %>% plot()
  123. ## 3. Kaardiruudustiku epk200t (100x100km)
  124. conn <- ruut::db_connect()
  125. q <- sprintf("SELECT * FROM %s.%s", "maaamet", "epk200t")
  126. cat(sprintf("\n-----------------\n%s\n\n", q))
  127. epk200t <- sf::st_read(conn, query = q)
  128. sf::st_geometry(epk200t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")