Adăugarea instrumentelor GRASS

Modulele GRASS pot fi rulate din Instrumentele GRASS ale QGIS, în cazul în care QGIS a fost pornit dintr-o consolă GRASS, sau în cazul în care un set de hărți GRASS a fost deschis din QGIS. Modulele lucrează doar cu date GRASS.

Este ușor de modificat meniul și de adăugat noi module, pentru că atât meniul cât și modulele sunt definite în fișierele de configurare XML. Mai jos sunt descrise modurile în care se pot scrie noile module și în care se poate modifica meniul arborelui.

Configurarea modulelor

Prezentare

Opțiunile fiecărui modul, prezentate în fila _*Options_*, sunt create ținându-se cont de combinația definițiilor din fișierul QGM (modulul GRASS din QGIS) și opțiunile de definire din modulul sau scriptul GRASS — GMO (opțiuni ale modulului GRASS). Deoarece fiecare opțiune din QGM este legată de una (sau mai multe) GMO, este adesea util, dacă nu chiar necesar, să se vadă GMO. GMO sunt transmise prin modulul, GRASS în cazul în care este rulat cu opțiunea _*–interface-description_*, rezultatul fiind în format XML, de exemplu:

r.to.vect --interface-description

Unele module GRASS au prea multe opțiuni, ceea ce poate fi confuz pentru începători. În QGM este posibil să se definească doar câteva dintre ele și, eventual să setați unele valori implicite și/sau să ascundeți câteva opțiuni cu anumite valori. Asta înseamnă că mai multe module QGIS-GRASS pot fi definite pentru fiecare modul GRASS. De exemplu, modulul r.to.vect a fost împărțit în trei module QGIS-GRASS avânf «funcțiuni» opționale predefinite. Definiția QGM este scrisă în format de fișier XML cu extensia .qgm, unul pentru fiecare modul QGIS-GRASS. Fișierele de configurare sunt stocate în directorul _*qgis/src/plugins/grass/modules*_ și instalate în directorul _*share/qgis/grass/modules*_ . Numele fișierului trebuie să înceapă cu numele de modul GRASS + un cuvânt care să descrie sarcina specifică. De exemplu, modulul care extrage liniile vectoriale dintr-un raster se numește r.to.vect.line.qgm.

Iată un exemplu de fișier de configurare:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">
<qgisgrassmodule label="Generate aspect map from DEM" module="r.slope.aspect">
       <option key="elevation" />
       <option key="aspect" />
</qgisgrassmodule>

atributele etichetei qgisgrassmodule

  • label — descrierea utilizată în meniul arborelui
  • module — numele modulului executabil sau a script-ului GRASS.

Etichete ale opţiunilor

Fiecare etichetă qgisgrassmodule poate conține una sau mai multe etichete de opțiuni:

  • option — corespunde etichetei parametrului GMO, de exemplu:
<option key="elevation" />
  • flag — corespunde etichetei de semnalizare GMO, de exemplu:
<flag key="o" answer="on" hidden="yes" />
  • field — pentru straturile vectoriale se definesc câmpuri atribut, opțiunea fiind creată ca un combobox cu câmpuri disponibile. De exemplu (v.to.db.qgm):
<field key="column" layer="map" type="integer,double" label="Attribute field" />
  • selection — acest lucru este un tip de opțiune destul de interesant și util. El permite definirea listei de categorii vectoriale GRASS folosind interfața QGIS. Entitățile (și categoriile lor, ID-ul echivalent entității GRASS) pot fi selectate fie cu instrumentul «Selectare Entități» sau în tabelul de atribute. Lista de categorii este actualizată în mod dinamic. Exemplu (v.extract.list.qgm):
<selection key="list" layerid="input" label="Cats" />

Atribute comune ale etichetei de opțiuni/semnal

  • key — numele opțiunii modului din GMO.
  • answer — valoarea implicită (suprascrie valoarea implicită GMO); valoarea „on” va comuta pe un semnal.
  • hidden — opțiunea nu va apărea în caseta de dialog, dar modulul va fi rulat cu această opțiune (hidden=”yes”).
  • label — eticheta opțiunilor
  • advanced — „da” sau „nu”, implicit este „nu”. Dacă este setat la „da”, opțiunea/semnalul este de a adăuga la panoul de opțiuni avansate, ascunse inițial, iar butonul „Show advanced options >>” este afișat sub simple (basic, standard) opțiuni
  • version_min — versiunea minimă GRASS, pentru care această opțiune/semnal este valid
  • version_max — versiunea maximă GRASS, pentru care această opțiune/semnal este valid

Atribute specifice ale etichetei de opțiuni

  • typeoption — această opțiune poate fi folosită cu straturile vectoriale pentru a defini numele opțiunii tipului vectorial de intrare, atunci când modulul este rulat, tipul stratului vectorial selectat fiind folosit pentru această opțiune. De exemplu (v.overlay.or.qgm):

    <option key="ainput" typeoption="atype" layeroption="alayer" typemask="area,line" />
    

    Aceasta înseamnă că, în cazul în care un strat este selectat din caseta combo, opțiunea _*atype*_ este automat setată la tipul stratului, deci _*atype*_ nu trebuie să fie adăugată deloc.

  • layeroption — echivalent cu typeoption pentru strat.

  • typmask — pentru opțiunea de intrare vectorială definește tipurile permise. Doar straturile unuia din tipurile definite sunt afișate în intrare. A se vedea, de exemplu, v.overlay.or.qgm.

Atribute specifice ale etichetei de câmpuri

  • layer — atributul cheie al opțiunii care definește vectorul de care acest câmp ar trebui să depindă

  • type — definește tipurile de câmpuri de atribute care ar trebui să fie adăugate la caseta combo a câmpului, de exemplu,

    <field key="column" layer="map" type="integer,double" label="Attribute field" />
    

    Aceasta înseamnă că doar câmpurile atributelor de tip întreg și dublă precizie va apărea în caseta combo. A se vedea, de exemplu v.what.vect (2 vectori diferiți).

În spatele scenei

Ideea implementării modulelor QGIS-GRASS este de a utiliza maxinum de informații din GMO-uri și de a simplifica interfața. Aici sunt descrise câteva reguli despre cum sunt folosite informațiile din GMO și în ce ordine, dacă nu sunt toate definite în GMO.

  • label — dacă atributul etichetei este definit în QGM atunci este folosit ca etichetă a opțiunii, în cazul în care nu este definit, atunci se folosește eticheta opțiuni, iar dacă ultima nu este definită, atunci se utilizează descrierea opțiunii
  • tooltip — (apare pe opțiunea mouseover), în cazul în care eticheta este definită (fie în QGM sau GMO) și descrierea este definită în GMO (astfel eticheta și descrierea diferă) eticheta descrierii GMO este folosită pentru tooltip
  • multiple values — dacă o opțiune este de tip multiplu, cu lista definită de valori posibile (cum ar fi opțiunea de încărcare a v.distance) și tag-ul descrierii este definit pentru tag-ul valoare în GMO, atunci este folosit ca etichetă pentru caseta de bifare

Imaginea

Fiecare modul trebuie să fie reprezentat, de asemenea, de o imagine/pictogramă care simbolizează funcționalitatea modulelor. Imaginile sunt de asemenea stocate în plugins/grass/modules ca fișiere SVG (.svg) sau PNG (.png) .

În prezent, există sunt suportate de 3 scheme pentru imagini:

  • 1 imagine
  • 2 imagini — QGIS va crea pictograma: 1 -> 2
  • 3 imagini — QGIS va crea pictograma: 1 + 2 -> 3

Numele imaginii începe cu numele modulului QGIS-GRASS, căruia îi este anexat numărul imaginii, de exemplu: v.overlay.and.1.svg, v.overlay.and.2.svg, v.overlay.and.3.svg. Este posibilă combinarea imaginilor SVG și PNG.

Imaginile SVG și PNG pot fi generate de QGIS folosind Compozitorul de hărți. Dimensiunea imaginilor PNG ar trebui să fie mai mare decât mărimea pictogramei, deoarece este de așteptat să fie utilizată ulterior în documentația generată automat, unde imaginile utilizate vor avea dimensiuni mai mari.

Script-uri GRASS pentru QGIS

Pentru că poate dura mult timp până când este adăugat un nou script pentru versiunea GRASS stabilă și pentru că unele script-uri pot fi utile doar pentru interfața GUI QGIS, este posibil să se adauge un script «GRASS» la QGIS. Script-urile ar trebui să respecte cerințele generale pentru script-uri GRASS, acestea fiind situate în qgis/src/plugins/grass/scripts.

Reguli generale pentru noile module

Instrumentele GRASS sunt gândite în mare parte pentru începători și pentru utilizatorii nu foarte experimentați. Regulile de bază sunt:

  • Fiecare modul trebuie să aibă 3 opțiuni sau mai puține; în cazul în care pare a fi necesar să se adauge mai multe opțiuni, ar trebui să se discute în prealabil
  • Definiția modulului trebuie să fie solidă, astfel încât aceasta să nu permită unui utilizator rularea unui modul cu opțiunea greșită. În cazul în care nu există încă suport pentru un anumit tip de opțiune, modulul nu ar trebui să fie adăugat la meniu

Reguli specifice pentru descrierea modulului

  • Evitați persoana a 3-a pentru verbe, de exemplu, „Export raster” în loc de „Exports raster”
  • Evitați cuvintele care nu sunt necesare, precum „harta”, „strat” ​​și „fișier”, de exemplu, „Export raster” în loc de „Export raster hartă strat”
  • Evitați cuvintele care nu sunt necesare, precum „GRASS”, de exemplu „Export raster” în loc de „Export GRASS raster”
  • Evitați „un/o”, de exemplu, „Export raster” în loc de „Exports a raster”
  • Evitați cuvinte de umplutură, de exemplu, „Export raster” în loc de „Permiteți exportul unui raster”
  • Evitați „Convert”: folosiți, în schimb, „Export” sau „Import”. Conversia ar trebui să fie folosită pentru conversii GRASS interne (de exemplu, de la raster la vector)
  • Acronimele ar trebui să fie cu majuscule, de exemplu, ASCII în loc de ascii
  • În caz de dubiu, vă rugăm să verificați plugin-urile similare, pentru a menține coerența

Opțiuni care nu pot fi utilizate în prezent

Din punct de vedere tehnic, orice opțiune poate fi utilizată. Unele tipuri de opțiuni totuși nu sunt încă bine susținute, de exemplu, cele care depind de altă opțiune. Aici este o listă (probabil incompletă), de opțiuni care nu sunt încă bine suportate și, astfel, nu ar trebui să fie utilizate în prezent:

  • OGR input dsn/layer (v.in.ogr)

Modulele care pot fi adăugate

Cele mai multe module au fost adăugate. Dacă aveți nevoie de unele suplimentare, vă rugăm să scrieți pe lista de discuții a dezvoltatorilor QGIS, apoi să listați în continuare modulele care credeți că ar fi cel mai important de adăugat.

Ar trebui să postați numele unui nou modul QGIS-GRASS, numele modulului GRASS și opțiunile pe care doriți să le utilizați. De exemplu:

r.to.vect.area: r.to.vect input output feature=area

Parcurgeți, de asemenea, lista de discuții a Modulelor GRASS-QGIS relevante.

Module care vor fi scoase din uz

Aici vor fi listate modulele care ar trebui să fie eliminate, cu un motiv pentru această sugestie (de exemplu: unele module legate de proiecții sunt greu de înțeles, nefiind de uz general). Vă rugăm să rețineți: unele module nu au fost testate amănunțit. Vă rugăm să le testați, iar în cazul în care veți găsi orice problemă să o raportați (cel mai bine: să le reparați singuri și să trimiteți patch-uri).