#r #raster #mask #extent
Вопрос:
У меня есть два растра с одинаковым разрешением (10 м), но разница в том, что я создал первый растр из векторного файла (используя rasterize
функцию), а другой растр является результатом моей классификации. Я хочу применить растровую маску, полученную из вектора, к результату классификации. Однако, когда я проверяю протяженность двух растров, я обнаруживаю, что они имеют немного разную протяженность (около 3 м), хотя у них одинаковая проекция (когда я проверяю crs()
оба растра, они точно совпадают). Кроме того, количество строк и столбцов одинаково для обеих сеток. Когда я создаю маску, я получаю сообщение об ошибке Ошибка в compareRaster(x, маска) : разная степень. Знаете ли вы, как я могу выровнять оба растра в одной и той же начальной точке?
Ответ №1:
По моему опыту, эта проблема может быть решена с помощью функции resample()-пакета растровых изображений для пересчета маски в пространственные свойства изображения, которое вы хотите замаскировать.
mask_new lt;- resample(mask, img, method="ngb")
Будьте осторожны, чтобы использовать метод интерполяции, который не изменяет информацию в файле маски. Например, ближайший сосед должен работать лучше, чем стандартный «билинейный» в большинстве случаев.
Если это не решит проблему, вы можете дополнительно попробовать поиграть с параметром «допуск», используя функцию rasterOptions()-пакета растров.
Комментарии:
1. Большое вам спасибо, сейчас это работает (с использованием повторной выборки), без ошибок. И когда я проверяю экстент обоих растров, они точно совпадают. Я не знал, что это так просто!