00_algandmed.R 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. #' Andmebaasi loomine ja ühendamine
  2. #'
  3. system("ogr2ogr --long-usage")
  4. str <- " { 'FIELD' : 'code', 'INPUT' : '/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/mikihiir.gpkg|layername=piir_landuse_a', 'OPERATOR' : 0, 'OUTPUT' : 'ogr:dbname=\'/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/mikihiir.gpkg\' table=\"piir_landuse_a_residential\" (geom)', 'VALUE' : '7203' }"
  5. ruut::construct_qgis_output_result_to_better_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 <- "marja"
  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. ## GPKG joonte lisamine
  38. ruut::gpkg_piirkonnale_joonte_lisamine(obj = obj, gpkg_home = gpkg_home)
  39. # GPKG punktide lisamine
  40. ruut::gpkg_piirkonnale_punktide_lisamine(obj = obj, gpkg_home = gpkg_home)
  41. # Layers list
  42. sf::st_layers(dsn = dsn)
  43. ## Loeme andmebaasist piiri ja piirikasti.
  44. # Layers list
  45. gpkg_info <- sf::st_layers(dsn = dsn)
  46. layer_names <- gpkg_info$name
  47. for (layer_name in layer_names) {
  48. cat(sprintf("\nFailist %s laeti alla: %s", dsn, layer_name))
  49. assign(layer_name, sf::read_sf(dsn = dsn, layer = layer_name))
  50. }
  51. ## Test plot
  52. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  53. sf::st_geometry(bb) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  54. sf::st_geometry(piir) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  55. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  56. sf::st_geometry(bb) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  57. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(add = T, border = 3, lwd = 0.3)
  58. sf::st_geometry(bb_shp_katastriyksus) %>% graphics::plot(add = T, border = 2, lwd = 0.3)
  59. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(border = 0, lwd = 0.3, col = "#ffffff") # valge
  60. sf::st_geometry(piir) %>% graphics::plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")
  61. sf::st_geometry(bb_epk02t_grid) %>% graphics::plot(add = T, border = 3, lwd = 0.3)
  62. sf::st_geometry(piir_shp_katastriyksus) %>% graphics::plot(add = T, border = 2, lwd = 0.3)
  63. # Layers list
  64. sf::st_layers(dsn = dsn)
  65. y <- unique(as.data.frame(sf::read_sf(dsn = dsn, layer = "piir_aadressandmed", as_tibble = T))[, c("adob_liik"), drop = F])
  66. nrow(y)
  67. y$adob_liik
  68. ## ------------------ testi lõpp -------------------
  69. # Objektide nimekiri
  70. objektid <- c("valga", "matsalu", "lahemaa")
  71. # ----------------- Loe piirkond (objekt) -----------------
  72. ## Piirkonna 'pk'
  73. conn <- ruut::db_connect(conf = conf)
  74. conf <- ruut::get_config()
  75. ## Valitud objekti indeks
  76. i <- 1
  77. conf$schema <- "xxx_artikkel_210127"
  78. source("geomeetria_teisendused/pk_piir.R")
  79. gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
  80. for (i in 1:length(objektid)) {
  81. # ## ---------------- 1. piirkonna piir ------------------
  82. ## Muutujad: pk - piirkond
  83. obj <- objektid[i]
  84. x <- pk_piir(obj = obj)
  85. sf::st_geometry(x) %>% plot()
  86. gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
  87. ## GPKG loomine
  88. ruut::gpkg_sellest_alustame_gpkg_loomist(pk = x, obj = obj, gpkg_home = gpkg_home)
  89. # Layers list
  90. dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
  91. sf::st_layers(dsn = dsn)
  92. ## GPKG ruudustike lisamine
  93. ruut::gpkg_piirkonnale_ruudustike_lisamine(obj = obj, gpkg_home = gpkg_home)
  94. ## GPKG polügoonide lisamine
  95. ruut::gpkg_piirkonnale_polygoonide_lisamine(obj = obj, gpkg_home = gpkg_home)
  96. ## GPKG joonte lisamine
  97. ruut::gpkg_piirkonnale_joonte_lisamine(obj = obj, gpkg_home = gpkg_home)
  98. # GPKG punktide lisamine
  99. ruut::gpkg_piirkonnale_punktide_lisamine(obj = obj, gpkg_home = gpkg_home)
  100. }
  101. obj = obj; pk = pk; gpkg_home = gpkg_home; obj_only = TRUE
  102. m <- piirkonnale_maatriksi_loomine(obj = obj, pk = pk, gpkg_home = gpkg_home, obj_only = TRUE)
  103. m_filename <- sprintf("minu_%s_maatriks.csv", obj)
  104. write.table(m, file = m_filename, sep = ";", row.names = T)
  105. y <- read.table(m_filename, header = TRUE, sep = ";")
  106. unlink(m_filename) # Kustuta fail
  107. conn <- ruut::db_connect()
  108. q <- sprintf("SELECT * FROM %s.%s_bb", "xxx_artikkel_210127", obj)
  109. cat(sprintf("\n-----------------\n%s\n\n", q))
  110. pk_bb_3301 <- sf::st_read(conn, query = q)
  111. sf::st_geometry(pk) %>% plot()
  112. sf::st_geometry(pk_bb_3301) %>% plot(add = T)
  113. ## 3. piirkonna epk10t ruudud
  114. # 3.1 kogu ruutvõrgustik
  115. epk10t_grid <- pk_epk10t_grid(obj = objektid[i])
  116. # 3.1 ainult piirkonna ruutvõrgustik
  117. epk10t <- pk_epk10t(obj = objektid[i])
  118. sf::st_geometry(epk10t_grid) %>% plot(border = 3, lwd = 0.3, col = "#d3fffb")
  119. sf::st_geometry(epk10t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  120. sf::st_geometry(pk) %>% plot(add = T)
  121. # 4 piirkonna epk10t kaardiruutude nimekiri ortofotode allalaadimiseks
  122. epk10t_nr <- pk_epk10t_ruutude_nimekiri(objektid[i])
  123. ## 5. piirkonna epk2t ruudud
  124. # 3.1 kogu ruutvõrgustik
  125. epk2t_grid <- pk_epk2t_grid(obj = objektid[i])
  126. # 3.1 ainult piirkonna ruutvõrgustik
  127. epk2t <- pk_epk2t(obj = objektid[i])
  128. sf::st_geometry(epk2t_grid) %>% plot(border = 3, lwd = 0.3, col = "#d3fffb")
  129. sf::st_geometry(epk2t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#a3fffb")
  130. sf::st_geometry(pk) %>% plot(add = T)
  131. ## -------------- Muud ruudustikega seotud demo joonised ----------------
  132. ## 2. Kaardiruudustiku epk200t (100x100km) piirikast
  133. conn <- ruut::db_connect()
  134. q <- sprintf("SELECT * FROM %s.%s", "maaamet", "epk200t_bb")
  135. cat(sprintf("\n-----------------\n%s\n\n", q))
  136. epk200t_bb <- sf::st_read(conn, query = q)
  137. sf::st_geometry(epk200t_bb) %>% plot()
  138. ## 3. Kaardiruudustiku epk200t (100x100km)
  139. conn <- ruut::db_connect()
  140. q <- sprintf("SELECT * FROM %s.%s", "maaamet", "epk200t")
  141. cat(sprintf("\n-----------------\n%s\n\n", q))
  142. epk200t <- sf::st_read(conn, query = q)
  143. sf::st_geometry(epk200t) %>% plot(add = T, border = 3, lwd = 0.3, col = "#d3fffb")