Создание цветовых карт GeoTIFF
Я создаю 2D статистические карты и хотел бы также создавать и сохранять цветовые карты изображения. Изображение среднего размера имеет тип данных float32. Следующий пример изменен из онлайн-источников:
with rasterio.open(name,'w',**profile) as dst:
dst.write(data.astype(np.float32), 1)
dst.write_colormap(
1, {
0: (255, 0, 0, 255),
255: (0, 0, 255, 255) })
cmap = dst.colormap(1)
print (cmp)
Не работает, и вызов colormap(1) возвращает таблицу NULL и завершает программу.
Изменяя тип данных на uint8 или uint16, он работает по моде, но я не смог найти примеров того, как изменить таблицы цветов и карты для типов данных с плавающей запятой и целых чисел.
Может ли кто-нибудь предоставить фрагмент, показывающий, как создавать различные цветовые карты, цветовые переходы и / или цветовые поддоны для изображений с плавающей запятой? Хотя в настоящее время я использую растерио, я также могу конвертировать этот GDAL, если кто-то может опубликовать решение.
2 ответа
Причина сбоя вашей программы почти наверняка связана с тем, что вы читаете файл, пока он еще открыт. Формат и синтаксис вашей таблицы цветов верны. Следующий код выйдет из первого диспетчера контекста, чтобы закрыть файл, а затем снова открыть. Пожалуйста, попробуй:
with rasterio.open(name,'w',**profile) as dst:
dst.write(data.astype(np.float32), 1)
dst.write_colormap(
1, {
0: (255, 0, 0, 255),
255: (0, 0, 255, 255) })
with rasterio.open(name) as dst:
cmap = dst.colormap(1)
print (cmp)
На данный момент невозможно сохранить таблицу цветов для значений с плавающей запятой, ни с, ни с
gdal
.
write_colormap
метод rasterio предназначен только для
uint8
тип данных (
uint16
можно использовать, но значения выше 255 пропускаются; проверено с
rasterio
1.2.10). Возможный способ хранения информации о цвете, вероятно, заключается в предоставлении внешнего
.sld
файл стилей и определить диапазоны значений для значений с плавающей запятой. Если вы используете QGIS для визуализации, вы можете добавить
.qld
файл с тем же именем, что и у растра, который будет загружен и интерпретирован при открытии файла в QGIS.