Outdated version of the documentation. Find the latest one here.

Utilizarea script-urilor R în cadrul procesării

Module contributed by Matteo Ghetta - Dropcode

Procesarea permite editarea si executarea script-urilor R în cadrul QGIS.

Warning

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 training manual.

Note

Dacă întâmpinați probleme cu unele pachete, probabil că nu le-ați încărcat pe cele obligatorii, cum ar fi sp, rgdal si raster.

Adăugarea script-urilor

Adăugarea unui script este foarte simplă. Deschideți Setul de instrumente pentru procesare și dați click pe R ‣ Instrumente ‣ Creați un nou script R.

../../../_images/r_intro_1.png

Note

Dacă nu puteți vizualiza R în Processing, trebuie să îl activați din Processing ‣ Opțiuni ‣ Furnizori

Se va deschide o fereastră de editare a scriptului în care va trebui să specificați o serie de parametri, înainte de a putea adăuga corpul scriptului.

../../../_images/r_intro_2.png

Crearea diagramelor

În cadrul acestui tutorial vom crea o diagramă de tip boxplot pentru un câmp al unui strat vectorial.

Deschideți proiectul QGIS r_intro.qps.

Parametrii scriptului

Deschideți editorul și începeți să scrieți.

Va trebui să specificați câțiva parametri înaintea editării scriptului:

  1. numele grupului în care doriți să puneți scriptul:

    ##plots=group
    

așadar, veți găsi scriptul în grupul intitulat plots din cadrul Instrumentelor Processing.

  1. va trebui să specificați faptul că doriți să vizualizați diagrama (la fel ca în acest exemplu):

    ##showplots
    

diagrama va putea fi observată cu ajutorul comenzii Vizualizarea Rezultatelor.

  1. De asemenea, va trebui să specificați tipul de date cu care veți lucra. În acest exemplu, dorim să creăm o diagramă utilizând un câmp din baza de date atașată vectorului:

    ##Layer=vector
    

Processing recunoaște faptul că datele introduse sunt în format vectorial. Numele layer nu este important, ci faptul că parametrul introdus este de tip vector

  1. În cele din urmă, va trebui să specificați câmpul de intrare al vectorului pentru care doriți să realizați diagrama:

    ##X=Field Layer
    

Așadar, Processing recunoaște faptul că ați atribuit numele X Câmpului Stratului.

Corpul scriptului

O dată ce partea introductivă a scriptului a fost setată, puteți adăuga o funcție:

boxplot(Layer[[X]])

Remarcați faptul că boxplot este numele funcției R, care folosește un Strat pentru setul de date și pe X ca și câmp al acelui set de date.

Warning

Parametrul X este încadrat în paranteze pătrate duble [[]]

Scriptul final va trebui să arate astfel:

##Vector processing=group
##showplots
##Layer=vector
##X=Field Layer
boxplot(Layer[[X]])
../../../_images/r_intro_3.png

Salvați scriptul în calea implicită, propusă de Procesing. Numele pe care îl alegeți va fi similar cu numele script-ului pe care îl veți găsi în caseta instrumentelor Processing.

Note

Puteți salva scriptul în alte căi, dar Processing nu este în măsură să le încarce automat, așa că va trebui să încărcați toate script-urile manual

Acum, doar rulați-l, folosind butonul din partea de sus a ferestrei editorului:

../../../_images/r_intro_4.png

În caz contrar, o dată ce fereastra de editare a fost închisă, utilizați caseta de text din Processing pentru a găsi script-ul:

../../../_images/r_intro_5.png

Acum aveți posibilitatea de a completa parametrii necesari în fereastra algoritmului Processing:

  • ca și Strat alegeți-l pe cel cu puncte eșantion

  • umpleți câmpul X cu parametrul valoare

Efectuați clic pe Executare.

../../../_images/r_intro_6.png

Fereastra rezultatelor ar trebui să fie deschisă în mod automat, dacă nu, doar faceți clic pe Processing ‣ Result Viewer....

Acesta este rezultatul final pe care îl veți vedea:

../../../_images/r_intro_7.png

Note

Puteți deschide, copia și salva imaginea, printr-un clic dreapta pe diagramă

Crearea unui vector

De asemenea, cu ajutorul unui script R, puteți crea, un vector și să-l încărcați în mod automat în QGIS.

Exemplul următor a fost luat din scriptul Rețelei de eșantionare aleatoare, care poate fi descărcat din colecția online R ‣ Tools ‣ Download R scripts from the on-line collection.

The aim of this exercise is to crate a random point vector in a layer extent using the spsample function of the sp package.

Parametrii scriptului

Ca și mai înainte, avem de stabilit câțiva parametri la începutul script-ului:

  1. specify the the name of the group in which you want to put your script, for example Point pattern analysis:

    ##Point pattern analysis=group
    
  2. stabiliți stratul care va conține punctele aleatoare:

    ##Layer=vector
    
  3. stabiliți numărul de puncte care vor fi create:

    ##Size=number 10
    

Note

10 va fi valoarea automat desemnată. Puteți schimba acest număr sau puteți lăsa parametrul fără un număr implicit

  1. specificați faptul că rezultatul este un strat vectorial:

    ##Output= output vector
    

Corpul scriptului

Acum puteți adăuga corpul funcției:

  1. rulați funcția 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 type po point generation is random

  1. Scrieți linia care conține parametrii de ieșire:

    Output=SpatialPointsDataFrame(pts, as.data.frame(pts))

Scriptul final ar trebui să arate astfel:

../../../_images/r_intro_8.png

Salvați-l și rulați-l, făcând clic pe butonul de rulare.

În noul tip de fereastră scrieți parametrii potriviți:

../../../_images/r_intro_9.png

apoi faceți clic pe rulare.

Punctele rezultate vor fi afișate în canevasul hărții

../../../_images/r_intro_10.png

Sintaxa limbajului R din Processing

Luați aminte că Processing utilizează o sintaxă specială pentru a obține rezultatele în afara R:

  • > înainte de comanda dvs., ca în >lillie.test(Layer[[Field]]) denotă că rezultatul ar trebui să fie trimis la ieșirea R (Vizualizatorul de rezultate)

  • + după o plotare, pentru a suprapune plotările. De exemplu plot(Layer[[X]], Layer[[Y]]) + abline(h=mean(Layer[[X]]))