|
|
@@ -1,74 +0,0 @@
|
|
|
-# Võrgustike genereerimine ja salvestamine andmebaasi
|
|
|
-#' Funktsioon gnereerib kogu Eestit katva ruudustike piirikasti
|
|
|
-#' 'maaamet.epk200t_bb' sisse ruutvõrgustiku ruudu suurusega 100x100 m.
|
|
|
-#' Võrgustik salvestatakse andmebaasi nime 'epk02t_grid' alla.
|
|
|
-#' !!!!!!! Võrgustiku genereerimine ja salvestamine andmebaasi
|
|
|
-#' võtab aega üle 12 tunni. Salvestatavate andmete maht ca 5 GB.
|
|
|
-
|
|
|
-create_epk02t_grid <- function() {
|
|
|
- # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid")
|
|
|
- algorithm <- "grass7:v.mkgrid"
|
|
|
- # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
|
|
|
- if (!dir.exists("tmp/epk02t_grid")) dir.create("tmp/epk02t_grid", recursive = T)
|
|
|
- conf <- ruut::get_config()
|
|
|
- conf$table <- "epk02t_grid"
|
|
|
- conf$schema <- "maaamet"
|
|
|
- ## Loe instaleeritud tabelid andmebaasis
|
|
|
- installed_tables <- ruut::db_schema_tablenames(conf = conf)
|
|
|
- if (!conf$table %in% installed_tables) {
|
|
|
- # 1:40
|
|
|
- for (i in 1:40) {
|
|
|
- coordinates <- sprintf("300000,6%s0000 [EPSG:3301]", (29 + i))
|
|
|
- map <- sprintf("tmp/epk02t_grid/%s.gpkg", i)
|
|
|
- cat(sprintf("\n%s/40 1. coordinates: %s, 2. map: %s", i, coordinates, map))
|
|
|
- # ------------------
|
|
|
- result <- qgisprocess::qgis_run_algorithm(
|
|
|
- algorithm = algorithm,
|
|
|
- "-h" = 0,
|
|
|
- "-p" = 0,
|
|
|
- GRASS_OUTPUT_TYPE_PARAMETER = 3,
|
|
|
- GRASS_REGION_PARAMETER = "300000,800000,6320000,6700000 [EPSG:3301]",
|
|
|
- GRASS_VECTOR_DSCO = "",
|
|
|
- GRASS_VECTOR_EXPORT_NOCAT = 0,
|
|
|
- GRASS_VECTOR_LCO = "",
|
|
|
- angle = 0,
|
|
|
- box = "100,100",
|
|
|
- breaks = 0,
|
|
|
- coordinates = coordinates,
|
|
|
- grid = "100,5000", # "4000,5000"
|
|
|
- map = map,
|
|
|
- position = 0,
|
|
|
- .quiet = TRUE
|
|
|
- )
|
|
|
- # result
|
|
|
- ## Muudame rea numbreid, kuna tsükliga lähevad need kaduma.
|
|
|
- layers <- rgdal::ogrListLayers(map)
|
|
|
- x <- rgdal::readOGR(map, layers[1])
|
|
|
- x$row <- x$row + (i - 1) * 100
|
|
|
- x$cat <- rev(x$cat + (i - 1) * 100)
|
|
|
- rgdal::writeOGR(obj = x, dsn = map, layer = layers[1], driver = "GPKG", overwrite_layer = T)
|
|
|
- ## Lisame kihi andmebaasi
|
|
|
- cmd <- sprintf(
|
|
|
- paste0(
|
|
|
- "ogr2ogr -append --config PG_USE_COPY YES -f PostgreSQL ",
|
|
|
- "PG:\" dbname='%s' host=%s port=%d user='%s' password='%s' ",
|
|
|
- "sslmode=%s active_schema=%s \" -lco DIM=2 \"%s\" -nlt GEOMETRY ",
|
|
|
- "-lco GEOMETRY_NAME=geometry -lco FID=%s -nln %s.%s ",
|
|
|
- "-s_srs %s -t_srs %s -nlt %s"
|
|
|
- ),
|
|
|
- conf$dbname, conf$host, conf$port, conf$user, conf$password, conf$sslmode,
|
|
|
- conf$schema, map, "id", conf$schema, conf$table, "EPSG:3301", "EPSG:4326",
|
|
|
- "POLYGON"
|
|
|
- )
|
|
|
- cat(sprintf("\n-----------------\n%s\n", cmd))
|
|
|
- system(cmd)
|
|
|
- }
|
|
|
- cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm))
|
|
|
- # result
|
|
|
- } else {
|
|
|
- cat(sprintf(
|
|
|
- "\n-----------------\nUue andmebaasi '%s' installimiseks pead vana enne kustutama.\n",
|
|
|
- conf$table
|
|
|
- ))
|
|
|
- }
|
|
|
-}
|