Saya memperbarui QGIS ke versi 3.6 menggunakan OSGEO4w
Ketika saya mencoba menjalankan skrip GRASS, saya mendapatkan pesan kesalahan berikut:
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
Jawaban:
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
sumber
grass
paket dengan OSGEO4w.QGIS Desktop x.x.x with GRASS x.x.x
opsi sama sekali. Saya hanya mendapatkanQGIS Desktop
opsi. Apa yang salah?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"
Saya memiliki masalah yang sama tetapi saya berhasil menyelesaikannya dengan mengganti nama folder rumput saya dari "grass76" menjadi grass-7.6.0 ".
sumber
Sehubungan dengan bagian dari pertanyaan Anda
Anda dapat mengelola jalur folder GRASS yang berfungsi
Berdasarkan versi QGIS 3.0.3
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.
sumber
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.
sumber
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 :
di qgis-ltr.bat :
call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"
(mungkin folder rumput memiliki nama yang berbeda di versi Anda)sumber
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.0UPDATE: 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:
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.
sumber
Solusi lain untuk menggunakan GRASS dalam memproses ToolBox (dengan QGIS) adalah dengan mencari di
C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\
dalam fileGrass7Utils.py
dan mengganti persyaratan:grass-7.
olehgrass7
dalam kode yang terletak di baris 223 atau sekitar itufor version in ['', '7', '76', '74', '72', '71', '70']:
"denganfor version in ['', '7', '78', '76', '74', '72', '71', '70']:
di kode yang terletak di baris 229 atau sekitar itu.sumber