Aggiunta di Strumenti GRASS

I moduli GRASS possono essere eseguiti da QGIS Strumenti GRASS se QGIS è stato avviato da una console GRASS o se un mapset di GRASS è stato aperto da QGIS. I moduli funzionano solo con dati di GRASS.

È facile modificare il menu e aggiungere nuovi moduli perché sia il menu che i moduli sono definiti nel file di configurazione XML. Qui di seguito è descritto come scrivere nuovi moduli e modificare la struttura del menu.

Configurazione del modulo

Situazione

Le opzioni di ciascun modulo mostrati nella scheda _*Opzioni_* sono creati in base alla combinazione del file di definizione QGM (modulo GRASS QGIS) e le opzioni nel modulo o script GRASS — GMO (opzioni del modulo GRASS). Poiché ogni opzione QGM è legata ad uno (o più) GMO, è spesso utile, se non necessario, vedere GMO. Il GMO è l’output del modulo GRASS se viene eseguito con l’opzione _*–Interface-description_*, l’output è in formato XML, per esempio:

r.to.vect --interface-description

Alcuni moduli GRASS hanno troppe opzioni che possono essere fonte di confusione per i principianti. In QGM è possibile definire solo alcuni di essi ed eventualmente impostare alcuni valori predefiniti e / o nascondere alcune opzioni con un determinato valore. Ciò significa che più moduli QGIS-GRASS possono essere definiti per ogni modulo GRASS. Per esempio il modulo r.to.vect è stato suddiviso in tre moduli QGIS-GRASS con determinate funzionalità. Il QGM è scritto nel file di formato XML con estensione .qgm, uno per ogni modulo QGIS-GRASS. I file di configurazione sono memorizzati in _*qgis/src/plugins/grass/modules* _ e installati in _*share/qgis/grass/modules*_. Il nome del file dovrebbe iniziare con il nome del modulo GRASS e una parola che descrive il compito specifico. Ad esempio, il modulo che estrae linee vettoriali da raster si chiama r.to.vect.line.qgm.

Esempio di un file di configurazione:

<?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>

qgisgrassmodule tag attributes

  • label — descrizione nell’albero del menu
  • module — nome del modulo GRASS.

Etichette per l’opzione

Ogni etichetta qgisgrassmodule contiene una o più etichetta opzione:

  • option — etichetta del parametro GMO, ad esempio:
<option key="elevation" />
  • flag — etichetta flag GMO, ad esempio:
<flag key="o" answer="on" hidden="yes" />
  • field — per livelli vettoriali definisce il campo di attributo, l’opzione viene creata come combobox con campi disponibili. Ad esempio (v.to.db.qgm):
<field key="column" layer="map" type="integer,double" label="Attribute field" />
  • selezione — questo è un tipo di opzione molto interessante e utile. Permette di definire l’elenco delle categorie vettoriali GRASS usando l’interfaccia di QGIS. Le caratteristiche (e le loro categorie o funzioni GRASS equivalente) possono essere selezionati sia con lo strumento “Selezione funzionalità” o nella tabella degli attributi. L’elenco delle categorie viene aggiornato dinamicamente. Esempio (v.extract.list.qgm):
<selection key="list" layerid="input" label="Cats" />

Opzioni comuni/attributi/etichette

  • key — nome dell’opzione del modulo nel GMO.
  • answer — valore predefenito (ignora quello del GMO); il valore «on» attiverà l’opzione
  • hidden — l’opzione non apparirà nella finestra di dialogo, ma il modulo sarà eseguito con questa opzione (hidden=»yes»).
  • label — opzione etichetta
  • advanced — «yes» oppure «no», per default è «no». Se impostata su «yes», l’opzione è aggiunta alle opzioni avanzate (nascoste all’inizio), che può essere mostrata con il bottone «Mostra opzioni avanzate».
  • version_min — versione minima di GRASS richiesta
  • version_max — versione massima GRASS richiesta

Etichetta Opzioni per attributi specifici

  • typeoption — questa opzione può essere utilizzata con vettori per definire il nome del vettore quando il modulo è in esceuzione, il tipo del vetore selezionato sarà utilizzato per quell’opzione. Ad esempio (v.overlay.or.qgm):

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

    significa che se un layer è selezionato dalla casella di controllo di quest’opzione, l’opzione _*atype*_ viene impostata automaticamente al tipo del layer, qundi non deve essere aggiunto _*atype*_ .

  • layeroption — equivalente al typeoption del layer.

  • typmask — definisce i tipi permessi per i layer vettoriali. Solo i vettori di un tipo definito vengono mostrati nel controllo. Vedere v.overlay.oppure.qgm come esempio.

Attributi specifici per l’etichetta campo

  • layer — l’attributo chiave dell’opzione che definisce il vettore, da cui deve dipendere il campo.

  • type — definisce i tipi di campi attributo che dovrebbero essere aggiunti alla casella di controllo, ad esempio

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

    Vuol dire che solo che gli attributi di tipo intero e virgola mobile compariranno nella casella di controllo. Vedere v.what.vect come esempio (2 vettori diversi).

Dietro le quinte

