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 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.
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.
Î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.
Deschideți editorul și începeți să scrieți.
Va trebui să specificați câțiva parametri înaintea editării scriptului:
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.
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.
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
Î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.
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]])
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:
Î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:
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.
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:
Note
Puteți deschide, copia și salva imaginea, printr-un clic dreapta pe diagramă
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.
Ca și mai înainte, avem de stabilit câțiva parametri la începutul script-ului:
specify the the name of the group in which you want to put your script, for example Point pattern analysis:
##Point pattern analysis=group
stabiliți stratul care va conține punctele aleatoare:
##Layer=vector
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
specificați faptul că rezultatul este un strat vectorial:
##Output= output vector
Acum puteți adăuga corpul funcției:
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
Scrieți linia care conține parametrii de ieșire:
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
Scriptul final ar trebui să arate astfel:
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:
apoi faceți clic pe rulare.
Punctele rezultate vor fi afișate în canevasul hărții
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]]))