Forráskód Böngészése

Pärast pikka pausi.

Ardo Kubjas 4 éve
szülő
commit
87f883bc67
5 módosított fájl, 74 hozzáadás és 67 törlés
  1. 4 4
      R/LOEMIND.R
  2. 8 0
      R/minu_teed_graaf.R
  3. 58 44
      R/minu_teed_loomine.R
  4. 3 5
      man/minu_teed_loomine.Rd
  5. 1 14
      man/minu_teed_riigiteed.Rd

+ 4 - 4
R/LOEMIND.R

@@ -1,6 +1,6 @@
 #' LOE MIND
 #'
-#' Siia olen kokku kogunud teadmised 'qgis_process' käsu juurde, mida ei tohi unustada ja mille uuesti leidmine võtaks liiga palju aega.
+#' Siia olen kokku kogunud teadmised 'qgis_process' k\u00e04su juurde, mida ei tohi unustada ja mille uuesti leidmine võtaks liiga palju aega.
 #' @return LOEMIND.
 #' @export
 #' @examples
@@ -10,7 +10,7 @@
 #'
 #' }
 LOEMIND <- function() {
-  cat("\n1. Pluginate nimekiri, mida saab käsuliinilt käivitada.\n")
+  cat("\n1. Pluginate nimekiri, mida saab k\u00e04suliinilt k\u00e04ivitada.\n")
   cmd <- "qgis_process plugins"
   cat(sprintf("    Command: %s\n", cmd))
   system(cmd)
@@ -28,9 +28,9 @@ LOEMIND <- function() {
   cat(sprintf("    Command: %s\n", cmd))
   system(cmd)
 
-  cat(sprintf("\n4. !!!!!!!!!!!! Juhul kui plugin on instaleeritud, kuid käsk qgis_process run...' annab teate, et algoritm ei ole leitav ja samuti ei ole plugin pluginate nimekirjas ega algoritma algorimide nimekirjas, siis tuleb lisatud plugina kataloogis olevasse faili metadata.txt (https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#plugin-metadata-table + otsing \"qgis_process is not showing algorithm providers installed via a python plugin\") lisada järgmine rida:\n\n          hasProcessingProvider=yes\n\n!!!!!!!!!!!!\n"))
+  cat(sprintf("\n4. !!!!!!!!!!!! Juhul kui plugin on instaleeritud, kuid k\u00e04sk qgis_process run...' annab teate, et algoritm ei ole leitav ja samuti ei ole plugin pluginate nimekirjas ega algoritma algorimide nimekirjas, siis tuleb lisatud plugina kataloogis olevasse faili metadata.txt (https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#plugin-metadata-table + otsing \"qgis_process is not showing algorithm providers installed via a python plugin\") lisada j\u00e04rgmine rida:\n\n          hasProcessingProvider=yes\n\n!!!!!!!!!!!!\n"))
 
-  cat("\n5. Käsu 'qgis_process' help.\n")
+  cat("\n5. K\u00e04su 'qgis_process' help.\n")
   cmd <- "qgis_process"
   cat(sprintf("    Command: %s\n", cmd))
   system(cmd)

+ 8 - 0
R/minu_teed_graaf.R

@@ -57,6 +57,14 @@ minu_teed_graaf <- function(conf = NULL) {
   system(cmd)
   cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
 
+  ## ------------------ 1.2 Copy temp gpkg file to postgis ---------------------
+  conf$schema <- "minu_teed"
+  conf$table <- "teedevork"
+  PG <- ruut::construct_ogr2ogr_PG_connect_str(conf = conf)
+  cmd <- sprintf("ogr2ogr -progress --config PG_USE_COPY YES -f PostgreSQL %s -lco DIM=2 %s %s -overwrite -nlt %s -lco GEOMETRY_NAME=geom -lco FID=id -nln %s.%s -nlt PROMOTE_TO_MULTI", PG, vars$tmp_gpkg_file, vars$layer_2, "LINESTRING", conf$schema, conf$table)
+  system(cmd)
+  cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", conf$table))
+
   ## ----------------------- 1.3 Graafi genereerimine  -----------------------------
   # ruut::qgis_algorithm_search_by_word("graph")
   algorithm <- "Networks:build_graph"

+ 58 - 44
R/minu_teed_loomine.R

@@ -19,52 +19,27 @@
 #' }
 minu_teed_loomine <- function(conf = NULL) {
   ## ------------- muutujad ja teisendused ---------------
+  # source("R/ajutised_muutujad.R")
   vars <- ajutised_muutujad(conf = conf)
   conf <- vars$conf
 
-  conf$schema <- "minu_teed"
-  conf$table <- "zzz"
-  output <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geom")
-  cat(paste(paste0('"', ruut::db_table_colnames(conf = conf)$column_name, '"'), collapse = ","))
-
-
-  ## --------------------- 1.2 CSV tabeli import -------------------------------
-  # ruut::qgis_algorithm_search_by_word("csvtools")
-  algorithm <- "csvtools:loadcsvfile"
-  # ruut::qgis_show_help(algorithm = algorithm)
-  input <- vars$tmp_gpkg_file_input_1
-  output <- vars$tmp_gpkg_file_output_2
-  cmd <- sprintf("qgis_process run %s --FIELD_NAME='rahvaarv' --FIELD_TYPE=1 --FIELD_LENGTH=0 --FIELD_PRECISION=0 --GLOBAL=\"\" --FORMULA='if ( \"VAARTUS\" >= 1000000, 3, \"VAARTUS\")' --INPUT='%s' --OUTPUT='%s' ", algorithm, input, output) # Ma ei tea miks nii töötab, aga muud moodi ei saanud ühe teisendusega tööle. Veider.
-  system(cmd)
-  cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
-
-
-
-  # Processing algorithm…
-  # Algorithm 'Create vector layer from CSV file' starting…
-  # Input parameters:
-  #   { 'CRS' : None, 'DECIMAL_POINT' : 0, 'DELIMITER' : 1, 'GEOMETRY_DATA' : 2, 'INPUT' : '/data/rahvaarv_ruutudes/GRID1000_MK12/Tabel_1_rahvaarv_GRD_1000_REL_2011.csv', 'OUTPUT' : 'TEMPORARY_OUTPUT', 'QUOTE_CHAR' : '\"', 'USE_HEADER' : True, 'WKT_FIELD' : '', 'X_FIELD' : '', 'Y_FIELD' : '' }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+  # conf$schema <- "minu_teed"
+  # conf$table <- "zzz"
+  # output <- ruut::construct_to_gpkg_output_postgres_str(conf = conf, geometry_field = "geom")
+  # conf$schema <- "eesti"
+  # conf$table <- "e_501_tee_j"
+  # cat(paste(paste0('"', ruut::db_table_colnames(conf = conf)$column_name, '"'), collapse = ","))
 
-  ## =================== 3. 'eesti' =======================
 
+  ## -------- 1.1 Kontrollime andmebaasis vajalike tabelite olemasolu ----------
+  conf$schema <- "minu_teed"
+  tbl_names <- ruut::db_schema_tablenames(conf = conf)
+  if (!all(c("teedevork_riigiteed_osadena", "eesti", "teedevork") %in% tbl_names)) {
+    cat("\n------------------\nPuuduvad vajalikud andmebaasitabelid.\n")
+    return(NULL)
+  }
 
-  ## ------------------ Teedevõrgu polügoniseerimine ------------------
-  ## 4.1 Teisendame eesti polügooni joonteks.
+  ## -------------------- 1.1 Loeme eesti kontuurjoone -------------------------
   # ruut::qgis_algorithm_search_by_word("lines")
   algorithm <- "native:polygonstolines"
   # ruut::qgis_show_help(algorithm = algorithm)
@@ -78,20 +53,26 @@ minu_teed_loomine <- function(conf = NULL) {
   str <- sprintf("{ 'INPUT' : '%s', 'OUTPUT' : '%s' }", input, output)
   cmd <- ruut::construct_qgis_output_result_to_better_format(str = str, algorithm = algorithm)
   system(cmd)
+  cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
+
+  ## ------------------------- 1.2 Riigi teed osadena ---------------------------
   ## 4.2 Eemaldame riigiteedest rambid.
   algorithm <- "native:extractbyattribute"
   # ruut::qgis_show_help(algorithm = algorithm)
   conf$schema <- "minu_teed"
-  conf$table <- "teedevork_riigiteed"
+  conf$table <- "teedevork_riigiteed_osadena"
   input <- ruut::construct_to_gpkg_output_postgres_str(
     conf = conf, geometry_type = "MultiLineString", srid = 3301,
-    checkPrimaryKeyUnicity = TRUE, key = "id_0", geometry_field = "geom"
+    checkPrimaryKeyUnicity = TRUE, key = "id", geometry_field = "geom"
   )
   output <- vars$tmp_gpkg_file_output_2
   str <- sprintf("{ 'FIELD' : 'tyyp', 'INPUT' : '%s', 'OPERATOR' : 5, 'OUTPUT' : '%s', 'VALUE' : '30' }", input, output)
   cmd <- ruut::construct_qgis_output_result_to_better_format(str = str, algorithm = algorithm)
   system(cmd)
   cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
+
+
+  ## ------------- 1.3 Riigiteede ja eesti kontuuri ühendamine -----------------
   ## 4.3 Enne polügoniseerimist ühendame eesti kontuuri ja teedevõrgu üheks.
   # ruut::qgis_algorithm_search_by_word("merge")
   algorithm <- "native:mergevectorlayers"
@@ -105,15 +86,48 @@ minu_teed_loomine <- function(conf = NULL) {
   )
   system(cmd)
   cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
+
+  ## -------------------- 1.4 Teeme veergude valiku ----------------------------
+  # cat(paste(paste0('--FIELDS=\'', ruut::db_table_colnames(conf = conf)$column_name, '\''), collapse = " "))
+  # cat(paste(paste0('--COLUMN=\'', ruut::db_table_colnames(conf = conf)$column_name, '\''), collapse = " "))
+  # ruut::qgis_algorithm_search_by_word("retain")
+  # algorithm <- "native:deletecolumn"
+  algorithm <- "native:retainfields"
+  # ruut::qgis_show_help(algorithm = algorithm)
+  input <- vars$tmp_gpkg_file_input_3
+  output <- vars$tmp_gpkg_file_output_4
+  cmd <- sprintf("qgis_process run %s --FIELDS='fid' --INPUT='%s' --OUTPUT='%s' ", algorithm, input, output)
+  system(cmd)
+  cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", output))
+
+  ## ----------------------- 1.5 Polügoniseerimine -----------------------------
   ## 4.4 Polügoniseerime saadud riigiteedevõrgu. Tekib teedega piiratud polügoonid.
   # ruut::qgis_algorithm_search_by_word("Polygonize")
   algorithm <- "native:polygonize"
   # ruut::qgis_show_help(algorithm = algorithm)
-  input <- vars$tmp_gpkg_file_input_3
-  output <- vars$tmp_gpkg_file_output_4
+  input <- vars$tmp_gpkg_file_input_4
+  output <- vars$tmp_gpkg_file_output_5
   str <- sprintf("{ 'INPUT' : '%s', 'KEEP_FIELDS' : False, 'OUTPUT' : '%s' }", input, output)
   cmd <- ruut::construct_qgis_output_result_to_better_format(str = str, algorithm = algorithm)
   system(cmd)
+
+  ## ------------------ 1.4 Copy temp gpkg file to postgis ---------------------
+  conf$schema <- "minu_teed"
+  conf$table <- "teedevork_riigiteed_a"
+  PG <- ruut::construct_ogr2ogr_PG_connect_str(conf = conf)
+  cmd <- sprintf("ogr2ogr -progress --config PG_USE_COPY YES -f PostgreSQL %s -lco DIM=2 %s %s -overwrite -nlt %s -lco GEOMETRY_NAME=geom -lco FID=id -nln %s.%s -nlt PROMOTE_TO_MULTI", PG, vars$tmp_gpkg_file, vars$layer_5, "POLYGON", conf$schema, conf$table)
+  system(cmd)
+  cat(sprintf("\n-------------\nLoodi andmebaas '%s'.\n", conf$table))
+
+
+
+
+
+
+
+
+  ## ------------------ Teedevõrgu polügoniseerimine ------------------
+
   ## 4.5 Copy temp gpkg file to postgis.
   conf$schema <- "minu_teed"
   conf$table <- "teedevork_riigiteed_a"

+ 3 - 5
man/minu_teed_loomine.Rd

@@ -2,7 +2,7 @@
 % Please edit documentation in R/minu_teed_loomine.R
 \name{minu_teed_loomine}
 \alias{minu_teed_loomine}
-\title{Teeregistri WFS ja maaameti oma teeandmete 'minu_teed' loomine}
+\title{Teeregistri WFS ja maaameti andmete oma teeandmete 'minu_teed' loomine}
 \usage{
 minu_teed_loomine(conf = NULL)
 }
@@ -17,6 +17,7 @@ No output.
 \item Põhi-, kõrval ja tugimaanteedest ning rambid moodustatakse uus andmebaas 'riigiteedevork'.
 \item Ilma teenumbrita kohalike teede andmebaasi 'numbrita_kohalik_tee' loomine.
 \item Eesti kaart ainult suurte saartega (üle 10km2).
+\item Polügoniseerime riigiteedevõrgu.
 Eesti avaandmete \url{https://avaandmed.eesti.ee/datasets?emsId=35} teabevärava kaudu teederegistri WFS (Web Feature Service) andmete eksportimine postgisandmebaasi. WFS andmestiku kirjeldus: \url{https://teeregister-api.mnt.ee/teenus/wfs?request=GetCapabilities&service=WFS}
 }
 }
@@ -30,7 +31,4 @@ minu_teed_loomine(conf = conf)
 \seealso{
 \code{\link[ruut:get_config]{ruut::get_config()}}, \code{\link[ruut:copy_shp_to_db]{ruut::copy_shp_to_db()}}, \code{\link[=teeregister_wfs]{teeregister_wfs()}}
 }
-\keyword{OSM}
-\keyword{WFS,}
-\keyword{maps,}
-\keyword{postgis,}
+\keyword{postgis}

+ 1 - 14
man/minu_teed_riigiteed.Rd

@@ -1,41 +1,28 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/minu_teed_riigiteed.R, R/minu_teed_teedevork.R
+% Please edit documentation in R/minu_teed_riigiteed.R
 \name{minu_teed_riigiteed}
 \alias{minu_teed_riigiteed}
 \title{Riigiteedevõrgu loomine}
 \usage{
-minu_teed_riigiteed(conf = NULL)
-
 minu_teed_riigiteed(conf = NULL)
 }
 \arguments{
 \item{conf}{A list() of configuration variables. Default values \code{\link[ruut]{get_config}}.}
 }
 \value{
-No output.
-
 No output.
 }
 \description{
-ETAK (Eesti topograafia andmekogu) \url{https://geoportaal.maaamet.ee/est/Ruumiandmed/Eesti-topograafia-andmekogu/Laadi-ETAK-andmed-alla-p609.html} andmete põhjal
-
 ETAK (Eesti topograafia andmekogu) \url{https://geoportaal.maaamet.ee/est/Ruumiandmed/Eesti-topograafia-andmekogu/Laadi-ETAK-andmed-alla-p609.html} andmete põhjal
 }
 \examples{
 \dontrun{
 
-conf <- ruut::get_config()
-minu_teed_riigiteed(conf = conf)
-}
-\dontrun{
-
 conf <- ruut::get_config()
 minu_teed_riigiteed(conf = conf)
 }
 }
 \seealso{
-\code{\link[ruut:get_config]{ruut::get_config()}}, \code{\link[ruut:copy_shp_to_db]{ruut::copy_shp_to_db()}}, \code{\link[=minu_teed_riigiteed]{minu_teed_riigiteed()}}, \code{\link[=minu_teed_muud_teed]{minu_teed_muud_teed()}}, \code{\link[=minu_teed_eesti]{minu_teed_eesti()}}
-
 \code{\link[ruut:get_config]{ruut::get_config()}}, \code{\link[ruut:copy_shp_to_db]{ruut::copy_shp_to_db()}}, \code{\link[=minu_teed_riigiteed]{minu_teed_riigiteed()}}, \code{\link[=minu_teed_muud_teed]{minu_teed_muud_teed()}}, \code{\link[=minu_teed_eesti]{minu_teed_eesti()}}
 }
 \keyword{postgis}