Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna
Procesarea permite editarea si executarea script-urilor R în cadrul QGIS.
Warning
R trebuie să fie instalat în computerul dvs,, iar variabila PATH trebuie să fie corect setată. Mai mult decât atât, Processing doar solicită o serie de pachete R externe, acestea nefiind instalate în mod automat. De aceea, asigurați-vă că ați instalat pachetele exterbe direct în R. Consultați, în acest sens, capitolul din manualul de instruire.
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.
Open the r_intro.qgs QGIS project under the exercise_data/processing/r_intro/ folder.
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.
Scopul acestui exercițiu este de a crea un punct vectorial aleatoriu într-o extindere a stratului, folosind funcția spsample din pachetul sp.
Ca și mai înainte, avem de stabilit câțiva parametri la începutul script-ului:
specificați numele grupului în care doriți să puneți script-ul dvs., de exemplu, Analiza modelului punctelor:
##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")
în acest fel, funcția preia extinderea Stratului, numărul de puncte este luat din parametrul Dimensiune, iar generarea punctului este aleatoare
Scrieți linia care conține parametrii de ieșire:
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
Scriptul final va trebui să arate astfel:
##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))
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]]))