Проблема импорта USDA Crop Data Layer (GTIFF) в R с использованием пакета raster () - PullRequest
3 голосов
/ 24 июня 2011

Я скачал уровень данных обрезки USDA (данные доступны здесь, обратите внимание на большой файл: http://www.nass.usda.gov/research/Cropland/SARS1a.htm) и хочу импортировать его в R для анализа. Я импортировал другие большие файлы GTIFF (например, данные LANDSAT) ), но я получаю следующую ошибку при вызове функции:

r <- raster(file)

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  :
    Cannot create a RasterLayer object from this file.

где "file" - это любой из файлов .tif, предоставленных USDA (я использую региональную компиляцию Среднего Запада).

Я подозреваю, что проблема заключается в том, что GTiff - это категориальные данные (категории землепользования), а не истинные порядковые / спектральные данные, но я не понимаю, почему он будет хорошо отображаться в редакторе изображений (например, в Preview) и отображаться R / GDAL.

Спасибо за помощь.

Редактировать: если это пойдет на форум ГИС, пожалуйста, дайте мне знать. Вообще, кажется, что здесь есть подходы к решению пространственных задач, не так ли?

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Хм, переименование файла "temp.tif" или что-то подобное решило проблему. Очень странно, так как имя файла содержит только a-z, 0-9 и символ _.

Другим, у кого возникли проблемы с GDAL: рекомендуем поиграть с этим. Если кто-нибудь знает истинную корневую проблему, пожалуйста, дайте мне знать. Исходное имя файла было cdl_tim_r_ia_2010_utm15.tif, cdl_tm_r_il_2010_utm16.tif и т. Д.

Спасибо.

1 голос
/ 24 июня 2011

Мне удалось воссоздать ваше сообщение об ошибке с тем же файлом, и кажется, что GDAL требует имена путей, которые идут глубже, чем просто домашний каталог, по крайней мере на Mac. То есть путь должен был возвращаться к /Users/myname/cdl_tm_r_nv_2010_utm11.tif вместо простого ~ / cdl_tm_r_nv_2010_utm11.tif в качестве одного из примеров файла обрезки USDA. Мне удалось открыть файл с

library(raster)
r <- raster(file.choose())

, а затем просто перейти к GeoTiff.

...