Я новичок в R и использую растровый пакет. У меня проблема с извлечением полигонов из существующего растрового файла. Если я использую
extract(raster, poly_shape)
Функция на растре всегда создает список с данными. Что я действительно хочу, так это извлечь еще один растровый файл, который я могу снова загрузить с ArcGIS. Прочитав немного больше, я думаю, что функция обрезки - это то, что мне действительно нужно. Но когда я пытаюсь использовать эту функцию
crop(raster, poly_shape)
Я получаю эту ошибку:
Error in .local(x, y, ...) : extents do not overlap
In addition: Warning message:
In intersect(extent(x), extent(y)) : Objects do not overlap
Файлы raster и poly_shape одинаковы для обеих функций. Можете ли вы сказать мне, что здесь может быть не так? Верно ли, что функция кадрирования создает другой растр, а не список?
РЕДАКТИРОВАТЬ : функция экстента () не работает для меня. Я все еще получаю ту же ошибку. Но я уверен, что 2 набора данных перекрываются! С
extract(raster, poly_shape)
Я получаю правильные данные из него. Просто как список, а не как растр, как я хочу его иметь. Я только что загрузил наборы данных в ArcGIS раньше, и они очень хорошо подходят, поэтому я не проверял проекцию. Сейчас попробовал
projection(raster) # "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"
projection(poly_shape) # "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs"
и вы можете видеть, что прогнозы не соответствуют. Кажется, что функция извлечения способна автоматически преобразовывать файлы правильным образом. Я знаю это, потому что я сделал следующее:
- Я вырезал точную часть многоугольника, которую я извлек в R также в ArcGIS
- Я рассчитал сумму всех значений извлеченного R полигона (список)
- Я рассчитал сумму всех растровых ячеек, которые я вырезал в ArcGIS
2 имеют точно такой же результат, поэтому я думаю, что следует сделать вывод, что функция извлечения работала правильно. Теперь у меня есть 2 варианта, я думаю:
- Мне нужен способ вытащить растр из извлеченного списка снова или
- 2 набора данных (растр + poly_shape) должны использовать одну и ту же проекцию, и функция обрезки должна работать
Что бы вы предложили сделать здесь?