00_algandmed.R 6.9 KB

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