Как использовать растровый пакет в Python с rpy2 - PullRequest
0 голосов
/ 28 октября 2019

Работа с R в Python с использованием rpy2 в Windows 7. Мне нужно открыть несколько растров как RasterLayer, используя функцию raster () из пакета растров. Мне удается установить пакет, но я не могу использовать его функцию.

Я устанавливаю нужные мне пакеты (rgdal, sp, raster, lidR, io), используя

utils.install_packages(StrVector(names_to_install))

names_to_install это список пакетов, которые еще не установлены. Это прекрасно работает.

Я знаю, как попробовать "базовые" функции, такие как sum, и это работает:

import rpy2.robjects as robjects
function_sum = robjects.r['sum']

Но похоже, что то же самое не работает с растровой функциейиз пакета растра:

function_raster = robjects.r['raster']

, поскольку я получаю сообщение об ошибке:

LookupError: 'raster' not found

Я также попытался выполнить следующее:

raster_package = importr('raster')

с намерениемзапустить следующий и загрузить мой растровый файл:

raster_package.raster(my_raster_file)

, но первая строка (импорт ('растр')) вызывает сбой Python, и я получаю ошибку:

Process finished with exit code -1073741819 (0xC0000005)

Этого не происходит с другими загруженными пакетами, такими как rgdal, но с растровым пакетом и пакетом lidR я получаю сообщение об ошибке.

Я посмотрел эту ошибку, похоже, нарушение прав доступа, но я неНе знаю, что я могу с этим поделать и почему это происходит только с определенными пакетами.

Я ожидаю, что смогу вызвать функцию растра из растра пакета.

Редактировать

Я пробовал на компьютере с Windows 10 иошибка больше не отображается при запуске

raster_package = importr('raster')

Тем не менее было бы неплохо узнать, в чем проблема с Windows 7 и есть ли какое-либо решение.

1 Ответ

0 голосов
/ 02 ноября 2019

rpy2 в настоящее время не поддерживает Windows. Это не окончательная ситуация, большая часть того, что, вероятно, необходимо, это вклады, чтобы завершить это: https://github.com/rpy2/rpy2/blob/master/rpy2/rinterface_lib/embedded_mswin.py

...