L’idea di QGIS-GRASS per l’implementazione moduli è di utilizzare al massimo le informazioni da GMO e solo a semplificare l’interfaccia. Qui vengono descritte alcune regole come informazioni provenienti da GMO sono utilizzati e in quale ordine se non tutte sono definite in materia di GMO.

  • label — se questo attributo è definito in QGM, viene usato come opzione label, altrimenti come opzione etichetta tag.
  • tooltip — (appare se si tiene il puntatore del mouse sull’opzione) se l’etichetta è definita (in QGM oppure in GMO) e la descrizione è definita nel GMO (e l’etichetta e la descrizione differiscono), la descrizione GMO viene usata per il tooltip.
  • etichetta multiple values — se un’opzione è di tipo multiplo con una lista definita di valori possibili (ad esempio l’opzione di caricamento di v.distance) e la descrizione è definita per il valore GMO, viene usata come casella di spunta.

Immagine

Ogni modulo deve essere rappresentato anche da una foto / icona che simboleggia la funzionalità dei moduli. Le immagini vengono memorizzate in plugins/grass/modules come SVG (* Svg) o PNG (* png) file.

Attualmente sono supportati 3 schemi per l’immagine:

  • 1 immagine
  • 2 immagini — QGIS creerà l’icona: 1 -> 2
  • 3 immagini — QGIS creerà le icone: 1 + 2 -> 3

Il nome dell’immagine inizia con il nome del modulo QGIS-GRASS con attaccato il nome dell’immagine, ad esempio: v.overlay.and.1.svg, v.overlay.and.2.svg, v.overlay.and.3.svg. È possibile combinare immagini SVG e PNG.

Le immagini SVG e PNG possono essere generati da QGIS utilizzando il Compositore di Stampe. Le dimensioni delle immagini PNG deve essere più grande della dimensione dell’icona, perché potrebbe essere poi utilizzata nella documentazione generata automaticamente, dove verranno utilizzati le foto in formato più grande.

script QGIS GRASS

Perché può richiedere molto tempo fino a quando un nuovo script viene aggiunto alla versione stabile di GRASS e perché alcuni script possono essere utili solo per l’interfaccia di QGIS GUI è possibile aggiungere uno script “GRASS” di QGIS. Gli script devono seguire i requisiti generali per gli script di GRASS e sono situate in qgis/src/plugins/grass/scripts.

Regole generali per i nuovi moduli

Gli strumenti GRASS sono per i principianti che non sono molto esperti. Le regole sono:

  • Ogni modulo dovrebbe avere 3 o meno opzioni. Se dovesse essere necessario averne di più, si dovrebbe prima discutere di questo.
  • La definizione del modulo dovrebbe essere così robusta da non permettere ad un utente di eseguire un modulo con opzioni sbagliate. Se non esiste ancora il supporto ad un tipo di opzione, il modulo non dovrebbe essere aggiunto al menu.

Regole specifiche per le descrizioni del modulo

  • Evitare la terza persona per i verbi, ad esempio «Esportazione raster» anziché «Esporta raster»
  • Evita parole non necessarie «mappa» «layer» e «file», ad esempio «Esportazione raster» anziché «Esporta raster mappa layer»
  • Evita «GRASS»: «Esportazione raster» anziché «Esporta GRASS raster»
  • Evita «un», ad esempio «Esportazione raster» invece di «Esportazione di un raster»
  • Evitare le frasi imbottitite, ad esempio «Esportazione raster» invece di «Consente di esportare un raster»
  • Evitare «Convertire»: utilizzare «Esportazione» o «Importazione». Convertire dovrebbe essere utilizzato per le conversioni GRASS interne (ad esempio da raster a vettoriale)
  • Acronimi devono essere in maiuscolo, ad esempio ASCII invece di ASCII
  • In caso di dubbio, si prega di controllare i plugin simili esistenti per mantenere la coerenza

Opzioni che non possono essere attualmente utilizzati

Tecnicamente, ogni opzione può essere utilizzata. Alcuni tipi di opzioni però non sono ancora ben supportati, ad esempio, quelle che dipendono da altra opzione. Ecco un elenco (probabilmente incompleto) di opzioni che non sono ancora ben supportato e quindi non deve essere usato allo stato attuale:

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

Moduli che possono essere aggiunti

Sono stati aggiunti maggior parte dei moduli. Se avete bisogno di altre supplementari, si prega di scrivere alla mailing list di sviluppo di QGIS, e l’elenco qui di seguito i moduli che si pensa siano più importanti da aggiungere.

Si consiglia di inviare il nome di un nuovo modulo QGIS-GRASS, il nome del modulo GRASS e le opzioni che si desidera utilizzare. Per esempio:

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

Vedere anche qui per la discussione su «GRASS-QGIS relevant module list <http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list>`_.

Moduli da deprecare

Elenca i moduli che dovrebbero essere rimossi, con una logica di questo suggerimento (es: alcuni moduli relativi alle proiezioni sono difficili da capire, e di nessuna utilità generale). Attenzione: alcuni moduli non sono stati accuratamente testati. Si prega di verificare, e se trovate qualche problema segnalarlo alla Redmine (meglio ancora: ripararlo da soli e inviare la patch).