동일한 Python 스크립트에서 ArcPy 및 PyGRASS 도구를 사용하십니까?


10

다른 ArcPy / ArcGIS 명령을 포함하고 GRASS 지오 프로세싱 도구와 결합하는 Python 스크립트를 작성하려고합니다.

불행히도 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-packages \ 폴더에 복사하려고했습니다. 다른 오류 메시지가 표시되지만 여전히 작동하지 않습니다.

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()

Windows 7 64 비트 시스템에서 ArcGIS 10 및 GRASS 6.4.2를 사용하고 있습니다.

답변:


6

잔디 버전의 Python은 잔디 특정 사이트 패키지에 자체 Python 바인딩을 설치했을 가능성이 큽니다. 비 이상적인 옵션 중 하나는 가져 오기 전에 다음을 추가하는 것입니다 grass.script.

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

이 작업은 $PYTHONPATH가져 오기를 검색 할 때 ArcGIS10.0 Python 설치에서 찾을 수 있도록 잔디를 일시적으로 추가하는 것입니다 .


Jay, 팁 주셔서 감사합니다. 각 폴더는 ... / etc / python / grass / script /라고 생각합니다. 특정 .py 파일 또는 모든 파일을 참조해야합니까?
Martin

1
예를 들어, 다른 폴더에서 gdal 바인딩을 추가하려면을 사용해야 python_install/site-packages/osgeo/gdal.py합니다. 않는 grass.py스크립트가 존재하는 grass디렉토리?
Jay Laura

불행히도 grass.py와 같은 명확한 이름을 가진 .py 파일이 여러 개 있습니다. 나는 그들 모두를 참조하려고했습니다. 불행히도 여전히 작동하지 않습니다. :-(
Martin

1
흠 .... 당신이 시도 할 또 하나의 아이디어 : 링크 된 게시물에 따라 번들 파이썬을 사용하지 않고 GRASS를 설치할 수있는 것처럼 보입니다. 아마도 재설치를 시도하고 GRASS가 Arc python install을 사용하도록 강요합니까? lists.osgeo.org/pipermail/grass-user/2012-June/065178.html
Jay Laura

1
나는 당신이 pygrass에 관해 물었지만 어쩌면이 게시물은 어쨌든 관심이 있습니다. gdal의 arcpy 바인딩에 대해 이야기합니다. arcgis.com/home/item.html?id=1eec30bf5fa042a5a2227b094db89441
dango
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.