Ardo Kubjas 3 tahun lalu
induk
melakukan
af2fb94e1f

+ 1 - 0
.gitignore

@@ -2,3 +2,4 @@
 .Rhistory
 .RData
 .Ruserdata
+*.Rproj

+ 21 - 18
00_algandmed.R

@@ -27,28 +27,31 @@ geojson_txt <- paste('{"type":"MultiPoint","coordinates":[[658300,6474800],[6583
 # [658300,6474800]]}')
 x <- sf::read_sf(geojson_txt) %>% sf::st_cast("POLYGON")
 sf::st_crs(x) <- 3301
-x
+colnames(x)
 sf::st_geometry(x) %>% graphics::plot()
 
-gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
-obj <- "marja"
-dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
-## GPKG loomine
-ruut::gpkg_sellest_alustame_gpkg_loomist(pk = x, obj = obj, gpkg_home = gpkg_home)
+obj <- "pk_marja"
+conf$schema <- obj
+## postgisi loomine
+ruut::pk_sellest_alustame_db_loomist(pk = x, obj = obj)
 # Layers list
-sf::st_layers(dsn = dsn)
-## GPKG ruudustike lisamine
-ruut::gpkg_piirkonnale_ruudustike_lisamine(obj = obj, gpkg_home = gpkg_home)
-## GPKG polügoonide lisamine
-ruut::gpkg_piirkonnale_polygoonide_lisamine(obj = obj, gpkg_home = gpkg_home)
-ruut::gpkg_teisendame_polygoone(obj = obj, gpkg_home = gpkg_home)
-## GPKG joonte lisamine
-ruut::gpkg_piirkonnale_joonte_lisamine(obj = obj, gpkg_home = gpkg_home)
-ruut::gpkg_teisendame_jooni(obj = obj, gpkg_home = gpkg_home)
-# GPKG punktide lisamine
-ruut::gpkg_piirkonnale_punktide_lisamine(obj = obj, gpkg_home = gpkg_home)
-ruut::gpkg_teisendame_punkte(obj = obj, gpkg_home = gpkg_home)
+ruut::db_schema_tablenames(conf = conf)
+## ruudustike lisamine
+ruut::pk_lisame_ruudustikud(obj = obj)
+## polügoonide lisamine ja teisendamine
+ruut::pk_lisame_polygoonid(obj = obj)
+ruut::pk_teisendame_polygoone(obj = obj)
+## joonte lisamine ja teisendamine
+ruut::pk_lisame_jooned(obj = obj)
+ruut::pk_teisendame_jooni(obj = obj)
+# punktide lisamine ja teisendamine
+ruut::pk_lisame_punktid(obj = obj)
+ruut::pk_teisendame_punkte(obj = obj)
+
 
+
+gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
+dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
 # Layers list
 sf::st_layers(dsn = dsn)
 

+ 0 - 19
00_piirkonna_uute_geomeetriate_loomine.R

@@ -1,19 +0,0 @@
-#' Uute geomeetriliste joonte genereerimine ja salvestamine andmebaasi.
-#'
-
-source("01_funktsioonid.R")
-
-## 2. Ortofotode allalaadimine
-# kaardiruutude nimekiri
-epk10t <- pk_epk10t(obj = objektid[i])
-epk10t_nr <- epk10t$nr
-j <- 2
-pattern <- sprintf("%s.tif", epk10t_nr[j])
-# pattern <- "62084.tif"
-ls <- list.files(path = "~/ortofotod/", pattern = pattern)
-if (length(ls) == 0) {
-  estmap::maaamet_ortofotod(epk10t = epk10t_nr[j])
-}
-
-
-## 6. Piirkonna piirikastide maatriksite loomine

+ 93 - 0
01_ajutine.R

@@ -0,0 +1,93 @@
+source("functions/delete_existing_variables.R")
+source("functions/omavalitsused_nimekiri.R")
+source("functions/spatial_indeksite_lisamine.R")
+
+library(dplyr)
+# library(qgisprocess)
+library(sf)
+library(ruut)
+
+start.time <- Sys.time()
+
+# Plot'i marginite määramine.
+par(oma = c(0, 0, 0, 0)) # outer margin
+par(mar = c(0, 0, 0, 0) + 0.0)
+
+# Baaskonfiguratsiooni lugemine.
+conf <- ruut::get_config()
+
+#' Omavalitsused
+onimi <- omavalitsused_nimekiri()
+#' Valime omavalitsuse
+i <- 1 # Ruhnu vald
+# i <- 5 # Hiiumaa vald
+pk_nimi <- onimi[i]
+#' Omavalitsuse piir.
+conn <- ruut::db_connect()
+q <- sprintf("SELECT geom
+FROM maaamet.omavalitsus
+WHERE onimi ='%s';",
+             pk_nimi)
+cat(sprintf("\n-----------------\n%s\n\n", q))
+x <- sf::st_read(conn, query = q)
+sf::st_crs(x) <- 3301
+x
+# sf::st_geometry(x) %>% graphics::plot()
+
+obj <- paste0("pk_", tolower(strsplit(pk_nimi, split = " ")[[1]][1]))
+conf$schema <- obj
+# ruut::db_create_new_schema(conf = conf)
+## --------------------------------------
+
+## postgisi loomine
+ruut::pk_sellest_alustame_db_loomist(pk = x, obj = obj)
+## spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+# Layers list
+ruut::db_schema_tablenames(conf = conf)
+## ruudustike lisamine
+ruut::pk_lisame_ruudustikud(obj = obj)
+## spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+
+## polügoonide lisamine
+ruut::pk_lisame_polygoonid(obj = obj)
+# joonte lisamine
+ruut::pk_lisame_jooned(obj = obj)
+# punktide lisamine
+ruut::pk_lisame_punktid(obj = obj)
+# spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+
+## polügoonide teisendamine
+ruut::pk_teisendame_polygoone(obj = obj)
+## joonte teisendamine
+ruut::pk_teisendame_jooni(obj = obj)
+# punktide teisendamine
+ruut::pk_teisendame_punkte(obj = obj)
+# spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+
+## liiklussageduse kihtide eraldamine
+ruut::pk_teisendame_liiklussagedusi(obj = obj)
+
+##
+# tabels_list <- ruut::db_schema_tablenames(conf = conf)
+# tabels_list[grepl("^data_p_", tabels_list)]
+# tabels_list[grepl("^grid_p_", tabels_list)]
+
+# rahvastikuarvude lisamine
+ruut::pk_lisame_rahvaarvud(obj = obj)
+
+# Raster tabelid raster T/F tabeliteks.
+ruut::pk_tif_to_true(obj = obj)
+
+## GPKG failide nimekiri
+# gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
+# dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
+# # Layers list
+# sf::st_layers(dsn = dsn)
+
+end.time <- Sys.time()
+time.taken <- end.time - start.time
+time.taken

+ 90 - 0
01_hiiumaa_piir.R

@@ -0,0 +1,90 @@
+source("functions/delete_existing_variables.R")
+source("functions/omavalitsused_nimekiri.R")
+source("functions/spatial_indeksite_lisamine.R")
+
+library(dplyr)
+# library(qgisprocess)
+library(sf)
+library(ruut)
+
+# Plot'i marginite määramine.
+par(oma = c(0, 0, 0, 0)) # outer margin
+par(mar = c(0, 0, 0, 0) + 0.0)
+
+# Baaskonfiguratsiooni lugemine.
+conf <- ruut::get_config()
+
+#' Omavalitsused
+onimi <- omavalitsused_nimekiri()
+#' Valime omavalitsuse
+i <- 5 # Hiiumaa vald
+pk_nimi <- onimi[i]
+#' Omavalitsuse piir.
+conn <- ruut::db_connect()
+q <- sprintf("SELECT geom
+FROM maaamet.omavalitsus
+WHERE onimi ='%s';", pk_nimi)
+cat(sprintf("\n-----------------\n%s\n\n", q))
+x <- sf::st_read(conn, query = q)
+sf::st_crs(x) <- 3301
+x
+# sf::st_geometry(x) %>% graphics::plot()
+
+obj <- paste0("pk_",tolower(strsplit(pk_nimi, split = " ")[[1]][1]))
+conf$schema <- obj
+# ruut::db_create_new_schema(conf = conf)
+## --------------------------------------
+
+## postgisi loomine
+ruut::pk_sellest_alustame_db_loomist(pk = x, obj = obj)
+## spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+# Layers list
+ruut::db_schema_tablenames(conf = conf)
+## ruudustike lisamine
+ruut::pk_lisame_ruudustikud(obj = obj)
+## spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+
+## polügoonide lisamine
+ruut::pk_lisame_polygoonid(obj = obj)
+## spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+## polügoonide teisendamine
+ruut::pk_teisendame_polygoone(obj = obj)
+
+## joonte lisamine
+ruut::pk_lisame_jooned(obj = obj)
+# spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+## joonte teisendamine
+ruut::pk_teisendame_jooni(obj = obj)
+## liiklussageduse kihtide eraldamine
+ruut::pk_teisendame_liiklussagedusi(obj = obj)
+
+# punktide lisamine
+ruut::pk_lisame_punktid(obj = obj)
+# spatial indeksite lisamine
+lisa_spatial_indeksid(schema = obj)
+# punktide teisendamine
+ruut::pk_teisendame_punkte(obj = obj)
+
+
+# ## liiklussageduse kihtide eraldamine
+ruut::pk_teisendame_liiklussagedusi(obj = obj)
+
+# rahvastikuarvude lisamine
+ruut::pk_lisame_rahvaarvud(obj = obj)
+
+
+##
+tabels_list <- ruut::db_schema_tablenames(conf = conf)
+# tabels_list[grepl("^data_p_", tabels_list)]
+# tabels_list[grepl("^grid_p_", tabels_list)]
+
+
+## GPKG failide nimekiri
+# gpkg_home <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa"
+# dsn <- sprintf("%s/%s.gpkg", gpkg_home, obj)
+# # Layers list
+# sf::st_layers(dsn = dsn)

+ 0 - 5
02_marja_rastri_algoritm.R

@@ -1,5 +0,0 @@
-## Raster 0-1ni
-# Processing algorithm…
-# Algorithm 'Rasterize (vector to raster)' starting…
-# Input parameters:
-#   { 'BURN' : 255, 'DATA_TYPE' : 5, 'EXTENT' : '658200.000000000,659700.000000000,6474700.000000000,6476100.000000000 [EPSG:3301]', 'EXTRA' : '', 'FIELD' : 'osa suurus', 'HEIGHT' : 1, 'INIT' : None, 'INPUT' : 'memory://MultiPolygon?crs=EPSG:3301&field=fid:long(0,0)&field=id:long(0,0)&field=left:double(0,0)&field=top:double(0,0)&field=right:double(0,0)&field=bottom:double(0,0)&field=nullid:double(0,0)&field=osa:integer(0,0)&field=xxxx:integer(0,0)&field=fid_2:long(0,0)&field=id_2:long(0,0)&field=left_2:double(0,0)&field=top_2:double(0,0)&field=right_2:double(0,0)&field=bottom_2:double(0,0)&field=nullid_2:double(0,0)&field=osa_2:integer(0,0)&field=xxxx_2:integer(0,0)&field=fid_2_2:long(0,0)&field=id_2_2:long(0,0)&field=left_2_2:double(0,0)&field=top_2_2:double(0,0)&field=right_2_2:double(0,0)&field=bottom_2_2:double(0,0)&field=nullid_2_2:double(0,0)&field=osa_2_2:integer(0,0)&field=xxxx_2_2:integer(0,0)&field=fid_2_2_2:long(0,0)&field=pindala:integer(10,0)&uid={e5cac47a-5591-45b8-8b29-b18a8d3030ff}', 'INVERT' : False, 'NODATA' : 0, 'OPTIONS' : '', 'OUTPUT' : 'TEMPORARY_OUTPUT', 'UNITS' : 1, 'WIDTH' : 1 }

+ 14 - 0
functions/omavalitsused_nimekiri.R

@@ -0,0 +1,14 @@
+#'
+#' Omavalitsuste (valdade) nimekiri
+#'
+
+omavalitsused_nimekiri <- function() {
+  conn <- ruut::db_connect()
+  q <- sprintf("SELECT *
+FROM %s",  "maaamet.omavalitsus")
+  cat(sprintf("\n-----------------\n%s\n\n", q))
+  x <- DBI::dbGetQuery(conn, q)[,"onimi"]
+  DBI::dbDisconnect(conn)
+  x
+}
+# onimi <- omavalitsused_nimekiri()

+ 63 - 0
functions/spatial_indeksite_lisamine.R

@@ -0,0 +1,63 @@
+# ruut::db_schema_tablenames()
+# ## Schemade nimekiri
+# ruut::db_all_schemas()
+# schema = "pk_hiiumaa"
+# tabel = tabels_list[139]
+# tabels_list = tabels_list[-3]
+
+
+## Spatial indeksite lisamine
+lisa_spatial_indeksid <- function(schema = schema) {
+  conf <- ruut::get_config()
+  conf$schema <- schema
+  tabels_list <- ruut::db_schema_tablenames(conf = conf)
+  conn <- ruut::db_connect()
+  for (tabel in tabels_list) {
+    print(tabel)
+    # q <- sprintf("SELECT * FROM %s.%s LIMIT 1;", schema, tabel)
+    # cat(sprintf("\n-----------------\n%s\n\n", q))
+    # DBI::dbGetQuery(conn, q)
+    ## ---------- Vacuum -----------
+    q <-
+      sprintf("VACUUM (FULL) \"%s\".\"%s\";", schema, tabel)
+    cat(sprintf("\n-----------------\n%s\n\n", q))
+    DBI::dbSendQuery(conn, q)
+    ## ---------- Drop spatial index -----------
+    q <-
+      sprintf("drop index if exists \"%s\".\"%s_geom_idx\";",
+              schema,
+              tabel)
+    cat(sprintf("\n-----------------\n%s\n\n", q))
+    DBI::dbSendQuery(conn, q)
+    ## ---------- Add spatial index -----------
+    # If geom column exists
+    q <- sprintf(
+      "SELECT EXISTS (SELECT 1
+                   FROM information_schema.columns
+                   WHERE table_schema='%s' AND table_name='%s' AND column_name='geom');",
+      schema,
+      tabel
+    )
+    cat(sprintf("\n-----------------\n%s\n\n", q))
+    res <- DBI::dbGetQuery(conn, q)[1,1]
+    if (res) {
+      q <-
+        sprintf(
+          "create index \"%s_geom_idx\" on \"%s\".\"%s\" using GIST (geom);",
+          tabel,
+          schema,
+          tabel
+        )
+      cat(sprintf("\n-----------------\n%s\n\n", q))
+      DBI::dbSendQuery(conn, q)
+    }
+  }
+  DBI::dbDisconnect(conn)
+}
+# lisa_spatial_indeksid(schema = "eesti")
+# lisa_spatial_indeksid(schema = "teeregister_wfs")
+# lisa_spatial_indeksid(schema = "maaamet")
+# lisa_spatial_indeksid(schema = "osm_shp")
+# lisa_spatial_indeksid(schema = "gtfs")
+#
+# lisa_spatial_indeksid(schema = "pk_hiiumaa")