r.mregression.series в GRASS 7

Ответить
Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

r.mregression.series в GRASS 7

Сообщение darsvid » 17 дек 2015, 12:51

Пробую установить расширение r.mregression.series в GRASS 7.0.2.

При попытке установки получаю
Спойлер
Downloading precompiled GRASS Addons <r.mregression.series>...
Updating addons metadata file...
ERROR: Unable to read manual page: [Errno 2] No such file or directory: 'C:\\Users\\Admin\\AppData\\Roaming\\GRASS7\\addons\\docs\\html\\r.mregression.series.html'
(Thu Dec 17 11:33:41 2015) Command finished (2 sec)
Тем не менее, расширение показывается в списке Addons, но при попытке запуска получаю следующее
Спойлер
Unable to fetch interface description for command
'r.mregression.series'.
Details:
что вполне логично, т.к. в папку, куда устанавливаются расширения, r.mregression.series.exe нет.

Как получить и заставить работать это расширение?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: r.mregression.series в GRASS 7

Сообщение Александр Мурый » 17 дек 2015, 16:14

<r.mregression.series> — Python-скрипт, поэтому .exe не будет. Качаем скрипт, например, отсюда и сохраняем куда удобно.

Скрипту для работы нужны пакеты numpy и statsmodels. В случае Windows проще всего их получить (если они ещё не стоят в системе) с помощью WinPython (они ставятся по умолчанию).
Важно: брать надо версию WinPython 2.7.10.3 (32bit), т.к. GRASS использует Python 2.* по умолчанию.

После установки WinPython надо внести в переменную среды PYTHONPATH (пути зависят от того, куда ставился WinPython):

Код: Выделить всё

C:\WinPython-32bit-2.7.10.3\python-2.7.10\Lib;C:\WinPython-32bit-2.7.10.3\python-2.7.10\Lib\site-packages;C:\WinPython-32bit-2.7.10.3\python-2.7.10\Scripts;C:\WinPython-32bit-2.7.10.3\python-2.7.10\DLLs;%PYTHONPATH%
После перезапуска GRASS запускаем скрипт: File --> Launch script.
Или через Command console:

Код: Выделить всё

cd "директория_где_лежит_скрипт"
r.mregression.series.py
Ну или просто из командной строки :)

Проверено на "standalone"-дистрибутиве GRASS 7.0.2 и на OSGeo4W на Win7. Запускается. Работает или нет — не знаю.
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: r.mregression.series в GRASS 7

Сообщение Александр Мурый » 17 дек 2015, 16:30

Вообще, numpy и так всегда ставится вместе с QGIS/GRASS. А statsmodels можно поставить и через pip + whl-файл с этого чудесного сайта.
Редактор материалов, модератор форума

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: r.mregression.series в GRASS 7

Сообщение darsvid » 13 янв 2016, 11:51

Продолжаю разбираться с установкой, т.к. не все получилось.

в наличии имеются:
Python 2.7.4 поставленный через OSGeo4W.
numpy 1.7.0 уже стоял
через pip доставила statsmodels (с зависимостями pandas и patsy) - поскольку при установке версий не указывала подозреваю, что поставились pandas 0.17.1, patsy 0.4.1, statsmodels 0.6.1 (т.е. самое актуальное из доступного)

Установка прошла без проблем, но когда пытаюсь сделать import stasmodels/ patsy/ pandas (или загрузить скрипт в GRASS) получаю одну и ту же ошибку:

Код: Выделить всё

 ValueError: numpy.ufunc has the wrong size, try recompiling
Спойлер
>>> import pandas
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\OSGeo4W\apps\Python27\lib\site-packages\pandas\__init__.py", line 7,
in <module>
from pandas import hashtable, tslib, lib
File "pandas\src\numpy.pxd", line 865, in init pandas.hashtable (pandas\hashta
ble.c:38266)
ValueError: numpy.ufunc has the wrong size, try recompiling

>>> import patsy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\OSGeo4W\apps\Python27\lib\site-packages\patsy\__init__.py", line 77,
in <module>
import patsy.highlevel
File "C:\OSGeo4W\apps\Python27\lib\site-packages\patsy\highlevel.py", line 19,
in <module>
from patsy.design_info import DesignMatrix, DesignInfo
File "C:\OSGeo4W\apps\Python27\lib\site-packages\patsy\design_info.py", line 3
1, in <module>
from patsy.util import atleast_2d_column_default
File "C:\OSGeo4W\apps\Python27\lib\site-packages\patsy\util.py", line 33, in <
module>
import pandas
File "C:\OSGeo4W\apps\Python27\lib\site-packages\pandas\__init__.py", line 7,
in <module>
from pandas import hashtable, tslib, lib
File "pandas\src\numpy.pxd", line 865, in init pandas.tslib (pandas\tslib.c:10
2688)
ValueError: numpy.ufunc has the wrong size, try recompiling

