GRASS įrankių pridėjimas

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į.

Modulių konfigūravimas

Bendra informacija

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>

qgisgrassmodule žymos atributai

  • label — meniu medyje naudojamas aprašymas
  • module — GRASS modulio vykdomo scenarijaus pavadinimas.

Neprivalomos žymos

Kiekviena qgisgrassmodule žyma gali turėti vieną ar daugiau neprivalomų žymų:

  • option — atitinka GMO parametro žymą, pavyzdžiui:
<option key="elevation" />
  • flag — atitinka GMO būsenos žymą, pavyzdžiui:
<flag key="o" answer="on" hidden="yes" />
  • field — vektoriniams sluoksniams apibrėžia atributų lauką, parinktis sukurta kaip iškrentantis sąrašas su galimais laukais. Pavyzdžiui (v.to.db.qgm):
<field key="column" layer="map" type="integer,double" label="Attribute field" />
  • selection — tai gan įdomi ir naudinga parinktis. Ji leidžia nurodyti GRASS vektorių kategorijų sąrašą naudojant QGIS sąsają. Geoobjektus (ir jų kategorijas, GRASS geoobjekto ID atitikmuo) galima parinkti arba įrankiu „Pažymėti geoobjektus“, arba atributų lentelėje. Kategorijų sąrašas atnaujinamas dinamiškai. Pavyzdžiui (v.extract.list.qgm):
<selection key="list" layerid="input" label="Cats" />

Bendri parinkčių/būsenų žymų atributai

  • 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

Parinkčių žymų specifiniai atributai

  • 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.

Laukų žymų specifiniai atributai

  • 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).

Užkulisiai

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ė

Paveikslas

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.

QGIS GRASS scenarijai

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.

Bendros naujų modulių taisyklės

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

Modulių aprašymų taisyklės

  • 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

Parinktys, kurių šiuo metu negalima naudoti

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)

Moduliai, kuriuos galima pridėti

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>`_.

Moduliai, kurie nebebus naudojami

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ą).