Diskusijos apie laisvąsias programas

Kitos laisvosios programos => Geoinformacinės sistemos (GIS) => Temą pradėjo: DariusS 2013 m. Spalio 03 d. 10:46:30

Antraštė: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 03 d. 10:46:30
Sveiki,
kaip iš turimos visos Lietuvos GIS duomenų (daug sluoksnių ir grupių) su QGIS išskirti (išskirti) tik darbui/užduočiai reikalingą plotą? - tikslas kuo mažiau apkrauti kompą - per ilgas renderinimas.
Pageidautina kad atliekamas veiksmas būtų greitas ir visiems sluoksniam/grupėm iškart.   

Ačiū už atsakymus iš anksto

D.S.
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 03 d. 22:27:56
Yra ne vienas būdas.

Pirmas būdas.


Pvz. "Parkas" tai tavo darbo apimtis/ribos o "SKL" - miško sklypai visos Lietuvos. Kai juos užkrauni tau labai stabdo kompas, nes juda visi duomenys, kurių tau nereikia.

(http://i.imgur.com/gYUJRON.png)

1. Pasirenki Vector -> Geoprocessing Tools -> Clip
2. Laukelyje "Input vector layer" pasirenki "SKL" tai duomenys kurie bus apkirpti iki tau reikiamos ribos.
3. Laukelyje "Clip layer" pasirenki "Parkas" tai tavo apimamas plotas/riba.
4. Nurodai kur išsaugosi naują sluoksnį.
5. Spaudi "Gerai" arba "OK"

(http://i.imgur.com/Va1B2p4.png)

Kai įkeli sukurtą sluoksnį ir atjungi nereikalingą sluoksnį "SKL" . Matai, kad duomenys yra tik tavo ribose.

(http://i.imgur.com/fhr1Qdx.png)

Taip pasidarai su visais sluoksniais, kurių tau reikia ir kompas suksis greičiau :)
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 04 d. 05:39:24
Antras būdas.

Yra galimybė nustatyti mastelį nuo kurio įsijungia sluoksnio vaizdavimas projekte. Pvz. Kada stumdau visos Lietuvos miško sklypus matomus visame lange kompas labai ilgai galvoja. Jeigu stumdau išsididinęs iki reikiamo mastelio viskas veikia greičiau. Didelis duomenų grafinis pavaizdavimas naudoja daug kompo resursų.
Tai galima palengvinti per Layer -> Properties -> General uždėjus varnelę ant "Scale dependent visibility" bei nustačius minimalų ir maksimalų mastelį kurio intervale įsijungia sluoksnio pavaizdavimas.

(http://i.imgur.com/mCx4rE7.png)

Tai žymiai pagreitina paiešką tavo darbo plotuose, nes stambesniame mastelyje nereikalingų sluoksnių tiesiog nerodo ir nenaudoja tam resursų.

Tokiu būdu gali susidėlioti skirtingus sluoksnius skirtinguose masteliuose. Pvz. Kai rodys visą Lietuvą matysi tik administracinius rajonus, kai išsididinsi vieną iš rajonų pradės rodyti visas saugomas teritorijas, kai išsididinsi vieną iš saugomų teritorijų pradės rodyti tos teritorijos miško kvartalus ir sklypus ir t.t.
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: kkestas 2013 m. Spalio 06 d. 19:08:24
Antras variantas atrodo tikrai patrauklus, reikės išbandyti :)
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 07 d. 14:25:42
Trečias būdas.

Layer -> Properties -> General -> Query Builder Pasirenkate atributų lentelės stulpelį "Fields" laukelyje ir du kart spustelėję pelės kairiu mygtuku įkelsite į "Provider specufic filter expression" laukelį, po lygybės ženklo įkelsite sąlygą (įrašą pagal kurį filtruos duomenis) "Values" laukelyje. Jeigu reikia ne vieno kriterijau naudokite "OR" ir įveskite kitą kriterijų.
Pvz. Mane domina tik dviejų urėdijų miškų plotų ribos. Aš pasirenku urėdijos stulpelį "mu_kod" ir po lygybės ženklu pasirenku konkrečius urėdijų numerius "Values" laukelyje.

(http://i.imgur.com/WW2YngF.png)

Galima pasitikrinti su "Test" ir spaudžiam "Gerai" arba "OK"

Bus sukurta užklausa, kuri rodys tik tuos duomenis, kuriuos nurodėte
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 07 d. 18:14:05
Sveiki, Giedriau,
matomumo nustatymas pagal mastelį geras dalykas, taciau jis problemos neišsprendžia.
Iš principo siūlomi variantai (clip ar query builder)  tinkami kai turi daug laiko arba vieną plotą, kur išsiklipini aktualią info ir su ja dirbi.

Mano atveju bandau optimizuoti darbą su daugiau nei 100 sluoksnių, o darbų objektai gali būti visoje Lietuvoje.
As ieskau funkcijos kokia būdavo Arcview GIS 3.2 ""Area of interest" arba Autocad Map 3D "query to filter data", kuomet tiesiog pasižymi dominančią sritį, o visą kitą info nufiltruoja pati programa, tuo būdu neapkraudama kompo papildomu darbu.

Žinoma išeitis galėtų būti ir clip'inimas automatiškai visų sluoksnių bei pradinių sluoksnių stilių priskyrimas naujai iškirptiems sluoksniams - bet čia jau reikia turbūt šiek tiek žinių turėti kaip tai padaryti (kaip suprantu programinant). 

Darius
 
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 07 d. 18:20:15
o gal šiam klausimui yra jau padarytas įskiepis?

<Žinoma išeitis galėtų būti ir clip'inimas automatiškai visų sluoksnių bei pradinių sluoksnių stilių priskyrimas naujai iškirptiems sluoksniams - bet čia jau reikia turbūt šiek tiek žinių turėti kaip tai <padaryti (kaip suprantu programinant).

Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 07 d. 19:58:43
Kol kas tokio veiksmo nerandu. Bet prisiminiau vieną labai paprastą "New Bookmark". Jis leidžia susikurti tokias kaip nuorodas. Pvz. mane domina mano priskirtos saugomos teritorijos jų yra apie 20 ir kiekvienai susikuriu bookmark. Išsidinu iki man rūpimų ribų ir nuspaudžiu  "New Bookmark" kuriai suteikiu pavadinimą. Jis visada išlieka projekto atmintyje. Kai tik reikia išsididinti norimą sritį tiesiog pasirenki ir jis nukelia į jo ribas.

(http://i.imgur.com/So32Ft6.png)
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 08 d. 16:48:48
Geras daiktas - bet ne tai ko reikia :(
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 14 d. 03:43:31
Parašiau apie tai čia http://gis.stackexchange.com/questions/74228/is-it-possible-to-cut-filter-all-layers-to-an-area-of-interest-in-one-step
Reikia stebėti ką atsakys profesionalai.Bet panašu įskiepio tam nėra ir veiksmas nebus lengvas. Matyt tokios funkcijos ne daug kam reikia, dėl to ir nėra įskiepio.
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 14 d. 04:28:55

Žinoma išeitis galėtų būti ir clip'inimas automatiškai visų sluoksnių bei pradinių sluoksnių stilių priskyrimas naujai iškirptiems sluoksniams - bet čia jau reikia turbūt šiek tiek žinių turėti kaip tai padaryti (kaip suprantu programinant). 


Nors pagalvojus... Ką jūs tuo laimėsit? QGIS'as renderina tik matomą išdidintą plotą. Tai tas pats kas iškirpti (clip'inti) jums reikiamą plotą su ten matomais sluoksniais. Palyginau darbą su išdidintu ir apkirptu sluoksniu (užkroviau 30 sluoksnių). Jokio skirtumo.
Manau turėtų pakakti "New Bookmark" ir "Scale dependent visibility".
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 14 d. 19:06:31
man susidaro jausmas kad renderinant turi įtakos ir failo dydis. Kol kas sukuosi sustabdant renderinimą ir einant prie reikiamos vietos...., bei išjunginėjant "sunkiausius" sluoksnius. Aišku ir map scale'ai nustatyti....

Internete radau kad clipinti galima visai direktorijai su komanda org2org. Bet aš nepatyręs varotojas - su scriptais nežinau kaip ka daryti (ir laiko nelabai yra kada gilintis)
http://osgeo-org.1560.x6.nabble.com/Re-Clipping-60-shape-layers-td4957714.html#a4958330
http://planet.qgis.org/planet/tag/ogr/
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 15 d. 10:21:36
Dalinai pagreitinau clip'pinimą su algoritmu per Processing -> Toolbox QGIS geoalgorithms -> Vector overlay tools -> clip bet ant clip spusteli dešinį pelės mygtuką ir pasirenki "Execute as batch process" ten jis leidža pažymėti visus sluoksnius kuriuos reikia apkirpti.

(http://i.imgur.com/j0O9RHX.png)
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: DariusS 2013 m. Spalio 17 d. 10:56:04
Vistiek su 100 failu daug vargo - čia reikėtų ne sluoksnius o direktorijas nurodyti :(
Apsipratau jau su renderinimo sustabdymu - galima dirbti....
Antraštė: Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
Parašė: Giedrius V. 2013 m. Spalio 18 d. 05:54:29
Kai turėsiu daugiau laiko prisėsiu prie skriptų. Tos nuorodos, kur nurodėt aukščiau, tai ten yra komandinėje eilutėje vykdomi veiksmai ir tikriausiai įmanomi tik ant Linux OS.
Gal kas žinote kaip naudoti šitą?: http://gis.stackexchange.com/questions/49346/how-do-i-use-qgis-python-console-to-iterate-through-simple-layer-queries-and-png