GRASS modulius galima paleisti iš QGIS GRASS Įrankiai, jei QGIS buvo paleistas iš GRASS arba jei GRASS žemėlapių rinkinys buvo atvertas iš QGIS. Moduliai dirba tik su GRASS duomenimis.
Labai paprasta keisti meniu ir pridėti naujus modulius, nes tiek meniu, tiek ir moduliai apibrėžiami XML konfigūracijos failuose. Žemiau aprašyta, kaip kurti naujus modulius ir keisti meniu medį.
Kiekvieno modulio parinktys, rodomas modulio_*Parinkčių_*kortelėje, sukuriamos pagal apibrėžimus QGM (QGIS GRASS modulis) faile ir pagal parinkčių apibrėžimą GRASS modulyje arba GRASS scenarijuje — GMO (GRASS modulio parinktys). Kadangi kiekviena QGM parinktis yra susieta su viena (ar daugiau) GMO, dažnai naudinga ar net privaloma peržiūrėti GMO. GMO išveda GRASS modulis, jei jis paleidžiamas su parinktimi _*–interface-description_*, išvedama XML formatu, pavyzdžiui:
r.to.vect --interface-description
Kai kurie GRASS moduliai turi per daug parinkčių, ,kurios gali gluminti pradedančiuosius. QGM galima apibrėžti tik kelias iš jų ir galbūt naudoti numatytąsias reikšmes ir/ar slėpti parinktis su konkrečia reikšme. Tai reiškia, kad kiekvienam GRASS moduliui galima apibrėžti daugiau QGIS-GRASS modulių. Pavyzdžiui modulis r.to.vect was yra padalintas į tris QGIS-GRASS modulius su iš anksto numatyta „geoobjekto“ parinktimi. QGM apibrėžimas parašytas XML formato faile su praplėtimu .qgm, po vieną kiekvienam QGIS-GRASS moduliui. Konfigūraciniai failai saugomi aplanke _*qgis/src/plugins/grass/modules*_ ir diegiami į aplanką _*share/qgis/grass/modules*_. Failo pavadinimas turi prasidėti GRASS modulio pavadinimu + žodžiu, aprašančiu konkrečią užduotį. Pavyzdžiui modulis, kuris ištraukia vektorių linijas iš rastro pavadintas r.to.vect.line.qgm.
Štai konfigūracinio failo pavyzdys:
<?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>
label — meniu medyje naudojamas aprašymas
module — GRASS modulio vykdomo scenarijaus pavadinimas.
key — GMO modulio parinkties pavadinimas.
answer — numatytoji reikšmė (perrašo GMO numatytąją reikšmę); reikšmė „on“ įjungs būseną.
hidden — parinktis nebus matoma dialoge, bet modulis bus paleistas šu šia parinktimi (hidden=“yes“).
label — parinkties etiketė
advanced — „yes“ arba „no“, numatytoji reikšmė - „no“. Nurodžius „yes“, parinktis/būsena pridedama į iš pradžių paslėptą sudėtingųjų parinkčių skiltį, o prie paprastų (standartinių) parinkčių rodomas mygtukas „Rodyti sudėtingas parinktis >>“
version_min — mažiausia GRASS versija, kuriai tinka ši parinktis/būsena
version_max — didžiausia GRASS versija, kuriai tinka ši parinktis/būsena
typeoption — ši parinktis gali būti naudojama su vektoriniu sluoksniu, kad apibrėžtų vektorių įvesties tipo parinkties pavadinimą. Vykdant modulį, parinkto vektorinio sluoksnio tipas bus naudojamas tai parinkčiai. Pavyzdžiui (v.overlay.or.qgm):
<option key="ainput" typeoption="atype" layeroption="alayer" typemask="area,line" />
Tai reiškia, kad jei sluoksnis parenkamas iškrentančiame šios parinkties sąraše _*atype*_ parinktis automatiškai įrašoma į sluoksnio tipą, taigi _*atype*_ apskritai nereikia pridėti.
layeroption — typeoption atitikmuo sluoksniui.
typmask — vektorinės įvesties parinkčiai nurodo leidžiamus tipus. Įvestyje rodomi tik nurodytų tipų sluoksniai. Pavyzdžiui žiūrėkite v.overlay.or.qgm.
layer — parinkties, nurodančios sluoksnį, nuo kurio priklauso šis laukas, esminis atributas
type — apibrėžia atributų laukų, kurie turi būti pridėti į iškrentantį sąrašą, tipus, pavyzdžiui
<field key="column" layer="map" type="integer,double" label="Attribute field" />
Tai reiškia, kad iškrentančiame sąraše bus tik atributų laukai, kurių tipas yra sveikas arba trupmeninis skaičius su dvigubu tikslumu. Žiūrėkite pavyzdžiui v.what.vect (2 skirtingi vektoriai).
QGIS-GRASS modulių įgyvendinimo mintis yra naudoti kiek galima daugiau informacijos iš GMO ir tik supaprastinti sąsają. Žemiau pateikiamos kelios taisyklės kaip informacija iš GMO naudojama ir kokia seka, jei ne visos, jos aprašomos GMO.
label — jei etiketės atributas apibrėžtas QGM, jis naudojamas kaip parinkties etiketė, jei jis neapibrėžtas - naudojama GMO parinkties etiketės žyma, o jei ji neapibrėžta GMO, naudojama parinkties apibrėžimo žyma
tooltip — (rodomas užvedus pelės žymeklį virš parinkties) jei etiketė apibrėžta (arba QGM, arba GMO) ir aprašymas apibrėžtas GMO (taigi etiketė ir aprašymas skirtingi) naudojama GMO apibrėžimo žyma
multiple values label — jei parinkties tipas yra „kelios reikšmes“ su nurodytomis keliomis galimomis reikšmėmis (pavyzdžiui v.distance įkėlimo parinktis) ir aprašymo žymą žyma apibrėžta reikšmės žymai GMO - tada ji naudojama kaip varnelės etiketė
Kiekvienas modulis taipogi turi turėti sau atitinkantį paveikslą/piktogramą, kuri simbolizuoja modulio funkcionalumą. Piešiniai taipogi laikomi plugins/grass/modules kaip SVG (.svg) arba PNG (.png) failai.
Šiuo metu palaikomos 3 piešinių schemos:
1 piešinys
2 piešiniai — QGIS sukurs piktogramą: 1 -> 2
3 piešiniai — QGIS sukurs piktogramą: 1 + 2 -> 3
Piešinio pavadinimas prasideda QGIS-GRASS modulio pavadinimu, prie kurio pridedamas piešinio numeris, pavyzdžiui: v.overlay.and.1.svg, v.overlay.and.2.svg, v.overlay.and.3.svg. Galima kartu naudoti SVG ir PNG piešinius.
SVG ir PNG piešinius galima kurti QGIS naudojant Žemėlapio kūrėją. PNG piešinių dydis turi būti didesnis nei norimas piktogramos dydis, nes jis vėliau bus naudojamas dokumentacijoje, kur bus naudojami didesnio dydžio piešiniai.
Kadangi gali užtrukti daug laiko, ko naujas scenarijus bus pridėtas prie stabilios GRASS laidos ir kadangi kai kurie scenarijai naudingi tik QGIS GUI sąsajoje, „GRASS“ scenarijus galima pridėti tiesiai į QGIS. Scenarijai turi atitikti bendrus GRASS scenarijų reikalavimus ir jie turi būti padėti į aplanką /qgis/src/plugins/grass/scripts.
GRASS Įrankiai labiau skirti pradedantiems ir nelabai patyrusiems naudotojams. Pagrindinės taisyklės:
Kiekvienas modulis turi turėti 3 arba mažiau parinkčių. Jei atrodo, kad būtinai reikia daugiau parinkčių, tai turi būti iš anksto aptarta
Modulio apibrėžimas turi būti tvirtas, kad naudotojas negalėtų paleisti modulio su neteisinga parinktimi. Jei dar nėra kokio nors tipo parinkties palaikymo, modulio nereikėtų pridėti į meniu
Venkite trečio 3 asmens veiksmažodžių, taigi „Eksportuoti rastrą“, o ne „Eksportuoja rastrą“
Venkite nereikalingų žodžių „žemėlapis“, „sluoksnis“ ir „failas“. Taigi „Eksportuoti rastrą“, o ne „Eksportuoti rastro žemėlapio sluoksnį“
Venkite nereikalingo „GRASS“ minėjimo. Taigi „Eksportuoti rastrą“, o ne „Eksportuoti GRASS rastrą“
Angliškame variante venkite artikelių. Taigi „Export raster“, o ne „Export a raster“
Venkite tuščių frazių. Taigi „Eksportuoti rastrą“, o ne „Leidžia eksportuoti rastrą“
Venkite žodžio „konvertuoti“: vietoje jo naudokite „eksportuoti“ arba „importuoti“. Konvertavimu turi būti aprašomi vidiniai GRASS konvertavimai (pvz. iš rastro į vektorių)
Akronimai turi būti rašomi didžiosiomis raidėmis, taigi ASCII, o ne ascii
Jei abejojate, pažiūrėkite, kaip rašoma kituose panašiuose prieduose, kad tekstai atrodytų panašiai
Techniškai naudoti galima bet kurią parinktį. Bet kai kurios parinktys nėra labai gerai palaikomos, pavyzdžiui tos, kurios priklauso nuo kitų parinkčių. Štai (tikriausiai nepilnas) sąrašas parinkčių, kurios dar nėra labai gerai palaikomos ir todėl šiuo metu neturėtų būti naudojamos:
OGR input dsn/layer (v.in.ogr)
Dauguma modulių jau pridėti. Jei jums reikia papildomų modulių, prašome parašyti į qgis vystymo sąrašyną ir išvardinti modulius, kuriuos jūsų nuomone svarbiausia pridėti.
Turėtumėte parašyti naujo QGIS-GRASS modulio pavadinimą, GRASS modulio pavadinimą ir parinktis, kurias norėtumėte naudoti. Pavyzdžiui:
r.to.vect.area: r.to.vect input output feature=area
Taipogi sekite atitinkamas „GRASS-QGIS susijusių modulių sąrašo“ diskusijas <http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list>`_.
Siųskite sąrašą modulių, kurie turėtų būti išimti, su šio pasiūlymo paaiškinimu (pavyzdžiui kai kurie moduliai, susiję su projekcijomis, sunkiai suprantami, todėl netinka bendram naudojimui). Prašome pastebėti, kad kai kurie moduliai nebuvo gerai išbandyti. Prašome juos išbandyti ir, jei randate klaidą, pranešti apie tai „redmine“ (o dar geriau: pataisykite patys ir nusiųskite pataisymą).