GRASS nie działa z QGIS 3.6

23

Zaktualizowałem QGIS do wersji 3.6 za pomocą OSGEO4w

Podczas próby uruchomienia dowolnego skryptu GRASS pojawia się następujący komunikat o błędzie:

Komunikat o błędzie

Nie można uruchomić tego algorytmu :-( Podany folder GRASS 7 „C: \ OSGEO4 ~ 1 \ bin \ bin” nie zawiera prawidłowego zestawu modułów GRASS 7. Przejdź do okna dialogowego Ustawienia przetwarzania i sprawdź, czy GRASS 7 folder jest poprawnie skonfigurowany

Wygląda na to, że ścieżka nie istnieje, ale nie mogłem znaleźć miejsca, aby ją zmienić; nie jest już opcją w ustawieniach przetwarzania, jak w wersjach 2.x.

Czy istnieje sposób na uruchomienie tych skryptów przetwarzających w QGIS 3.6, a jeśli tak, to w jaki sposób mogę dostosować potrzebne ustawienia?


Edycja: Oto jak wyglądają moje opcje przetwarzania

Parametry przetwarzania

Kantan
źródło
Czy próbowałeś użyć QGIS 3.4.5 (nowy LTR), działa on w tej wersji.
ahmadhanb
Kiedy najpierw uruchamiam GRASS, potem ładuję QGIS, wszystko jest w porządku. W przeciwnym razie nie.
Jim McLaughlin

Odpowiedzi:

33

Jeśli otworzę QGIS za pomocą skrótu „QGIS Desktop 3.6.0 z GRASS 7.6.0” wszystko działa dobrze. Jeśli otworzę QGIS za pomocą skrótu „QGIS Desktop 3.6.0”, pojawia się ten sam błąd co ty

Dataform
źródło
10
Zastanawiam się, dlaczego GRASS nie jest domyślną opcją na początek od QGIS.
Pan Che
Dokładnie ten sam problem pojawił się ponownie i został rozwiązany przez aktualizację grasspakietu za pomocą OSGEO4w.
Mr. Che
W ogóle nie mam takiej QGIS Desktop x.x.x with GRASS x.x.xopcji. Mam tylko QGIS Desktopopcję. Co może być nie tak?
Nancy,
Jeśli podobnie jak ja nie masz tego skrótu, możesz utworzyć nowy, wskazujący na „qgis-bin-g7.exe” w tym samym folderze, co aplikacje QGIS, dla których masz już skrót. W moim przypadku folder to C: \ OSGeo4W64 \ bin. Otworzy to GRASS z twoją najnowszą wersją QGIS. Używam QGIS 3.4 (bieżąca wersja długoterminowa), dlatego zmieniłem skrót, aby wskazywał na „qgis-ltr-bin-g7”.
tarnina
Dla mnie nie mam takiego skrótu. I to zdecydowanie zależy od środowiska. Więc dodałem linię call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"do mojego pliku wsadowego qgis i narzędzia do trawy działają. Oczywiście droga musi być poprawna, a linia powinna następować po tej liniicall "%~dp0\o4w_env.bat"
Andreas Müller
6

Miałem ten sam problem, ale udało mi się go rozwiązać, zmieniając nazwę folderu trawy z „grass76” na grass-7.6.0 ”.

Friedemann
źródło
4

W odniesieniu do części twojego pytania

„Wygląda na to, że ścieżka nie istnieje, ale nie mogłem znaleźć miejsca, aby ją zmienić; nie jest to już opcja w ustawieniach przetwarzania, jak w wersjach 2.x.”

możesz zarządzać ścieżką działającego folderu GRASS

Ustawienia> Opcje> Przetwarzanie> Dostawcy> TRAWA

Na podstawie wersji QGIS 3.0.3

GRASS_setting_window

gdzie możesz dostosować 'GRASS7 folder', wystarczy dwukrotnie kliknąć na niego.

Nawiasem mówiąc, GRASS działa dobrze na mojej wersji QGIS 3.0.3.

Taras
źródło
Z której wersji pochodzi ten zrzut ekranu? Dołączyłem mój, wygląda na to, że masz kilka więcej opcji niż ja!
Kantan
1
Wersja QGIS 3.0.3
Taras
Prawdopodobnie nie uruchomiłeś QGIS z GRASS
em
W qgis 3.6 i 3.10 brakuje wiersza „folder GRASS7”.
foobarbecue
Jednak jest stabilny dla LTR (QGIS 3.4)
Taras
3

Na podstawie tego artykułu grasswiki ustawienie zmiennej środowiskowej systemu operacyjnego GISBASE na folder instalacyjny GRASS może rozwiązać problem (np. C: \ OSGeo4W \ apps \ grass \ grass76).

Opcje przetwarzania QGIS 3.8 nadal nie zawierają opcji dla folderu GRASS.

Mam na myśli system operacyjny Windows i QGIS 3.8 / GRASS 7.6.

Nicolo
źródło
przybiłem go do głowy: brak folderu GRASS w opcjach przetwarzania dla QGIS 3.8. Istnieje kilka innych folderów powiązanych z GRASS, ale nic, co nie jest wyraźnie GRASS. Używam QGIS 3.8.1. W odniesieniu do sugestii Tarasa, że ​​OP nie uruchomił „QGIS z GRASS”, nie jest to dla mnie obecnie opcja na moim komputerze i może nie być jedną z OP. Wiem, że miałem tę opcję w przeszłości, nie wiem, co zrobiłem inaczej, gdy zainstalowałem QGIS na tej nowej (dla mnie) maszynie, aby ją przegapić. Wydaje mi się, że dodanie nowej ścieżki środowiska działało.
shea
Naprawiłem to dla mnie!
foobarbecue
2

Wydaje mi się, że brakuje niektórych zmiennych środowiskowych podczas uruchamiania „normalnych” qgis. Naprawiłem to w QGIS 3.4.13, zmieniając qgis-ltr-bin.env i qgis-ltr.bat . W wersji 3.6, 3.8 (...) te dwa pliki będą miały inną, ale podobną nazwę. Jeśli ty

kliknij prawym przyciskiem myszy ikonę startową qgis> otwórz ścieżkę pliku

powinno to doprowadzić cię do ... \ OSGeo4W64 \ bin lub gdziekolwiek zainstalowałeś qgis. Znajdziesz tam dwa pliki. Otwórz je za pomocą standardowego edytora tekstu (np. Notatnika), aby wprowadzić zmiany:

qgis-ltr-bin.env :

  • zmień PATH na tę samą linię PATH, która jest zapisana w qgis-ltr-bin-g7.env (znajduje się w tym samym folderze)
  • z qgis-ltr-bin-g7.env dodaj zmienne GISBASE, GRASS_PROJSHARE i GRASS_PYTHON

w qgis-ltr.bat :

  • dodaj wiersz 3 z qgis-ltr-grass7.bat (znajdujący się w tym samym folderze): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(może folder trawy ma inną nazwę w twojej wersji)
  • zmień PATH na tę samą linię PATH, która jest zapisana w qgis-ltr-grass7.bat (linia 7)
Jannik Schilling
źródło
Dzięki teraz z QGIS 3.5.15 działa.
natan
1

Taka sama poprawka, jak @Friedemann pracował w QGIS 3.10 z folderem C: \ OSGeo4W64 \ apps \ grass \ grass78 zmieniono na C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

AKTUALIZACJA: łatwa zmiana nazwy folderu pozwoliła na otwarcie funkcji przybornika trawy w QGIS 3.10. Jednak po wykonaniu wszystkie operacje GRASS zakończyły się niepowodzeniem z następującym błędem w dzienniku:

System nie może odnaleźć określonej ścieżki. „” „” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny ani plik wsadowy.

Próbowałem więc ustawić zmienną środowiskową Windows (używając nazwy folderu GRASS przywrócono z powrotem do „grass78”), jak opisano w innej odpowiedzi, a operacje GRASS działają teraz poprawnie w QGIS. To wydaje się właściwe rozwiązanie.

ewolf
źródło
Dzięki za wkład, czy możesz wskazać mi zasób, aby dowiedzieć się, którą zmienną ustawić i gdzie?
Kantan
1
Korzystam z systemu Windows 10, więc w Eksploratorze Windows: kliknij prawym przyciskiem myszy Ten komputer , wybierz Właściwości, następnie Zaawansowane ustawienia systemu , następnie kartę Zaawansowane , a następnie Zmienne środowiskowe . Kliknij Nowy ... i wpisz „GISBASE” w nazwie zmiennej, a „C: \ OSGeo4W64 \ apps \ grass \ grass78” w zmiennej wartości [ UWAGA: ścieżka może się różnić w zależności od wersji QGIS i / lub GRASS ]. Kliknij OK i powinieneś zobaczyć nowo utworzoną zmienną dodaną do listy.
ewolf
0

Innym rozwiązaniem do użycia GRASS w przetwarzaniu ToolBox (z QGIS) jest znalezienie w C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\pliku Grass7Utils.pyi zamiana terminów:

  • grass-7.przez grass7w kodzie znajdującym się w linii 223 lub dalej
  • następnie for version in ['', '7', '76', '74', '72', '71', '70']:”przez for version in ['', '7', '78', '76', '74', '72', '71', '70']:w kodzie znajdującym się w linii 229 lub w innym miejscu.
Olivier ATHIMON
źródło