| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- #' 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
- }
|