Forum QGIS

Pełna wersja: Czy można zautomatyzować funkcję Przytnij
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Czy jest możliwość zautomatyzowania funkcji Przytnij, jeśli muszę użyć jej wielokrotnie korzystając zawsze z tej samej liniowej warstwy wejściowej, a zmienia się tylko maska zawarta w warstwie poligonowej.
Mam wektorową warstwę liniową pn. GRANICA, która jest granicą obszaru. Mam również warstwę poligonową pn. Arkusze_Mapy, w której zapisane jest kilkadziesiąt poligonów, każdy wyznacza obszar innego arkusza mapy i jako etykietę ma godło tej mapy. Chciałbym teraz rozbić tę granicę obszaru na warstwy odpowiadające poszczególnym arkuszom mapy i żeby otrzymały one nazwy nawiązujące do godła mapy, np. przedrostek [undefined=undefined]Granica[/undefined] + [undefined=undefined]Godło[/undefined] (godło to jest etykieta poligonu pełniącego funkcję maski).
Dotychczas robię to tak:
- Zaznaczam potrzebny poligon, który będzie służył jako maska przycięcia,
- Wektor>Narzędzia geoprocesingu>Przytnij,
- Podaję warstwę wejściową, a więc GRANICA
- Podaję maskę przycięcia, a więc Arkusze_Mapy i zaznaczam Użyj tylko zaznaczonych elementów,
- Podaję nazwę wyjściowego shapefile'a
I powtarzam taką operację kilkadziesiąt razy podmieniając tylko kolejno zaznaczony poligon do maski.
Czy można tę nudną procedurę jakoś zautomatyzować?
Podobny problem mam gdy do rozbicia na podwarstwy jest warstwa punktowa.
Uruchom przycinanie w trybie wsadowym. Tam można wypełnić pola, ja robię coś takiego metodą kopiuj-wklej. Chwilę to trwa, ale potem raz zamiesza i gotowe. Ewentualnie możesz model sobie zrobić w modelerze.

Choć pewnie łatwiej byłoby to zrobić w Pythonie, może kolega xmaziax coś zaproponuje, widzę że on to ogarnia Smile
Próbowałem z trybem wsadowym (konkretnie Geoalgorytmy QGIS>Narzędzia nakładania się wektorów>Przytnij). Ale moim zdaniem nie da się tego wykorzystać, ponieważ nie ma możliwości zadania maski jako wybrany, konkretny element (poligon) z warstwy poligonowej. Jako maskę mozna zadać tylko całą warstwę poligonową.
Czyli prawdopodobnie można by to wykorzystać, ale wcześniej musiałbym warstwę poligonową rozbić na podwarstwy - pojedyncze poligony, co w sumie chyba nie zmniejsza pracochłonności.
No, w sumie tak.

Mam prostsze rozwiązanie. Przetnij swoją linię intersectem (Iloczyn - warstwa wejściowa: linia, warstwa do iloczynu: poligon), potem rozbij powstałą warstwę na mniejsze warstwy (Podziel warstwę wektorową) według pola z poligonów.
Dziekuję Binko. Przećwiczyłem Twój sposób i jestem prawie zadowolony.
Prawie, ponieważ po rozbiciu warstwy iloczynu na warstwy mniejsze wyniki nie załadowują się automatycznie do QGIS lecz zapisują się na dysku w postaci shp. Trzeba więc potem wczytać kilkadziesiąt plików.
Mimo wszystko Twoje rozwiązanie problemu znacznie ułatwia zadanie.
Pozdrawiam