Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna
Processamento lhe permite escrever e rodar linhas do código no QGIS.
Aviso
R has to be installed on your computer and the PATH has to correctly set up. Moreover Processing just calls the external R packages, it is not able to install them. So be sure to install external packages directly in R. See the related chapter in the user manual.
Nota
Si tienes un problema con “paquetes”, quizás esta relacionado con paquetes “obligatorios” que faltan y que requiere Processing como sp, rgdal y``raster``.
Agregar una linea de codigo es muy facil. Abrir la caja de herramientas de Processing y hacer click en R ‣ Tools ‣ Create new R script.
Nota
Si no puedes ver R en Processinf, tienes que activarlo en Processing ‣ Options ‣ Providers
Abre una “ventana de edicion de lineas de codigo” en el cual tienes que especificar algunos parametros antes de agregar el codigo.
En este tutorial vamos a crear una “caja de parcelas” de un campo de capas vectoreales.
Open the r_intro.qgs QGIS project under the exercise_data/processing/r_intro/ folder.
Abrir el editor y comenzar a escribir al inicio.
“Tienes” que especofocar algunso parametros “antes” del cuerpo de codigo de lineas;
el nombre del grupo en el cual quieres poner tus lineas de codigo;
##plots=group
para que puedas encontrar las lineas de codigo en las “parcelas” agrupar en la caja de herramientas de Processing.
tienes que decirle a Processing que quieres mostrar una parcela (esto solo es un ejemplo):
##showplots
de esta manera en “la visualizacion de resultados” de Processing puedes ver la parcela.
Tienes que decirle a Processing que tipo de datos esta trabajando. En este ejemplo queremos que haga una parcela de un campo parte de una capa vectorial.
##Layer=vector
Processing sabe ahora que el input es un vector. El nombre “Layer” no es importante, lo que importa es el parámetro del “vector”
Finalmente, tienes que especificar el campo del input del vector que quieres digitalizar:
##X=Field Layer
Processing sabe cuando llamas “X” la “capa de campo”
Ahora que tienes la “cabecera” de las lineas de codigo puedes agregar las funciones;
boxplot(Layer[[X]])
Note que “boxplot” es el nombre de la función de R que llama “capas” como grupos de datos y “X” como el campo de los grupos de datos.
Aviso
El parametro “”X”” esta estrito dentro de soporte de doble cuadrado [[]]
El codigo final se ve asi:
##Vector processing=group
##showplots
##Layer=vector
##X=Field Layer
boxplot(Layer[[X]])
Guarde el código por defecto con la ubicación de Processing. El nombre que eliges va a ser el mismo que el nombre de la linea de código que se encuentra el la caja de herramientas de Processing.
Nota
Puedes ver las lineas de código en otras ubicaciones, pero Processing no puede subirlos automáticamente y tienes que subir las lineas de código manualmente.
Ahora puedes correrlo usando el botón en la parte superior de la ventana de edición:
Si no, una vez que la ventana de edicion ha cerrado, use la caja de ehrramientas de Processing para encontrar tu codigo:
Ahora puedes llenar los parametros requeridos en la ventana de algoritmos de Processing:
como “Capa” eliges la “muestra de puntos” uno
llenar el campo “X” con el parametro del “Valor”
Elegir “Run”
La “Ventana de Resultados” se debe abrir automaticamente, si no, solo hacer click en Processing ‣ Result Viewer....
Este es el resultado final que vas a ver:
Nota
Puedes abrir, copiar y guardar la imagen al hacer click en la parcela
Con los códigos de R puedes crear vectores y automáticamente subirlo a QGIS.
El siguiente ejemplo se tomo del código “Cuadro de Muestras Al Azar” que se puede descargar de la coleccion en linea R ‣ Tools ‣ Download R scripts from the on-line collection.
The aim of this exercise is to create a random point vector in a layer extent using the spsample function of the sp package.
Igual que aneriormente hay que poner parametros antes del cuerpo del codigo:
specify the name of the group in which you want to put your script, for example Point pattern analysis:
##Point pattern analysis=group
poner las capas que contienen los puntos al azar:
##Layer=vector
poner los humeros de lo puntos que se van a crear:
##Size=number 10
Nota
10 será o valor padrão. Você pode mudar esse número ou deixar o parâmetro sem um número padrão
especifique que el archivo de salida es una capa de vector:
##Output= output vector
Ahora que puedes agregar el cuerpo de la funcion:
correr la funcion spsample
pts=spsample(Layer,Size,type="random")
this way the function takes the extent of the Layer, the number of points is taken from the Size parameter and the point generation is random
Escriba la linea que contiene los parametros de salida:
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
El codigo final se ve asi:
##Point pattern analysis=group
##Layer=vector
##Size=number 10
##Output= output vector
pts=spsample(Layer,Size,type="random")
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
Guarde y Ejecute, haciendo click en el botón de Ejecutar.
En la ventana nueva escriba los parámetros correctos:
haga click en ejecutar.
Puntos resultantes se desplegaran en el canvas del mapa.
Tener precaución ya que Processing usa unos sintaxis especiales para obtener resultados de R.
> antes de su comand, como >lillie.test(Layer[[Field]]) significa que el resultado se debe enviar a la salida de R (Result viewer)
+ dspues de una linea significa sobreponer. Por ejemplo``plot(Layer[[X]], Layer[[Y]]) + abline(h=mean(Layer[[X]]))``