#' Funktsioonid #' # ----------------------------------------------------------------------- ## Funktsioon: piirkonna piir pk_piir <- function(obj) { # obj - objekti nimetus (näiteks: valga) conn <- ruut::db_connect() q <- sprintf("SELECT * FROM %s.%s_piir", conf$schema, tolower(obj)) cat(sprintf("\n-----------------\n%s\n\n", q)) sf::st_read(conn, query = q) } # pk_piir(obj = "valga") # ----------------------------------------------------------------------- ## Funktsioon: piirkonna piiri katvate epk10t (5x5km) ruutude loomine create_pk_epk10t <- function(obj) { # obj - objekti nimetus (näiteks: valga) # ruut::qgis_algorithm_search_by_word(str = "extract") algorithm <- "native:extractbylocation" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, INPUT = 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"maaamet\".\"epk10t\" (geometry)', INTERSECT = sprintf('postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'ogc_fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"xxx_artikkel_210127\".\"%s_piir\" (geometry)', obj), OUTPUT = qgisprocess::qgis_tmp_vector(), PREDICATE = c(0, 1), .quiet = TRUE ) result } # create_pk_epk10t(obj = objektid[i]) ## Funktsioon: piirkonna piiri katvate epk10t (5x5km) ruutude lugemine pk_epk10t <- function(obj) { # obj - objekti nimetus (näiteks: valga) conn <- ruut::db_connect() q <- sprintf("SELECT * FROM %s.%s_epk10t", conf$schema, tolower(obj)) cat(sprintf("\n-----------------\n%s\n\n", q)) sf::st_read(conn, query = q) } # pk_epk10t(obj = "valga") # ----------------------------------------------------------------------- ## Funktsioon: epk200t (100x100km) kaardiruutudele piirikasti (boundary box) loomine create_epk200t_bb <- function() { # ruut::qgis_algorithm_search_by_word(str = "bounding") algorithm <- "qgis:minimumboundinggeometry" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, FIELD = "", INPUT = 'postgres://dbname=\'data\' host=localhost port=6432 user=\'osm\' sslmode=disable authcfg=0i30k14 key=\'fid\' srid=4326 type=Polygon checkPrimaryKeyUnicity=\'1\' table=\"maaamet\".\"epk200t\" (geometry)', TYPE = 3, OUTPUT = qgisprocess::qgis_tmp_vector(), .quiet = TRUE ) # result epk200t_bb <- sf::read_sf(qgis_output(result, "OUTPUT")) sf::st_geometry(epk200t_bb) %>% plot() conf <- ruut::get_config() conf$table <- "epk200t_bb" conf$schema <- "maaamet" ruut::copy_qgis_object_to_db(x = result, conf = conf, geometry_type = "POLYGON") cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm)) # result } # --------------------------------------------------------------------- ## Grdid genereerimine. #' Funktsioonid gnereerivad kogu Eestit (s.o maaameti 100x100 km kogu Eestit katvate #' ruudstikega määratud ala). Ruutvõrgustik genereeritakse ruutudele 1x1, 5x5 ja #' 100x100 km. # 1. 100x100 km ruudustik create_epk200t_grid <- function() { # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid") algorithm <- "grass7:v.mkgrid" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, "-h" = 0, "-p" = 0, GRASS_OUTPUT_TYPE_PARAMETER = 0, GRASS_REGION_PARAMETER = "", GRASS_VECTOR_DSCO = "", GRASS_VECTOR_EXPORT_NOCAT = 0, GRASS_VECTOR_LCO = "", angle = 0, box = "100000,100000", breaks = 0, coordinates = "300000,6300000 [EPSG:3301]", grid = "4,5", map = "tmp/epk200t_grrid.gpkg", position = 0, .quiet = TRUE ) # result epk200t_grid <- sf::read_sf(qgis_output(result, "map")) sf::st_geometry(epk200t_grid) %>% plot() conf <- ruut::get_config() conf$table <- "epk200t_grid" conf$schema <- "maaamet" ruut::copy_qgis_object_to_db( x = result, conf = conf, geometry_type = "POLYGON", crs_source = "EPSG:3301" ) cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm)) # result } # 2. 5x5 km ruudustik create_epk10t_grid <- function() { # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid") algorithm <- "grass7:v.mkgrid" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, "-h" = 0, "-p" = 0, GRASS_OUTPUT_TYPE_PARAMETER = 0, GRASS_REGION_PARAMETER = "", GRASS_VECTOR_DSCO = "", GRASS_VECTOR_EXPORT_NOCAT = 0, GRASS_VECTOR_LCO = "", angle = 0, box = "5000,5000", # 5x5 km breaks = 0, coordinates = "300000,6300000 [EPSG:3301]", grid = "80,100", # ridade ja veergude arv map = "tmp/epk10t_grrid.gpkg", position = 0, .quiet = TRUE ) # result epk10t_grid <- sf::read_sf(qgis_output(result, "map")) sf::st_geometry(epk10t_grid) %>% plot() conf <- ruut::get_config() conf$table <- "epk10t_grid" conf$schema <- "maaamet" ruut::copy_qgis_object_to_db( x = result, conf = conf, geometry_type = "POLYGON", crs_source = "EPSG:3301" ) cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm)) # result } # 3. 1 x 1 km ruudustik create_epk2t_grid <- function() { # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid") algorithm <- "grass7:v.mkgrid" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, "-h" = 0, "-p" = 0, GRASS_OUTPUT_TYPE_PARAMETER = 0, GRASS_REGION_PARAMETER = "", GRASS_VECTOR_DSCO = "", GRASS_VECTOR_EXPORT_NOCAT = 0, GRASS_VECTOR_LCO = "", angle = 0, box = "1000,1000", breaks = 0, coordinates = "300000,6300000 [EPSG:3301]", grid = "400,500", map = "tmp/epk2t_grrid.gpkg", position = 0, .quiet = TRUE ) # result # epk2t_grid <- sf::read_sf(qgis_output(result, "map")) # sf::st_geometry(epk2t_grid) %>% plot() conf <- ruut::get_config() conf$table <- "epk2t_grid" conf$schema <- "maaamet" ruut::copy_qgis_object_to_db( x = result, conf = conf, geometry_type = "POLYGON", crs_source = "EPSG:3301" ) cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm)) # result } # 3. 100 x 100 m ruudustik create_epk02t_grid <- function() { # ruut::qgis_algorithm_search_by_word(str = "v.mkgrid") algorithm <- "grass7:v.mkgrid" # cat(qgisprocess::qgis_show_help(algorithm = algorithm)) result <- qgisprocess::qgis_run_algorithm( algorithm = algorithm, "-h" = 0, "-p" = 0, GRASS_OUTPUT_TYPE_PARAMETER = 0, GRASS_REGION_PARAMETER = "", GRASS_VECTOR_DSCO = "", GRASS_VECTOR_EXPORT_NOCAT = 0, GRASS_VECTOR_LCO = "", angle = 0, box = "100,100", breaks = 0, coordinates = "300000,6300000 [EPSG:3301]", grid = "4000,5000", map = "tmp/epk02t_grrid.gpkg", position = 0, .quiet = TRUE ) # result # epk02t_grid <- sf::read_sf(qgis_output(result, "map")) # sf::st_geometry(epk02t_grid) %>% plot() conf <- ruut::get_config() conf$table <- "epk02t_grid" conf$schema <- "maaamet" ruut::copy_qgis_object_to_db( x = result, conf = conf, geometry_type = "POLYGON", crs_source = "EPSG:3301" ) cat(sprintf("\n-----------------\nAlgoritm: %s valmis.\n\n", algorithm)) # result }