00_algandmed.R 6.6 KB

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