Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require(raster)
- require(foreign)
- require(labgeo)
- require(dplyr)
- require(tidyverse)
- require(RQGIS)
- #set QGIS directory
- qgis_env <-set_env(root ='C:/Program Files/QGIS 2.18')
- set_env()
- open_app()
- -Function and parametrs.
- #entrada = folder with all rasters in .tif
- #saida = folder witch zonal polygon will be dropped
- #bacia = polygons
- zonalTop = function(entrada, saida, bacia){
- nomesRasters = list.files(entrada, pattern="*.tif$")
- lerRasterCompl = list.files(entrada, pattern="*.tif$", full.names = TRUE)
- rasters = lapply(lerRasterCompl, raster)
- for (i in 1:length(rasters)){
- run_qgis(alg = "qgis:zonalstatistics",
- INPUT_RASTER = rasters[[i]],
- RASTER_BAND = 1,
- INPUT_VECTOR = bacia,
- GLOBAL_EXTENT = 1,
- OUTPUT_LAYER = paste(saida, tools::file_path_sans_ext(nomesRasters[[i]]),".shp", sep = ""))
- }
- nomesDbf = list.files(saida, pattern="*.dbf$")
- lerDbfCompl = list.files(saida, pattern="*.dbf$", full.names = TRUE)
- Dbfs = lapply(lerDbfCompl, read.dbf)
- for (i in 1:length(Dbfs)){
- names(Dbfs[[i]]) = paste(tools::file_path_sans_ext(nomesDbf[i]), names(Dbfs[[i]]), sep="_")
- }
- Dbfs = clean_names(do.call("cbind", Dbfs))
- drop.cols <- grep("gridcode", colnames(Dbfs))
- Dbfs = Dbfs[,-drop.cols]
- Dbfs$gridcode = bacia@data$gridcode
- Dbfs = dplyr::select(Dbfs, gridcode, everything())
- return(Dbfs)
- }
- - Runnin Function Example
- anch10k = zonalTop("E:/artigo_declividade/morfomometriatif/anchi/",
- "E:/artigo_declividade/morfomometriatif/anchi/shapes10k",
- bacia)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement