GRASS tidak bekerja dengan QGIS 3.6

21

Saya memperbarui QGIS ke versi 3.6 menggunakan OSGEO4w

Ketika saya mencoba menjalankan skrip GRASS, saya mendapatkan pesan kesalahan berikut:

Pesan eror

Algoritma ini tidak dapat dijalankan :-( Folder GRASS 7 yang ditentukan "C: \ OSGEO4 ~ 1 \ bin \ bin" tidak mengandung set modul GRASS 7. yang valid. Silakan, pergi ke dialog Pengaturan pemrosesan, dan periksa bahwa GRASS 7 folder dikonfigurasi dengan benar

Sepertinya jalannya tidak ada, tapi aku tidak bisa menemukan tempat untuk mengubahnya; itu bukan opsi dalam pengaturan pemrosesan lagi seperti di versi 2.x.

Apakah ada cara untuk menjalankan skrip pemrosesan di QGIS 3.6 dan jika demikian, bagaimana saya bisa mengubah pengaturan yang diperlukan?


Sunting: Berikut adalah tampilan opsi pemrosesan saya

Parameter pemrosesan

Kantan
sumber
Sudahkah Anda mencoba menggunakan QGIS 3.4.5 (LTR baru), ini berfungsi dalam versi ini.
ahmadhanb
Ketika saya memulai GRASS pertama, lalu memuat QGIS, semuanya baik-baik saja. Kalau tidak, tidak.
Jim McLaughlin

Jawaban:

31

Jika saya membuka QGIS dengan pintasan "QGIS Desktop 3.6.0 dengan GRASS 7.6.0" semuanya berfungsi dengan baik. Jika saya membuka QGIS dengan pintasan "QGIS Desktop 3.6.0" saya mendapatkan kesalahan yang sama seperti Anda

Bentuk data
sumber
9
Saya ingin tahu mengapa GRASS bukan opsi default untuk memulai dengan QGIS.
Tn. Che
Masalah yang sama persis muncul lagi dan diselesaikan dengan memperbarui grasspaket dengan OSGEO4w.
Tn. Che
Saya tidak mendapatkan QGIS Desktop x.x.x with GRASS x.x.xopsi sama sekali. Saya hanya mendapatkan QGIS Desktopopsi. Apa yang salah?
Nancy
Jika seperti saya Anda tidak memiliki pintasan itu, Anda dapat membuat yang baru menunjuk "qgis-bin-g7.exe" di folder yang sama dengan aplikasi QGIS yang sudah Anda miliki pintasannya. Dalam kasus saya, foldernya adalah C: \ OSGeo4W64 \ bin. Ini akan membuka GRASS dengan versi terbaru QGIS Anda saat ini. Saya menggunakan QGIS 3.4 (rilis jangka panjang saat ini), jadi saya mengubah pintasan untuk menunjuk ke "qgis-ltr-bin-g7".
blackthorn
Bagi saya, saya tidak punya jalan pintas seperti itu. Dan itu pasti tergantung pada lingkungan. Jadi saya menambahkan baris call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"ke file batch qgis saya, dan alat rumput berfungsi. Tentu saja jalannya harus benar dan garisnya harus ada setelah garis itucall "%~dp0\o4w_env.bat"
Andreas Müller
6

Saya memiliki masalah yang sama tetapi saya berhasil menyelesaikannya dengan mengganti nama folder rumput saya dari "grass76" menjadi grass-7.6.0 ".

Friedemann
sumber
4

Sehubungan dengan bagian dari pertanyaan Anda

"Sepertinya jalannya tidak ada, tapi saya tidak bisa menemukan tempat untuk mengubahnya; ini bukan pilihan dalam pengaturan pemrosesan lagi seperti di versi 2.x."

Anda dapat mengelola jalur folder GRASS yang berfungsi

Pengaturan> Opsi> Pemrosesan> Penyedia> GRASS

Berdasarkan versi QGIS 3.0.3

GRASS_setting_window

di mana Anda dapat menyesuaikan 'GRASS7 folder', cukup klik dua kali di atasnya.

Omong-omong, GRASS bekerja dengan baik pada versi QGIS 3.0.3 saya.

Taras
sumber
Dari versi manakah tangkapan layar ini? Saya telah memasang milik saya, sepertinya Anda memiliki beberapa opsi lebih banyak daripada saya!
Kantan
1
Versi QGIS 3.0.3
Taras
Anda mungkin tidak meluncurkan QGIS dengan GRASS di dalamnya
Taras
Baris untuk "folder GRASS7" tidak ada di qgis 3.6 dan 3.10.
foobarbecue
Namun, itu stabil untuk LTR (QGIS 3.4)
Taras
3

Berdasarkan pada pengaturan artikel-rumput ini, variabel lingkungan sistem operasi GISBASE ke folder instalasi GRASS mungkin memperbaiki masalah (misalnya C: \ OSGeo4W \ apps \ grass \ grass76).

Opsi pemrosesan QGIS 3.8 masih tidak mengandung opsi untuk folder GRASS.

Saya merujuk ke sistem operasi Windows dan QGIS 3.8 / GRASS 7.6.

Nicolo
sumber
memakukannya di kepala untuk saya: tidak ada folder GRASS dalam opsi pemrosesan untuk QGIS 3.8. Ada beberapa folder terkait GRASS lainnya, tetapi tidak ada yang jelas GRASS. Saya menggunakan QGIS 3.8.1. Sehubungan dengan saran Taras bahwa OP tidak meluncurkan "QGIS dengan GRASS", itu bukan pilihan bagi saya saat ini di mesin saya dan mungkin juga bukan salah satu untuk OP. Saya tahu saya memiliki opsi itu di masa lalu, saya tidak tahu apa yang saya lakukan secara berbeda ketika saya menginstal QGIS pada mesin baru ini (bagi saya) untuk melewatkannya. Menambahkan jalan lingkungan baru sepertinya berhasil bagi saya.
shea
Perbaiki untuk saya!
foobarbecue
2

Bagi saya, sepertinya beberapa variabel lingkungan hilang ketika memulai qgis "normal". Saya memperbaikinya dalam QGIS 3.4.13 dengan mengubah qgis-ltr-bin.env dan qgis-ltr.bat . Dalam versi 3.6, 3.8 (...) kedua file ini akan memiliki nama yang berbeda tetapi serupa. Jika kamu

klik kanan pada ikon mulai qgis Anda> buka jalur file

ini akan mengarahkan Anda ke ... \ OSGeo4W64 \ bin atau di mana pun Anda telah menginstal qgis. Anda akan menemukan dua file di sana. Buka dengan editor teks standar (mis. Notepad) untuk membuat perubahan:

qgis-ltr-bin.env :

  • ubah PATH ke jalur PATH yang sama yang disimpan dalam qgis-ltr-bin-g7.env (terletak di folder yang sama)
  • dari qgis-ltr-bin-g7.env tambahkan variabel GISBASE, GRASS_PROJSHARE dan GRASS_PYTHON

di qgis-ltr.bat :

  • tambahkan baris 3 dari qgis-ltr-grass7.bat (terletak di folder yang sama): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(mungkin folder rumput memiliki nama yang berbeda di versi Anda)
  • ubah PATH ke jalur PATH yang sama yang disimpan di qgis-ltr-grass7.bat (baris 7)
jannik schilling
sumber
Terima kasih sekarang dengan karya QGIS 3.5.15.
natan
1

Perbaikan yang sama seperti @Friedemann bekerja di QGIS 3.10 dengan C: \ OSGeo4W64 \ apps \ grass \ grass78 folder diubah menjadi C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

UPDATE: perbaikan perubahan nama folder sederhana memungkinkan fungsi toolbox rumput untuk membuka di QGIS 3.10. Namun, ketika dijalankan, operasi GRASS semuanya gagal dengan kesalahan berikut dalam log:

Sistem tidak mampu menemukan jalur yang ditentukan. '""' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch.

Jadi, saya mencoba mengatur variabel lingkungan Windows (menggunakan nama folder GRASS dikembalikan ke 'grass78'), seperti yang dijelaskan dalam jawaban lain, dan operasi GRASS sekarang dijalankan dengan benar di QGIS. Ini tampaknya menjadi solusi yang tepat.

serigala
sumber
Terima kasih atas masukan Anda, dapatkah Anda mengarahkan saya ke sumber daya untuk mengetahui variabel mana yang harus ditetapkan dan di mana?
Kantan
1
Saya menggunakan Windows 10, jadi di Windows Explorer: klik kanan PC ini , pilih Properties lalu Advanced system settings , lalu Advanced tab, lalu Variable Lingkungan . Klik Baru ... dan masukkan "GISBASE" di Nama Variabel, dan "C: \ OSGeo4W64 \ apps \ grass \ grass78" dalam Nilai Variabel [ CATATAN: jalur Anda mungkin berbeda tergantung pada versi QGIS dan / atau GRASS yang Anda miliki ] Klik OK dan Anda akan melihat variabel yang baru dibuat ditambahkan ke daftar.
ewolf
0

Solusi lain untuk menggunakan GRASS dalam memproses ToolBox (dengan QGIS) adalah dengan mencari di C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\dalam file Grass7Utils.pydan mengganti persyaratan:

  • grass-7.oleh grass7dalam kode yang terletak di baris 223 atau sekitar itu
  • lalu for version in ['', '7', '76', '74', '72', '71', '70']:"dengan for version in ['', '7', '78', '76', '74', '72', '71', '70']:di kode yang terletak di baris 229 atau sekitar itu.
Olivier ATHIMON
sumber