Autorius Tema: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?  (Skaityta 16839 kartus)

0 Nariai ir 1 Svečias peržiūrinėja šią temą.

Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Įrašytas: 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.
« Paskutinį kartą keitė: 2013 m. Spalio 03 d. 15:34:48 sukūrė Giedrius V. »

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #1 Įrašytas: 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.



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"



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



Taip pasidarai su visais sluoksniais, kurių tau reikia ir kompas suksis greičiau :)
« Paskutinį kartą keitė: 2013 m. Spalio 03 d. 22:47:49 sukūrė Giedrius V. »

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #2 Įrašytas: 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.



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.
« Paskutinį kartą keitė: 2013 m. Spalio 07 d. 14:26:56 sukūrė Giedrius V. »

Neprisijungęs kkestas

  • Naujokas
  • *
  • Įrašai: 33
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #3 Įrašytas: 2013 m. Spalio 06 d. 19:08:24 »
Antras variantas atrodo tikrai patrauklus, reikės išbandyti :)

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #4 Įrašytas: 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.



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

Bus sukurta užklausa, kuri rodys tik tuos duomenis, kuriuos nurodėte

Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #5 Įrašytas: 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
 

Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #6 Įrašytas: 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).


Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #7 Įrašytas: 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.


Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #8 Įrašytas: 2013 m. Spalio 08 d. 16:48:48 »
Geras daiktas - bet ne tai ko reikia :(

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #9 Įrašytas: 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.

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #10 Įrašytas: 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".
« Paskutinį kartą keitė: 2013 m. Spalio 14 d. 05:28:23 sukūrė Giedrius V. »

Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #11 Įrašytas: 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/

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #12 Įrašytas: 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.


Neprisijungęs DariusS

  • Naujokas
  • *
  • Įrašai: 10
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #13 Įrašytas: 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....

Neprisijungęs Giedrius V.

  • Administrator
  • Full Member
  • *****
  • Įrašai: 109
    • Žiūrėti profilį
Ats: QGIS: kaip išskirti (išfiltruoti) mežesnį darbui reikalingą plotą?
« Atsakymas #14 Įrašytas: 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