Використовуєте інструменти ArcPy та PyGRASS в одному сценарії Python?


10

Я намагаюся написати скрипт Python, який включає різні команди ArcPy / ArcGIS і хочу комбінувати його з інструментами для геообробки GRASS.

На жаль, імпорт бібліотек GRASS не працює.

import grass.script as grass

закінчується помилкою:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ImportError: No module named script

Я знаю, що GRASS GIS встановлює власну версію Python. Хіба немає способу поєднати ArcGIS і GRASS GIS-установки Python? Я спробував скопіювати модуль pygrass (або що я подумав, що це може бути) у папку C: \ Python26 \ ArcGIS10.0 \ Lib \ site-пакети \. Я отримую інше повідомлення про помилку, але воно все ще не працює.

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\__init__.py", line 1, in <module>
    from core   import *
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\core.py", line 38, in <module>
    gettext.install('grasslibs', os.path.join(os.getenv("GISBASE"), 'locale'))
  File "C:\Python26\ArcGIS10.0\lib\ntpath.py", line 96, in join
    assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

Я використовую ArcGIS 10 та GRASS 6.4.2 на машині Windows 7 64 біт.

Відповіді:


6

Швидше за все, травна версія Python встановила власні прив'язки Python до специфічних для трави сайтів-пакетів. Одним із неідеальних варіантів було б до імпорту додати наступне grass.script:

import sys
sys.path.append('\path\to\grass\bindings.py')

Це тимчасово додає траву до вашої, $PYTHONPATHщоб ваша установка ArcGIS10.0 Python знаходила її під час пошуку імпорту.


Ей, Джей, дякую за пораду. Я думаю, що відповідна папка ... / etc / python / trave / script /. Чи потрібно посилатися на певний .py файл або на всі?
Мартін

1
Так, наприклад, якщо я хотів би додати прив'язки gdal з іншої папки, яку мені потрібно було б використати python_install/site-packages/osgeo/gdal.py. Чи grass.pyіснує в grassкаталозі сценарій ?
Джей Лора

Існує кілька файлів .py, на жаль, жоден із чіткою назвою, як grass.py. Я намагався посилатись на них. На жаль, це все ще не працює. :-(
Мартін

1
Гммм .... ще одна ідея, яку ви можете спробувати: Схоже, ви можете встановити GRASS без використання вбудованого пітона, як зазначено у зв’язаному дописі. Можливо, спробуйте перевстановити та змусити GRASS використовувати встановлення Arc python? list.osgeo.org/pipermail/grass-user/2012-June/065178.html
Jay Laura

1
Я тебе запитував про піграс, але, можливо, ця публікація все одно цікавить. У ній йдеться про прив’язки дуги до gdal. arcgis.com/home/item.html?id=1eec30bf5fa042a5a2227b094db89441
данго
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.