У меня есть около 1000 спутниковых изображений в формате TIFF, и я хочу создать шейп-файл, который будет служить индексом для растров. Это что-то похожее на растровый каталог, но я не хочу создавать растровый каталог.
Некоторые препятствия, которые я могу заметить, это то, что изображение имеет географическую привязку, поэтому оно не имеет прямоугольной формы (я говорю об области данных).
Для пояснения я требую, чтобы многоугольник покрывал только ненулевые (или неноданные) пиксели растра, а не весь прямоугольный растр. Большинство ответов до сих пор дают прямоугольный многоугольник, который охватывает данные, а также пиксели, не относящиеся к данным.
Мой образ
Результат, предоставленный инструментами, которые я изучил (например, растровый catlog, различные Arcscripts, пользовательский скрипт Python, приведенный в одном из ответов):
Результат, который я хочу:
источник
Ответы:
В QGIS есть плагин под названием Image Boundary . Это отличный инструмент. В этом инструменте есть опция «Действительные пиксели», которая пропускает черные края спутникового изображения, например.
источник
Следующий код возьмет входной растр, получит его экстент и вставит этот экстент в класс объектов полигонов:
Вы можете запустить его в окне ArcMap Python, настроив
in_raster
иfc
сделав так:где
r_extent
находится класс объектов полигонов. Затем просто скопируйте код и запустите его. Я получаю это:источник
Для этого вы можете использовать gdaltindex: http://www.gdal.org/gdaltindex.html
Однако он все равно будет создавать прямоугольники (например, 4 + 1 точки) в той же системе отсчета, что и изображения. Но мне интересно, действительно ли это проблема: насколько велики ваши изображения?
источник
Я попробовал инструмент «Граница изображения» в QGIS, но он не работает с некоторыми растрами.
Другой вариант, который работал для меня: - 1. Преобразовать входной растр в один цифровой номер с помощью утилиты командной строки gdal_translate.
gdal_translate -co compress = lzw -b 1 -ot байт -cale 1 1 inp.tif out.tif
Это создаст растр со значениями 1 везде, где inp.tif имеет ненулевые значения.
Выходной шейп-файл будет иметь четырехугольные границы с несколькими вершинами многоугольника, следующие фактической границе изображения.
источник
Если вы заинтересованы в решении на основе сценариев, попробуйте команду gdal nearblack . Вы можете использовать флаг -white для извлечения данных, ограниченных пробелами. Вы можете полигонизировать выходные данные, чтобы генерировать непрямоугольный след растровых данных.
источник
Я считаю, что в мире ArcGIS вы можете добиться этого с помощью инструмента 3D Analyst \ Conversion \ From Raster \ Raster Domain .
источник
В ArcGIS 3D Analyst есть инструмент под названием Raster Domain, который создает многоугольник или полилинию из частей данных набора растровых данных и игнорирует ячейки NoData. Отлично сработало для меня.
источник
Вы можете создать каталог растров с назначенной пространственной привязкой, добавить каталог растров в ArcMap, а затем «Экспортировать след». Помните, что есть возможность создать каталог растров "UNMANAGED", чтобы вы не делали дубликат каждого набора растровых данных.
источник