gpkg_ja_postgis_vahelised_teisendused.R 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. library(qgisprocess)
  2. library(dplyr)
  3. conf <- ruut::get_config()
  4. gpkg_file <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/valga.gpkg"
  5. # Vaata layer'eid
  6. sf::st_layers(gpkg_file)
  7. # Vali layer
  8. layer <- "epk200t_grid"
  9. conf$table <- "aaa_1"
  10. conf$schema <- "data"
  11. ruut::copy_gpkg_to_db(gpkg = gpkg_file, layer = layer, conf = conf)
  12. # ruut::copy_gpkg_to_db(gpkg = gpkg_file, conf = conf)
  13. sf::st_layers(gpkg_file)
  14. sp <- sf::read_sf(dsn = gpkg_file, layer )
  15. plot(sp)
  16. sf::st_geometry(sp) %>% plot()
  17. # write to gpkg
  18. sf::st_write(sp, dsn = "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/xxxxx.gpkg",
  19. layer = "layerThree", driver = "gpkg", layer_options = "OVERWRITE=true")
  20. system(sprintf("ogr2ogr -f GPKG -update %s %s -nln layerThree", gpkg_file, sp))
  21. system("ogr2ogr --long-usage")
  22. result <- qgis_run_algorithm(
  23. "native:buffer",
  24. INPUT = gpkg_file,
  25. DISTANCE = .0000011,
  26. DISSOLVE = TRUE,
  27. .quiet = TRUE
  28. )
  29. sf::st_geometry( sf::read_sf(qgisprocess::qgis_output(result, 'OUTPUT'))) %>% plot()
  30. pg <- ruut::construct_ogr2ogr_PG_connect_str(conf = conf)
  31. gpkg_file <- "/data/gpkg/artiklid/artikkel_210127_valga_matsalu_lahemaa/xxxxx.gpkg"
  32. system(sprintf("ogr2ogr -f GPKG %s %s %s -nln layerOne", gpkg_file, pg, conf$table))
  33. system(sprintf("ogr2ogr -f GPKG -update %s %s %s -nln layerOne", gpkg_file, pg, conf$table))
  34. # ogr2ogr -f GPKG dst.gpkg src.shp -nln layerOne
  35. # ogr2ogr -f GPKG -update dst.gpkg src.shp -nln layerTwo
  36. #
  37. ## only two features by where clause
  38. nc_sql = st_read(system.file("shape/nc.shp", package="sf"),
  39. query = "SELECT NAME, SID74, FIPS FROM \"nc\" WHERE BIR74 > 20000")