>>> import statsmodels
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\__init__.py", lin
e 8, in <module>
from .tools.sm_exceptions import (ConvergenceWarning, CacheWriteWarning,
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\tools\__init__.py
", line 1, in <module>
from .tools import add_constant, categorical
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\tools\tools.py",
line 11, in <module>
from statsmodels.datasets import webuse
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\datasets\__init__
.py", line 5, in <module>
from . import (anes96, cancer, committee, ccard, copper, cpunish, elnino,
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\datasets\anes96\_
_init__.py", line 1, in <module>
from .data import *
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\datasets\anes96\d
ata.py", line 90, in <module>
from statsmodels.datasets import utils as du
File "C:\OSGeo4W\apps\Python27\lib\site-packages\statsmodels\datasets\utils.py
", line 13, in <module>
from pandas import read_csv, DataFrame, Index
File "C:\OSGeo4W\apps\Python27\lib\site-packages\pandas\__init__.py", line 7,
in <module>
from pandas import hashtable, tslib, lib
File "pandas\src\numpy.pxd", line 865, in init pandas.lib (pandas\lib.c:85332)

ValueError: numpy.ufunc has the wrong size, try recompiling

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: r.mregression.series в GRASS 7

Сообщение Ariki » 13 янв 2016, 12:07

Похоже на несовместимость pandas с ABI старой версии numpy, лучше поставить версию посвежее.

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: r.mregression.series в GRASS 7

Сообщение darsvid » 13 янв 2016, 16:33

numpy обновлять не решилась, т.к. это может зацепить и другие инструменты, которые от него зависят.

Вместо этого воспользовалась подсказкой друга и снизила pandas до 0.14.1, все остальное (patsy, statsmodels) ставила как есть. При таком раскладе все работает, скрипт запускается (работу пока еще не проверяла)

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: r.mregression.series в GRASS 7

Сообщение darsvid » 19 янв 2016, 12:43

Вроде как все установила, настроила. Загрузила нужные растры и т.д.

При запуске получаю:
Спойлер
(Tue Jan 19 11:31:14 2016)
r.mregression.series --overwrite --verbose samples=D:\data\settings.csv result_prefix=coef.
C:\OSGeo4W\apps\Python27\lib\site-
packages\pytz\__init__.py:35: UserWarning: Module dateutil
was already imported from C:\OSGeo4W\apps\Python27\lib\site-
packages\dateutil\__init__.pyc, but
c:\osgeo4w\apps\python27\lib\site-
packages\python_dateutil-2.2-py2.7.egg is being added to
sys.path
from pkg_resources import resource_stream
C:\OSGeo4W\apps\Python27\lib\site-
packages\pytz\__init__.py:35: UserWarning: Module pytz was
already imported from C:\OSGeo4W\apps\Python27\lib\site-
packages\pytz\__init__.pyc, but c:\osgeo4w\apps\python27\lib
\site-packages\pytz-2014.2-py2.7.egg is being added to
sys.path
from pkg_resources import resource_stream
Current region rows: 3787, cols: 4658
ERROR: G_malloc: unable to allocate 16384 bytes of memory at lib/segment/setup.c:124
(Tue Jan 19 11:35:20 2016) Command finished (4 min 5 sec)
В чем может быть дело?

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: r.mregression.series в GRASS 7

Сообщение Ariki » 19 янв 2016, 12:56

Скорее всего, просто памяти не хватает. 32-битная сборка GRASS может использовать только 2 ГБ ОЗУ. Проверьте, работает ли на маленьком регионе.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: r.mregression.series в GRASS 7

Сообщение KolesovDmitry » 19 янв 2016, 20:22

darsvid писал(а): При запуске получаю:

Код: Выделить всё

...
ERROR: G_malloc: unable to allocate 16384 bytes of memory at lib/segment/setup.c:124
В чем может быть дело?
Да, нужно проверить, работает ли на маленьком регионе. И еще заодно приведите содержимое файла settings.csv на всякий случай.

Аватара пользователя
darsvid
Активный участник
Сообщения: 163
Зарегистрирован: 29 июн 2012, 12:40
Репутация: 115
Откуда: Kyїv, Ukraine
Контактная информация:

Re: r.mregression.series в GRASS 7

Сообщение darsvid » 21 янв 2016, 12:54

Да, спасибо - на маленьком все работает.

Ответить

Вернуться в «GRASS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей