Як я можу змінити колір "без даних" геотифа на білий / прозорий, а не чорний?


17

Я готую дані для включення до вузла геомережі, де карти відображаються через геосервер.

Проблема полягає в тому, що клітини, у яких "немає даних", відображаються як геотифи як чорні, і я хотів би, щоб колір був встановлений на білий або прозорий.

Я використовую ArcView і не маю доступу ні до просторового аналітика, ні до 3D-аналітика.

Я вважаю за краще не призначати новий файл sld і зараз використовую "Використовувати кольорову карту" під час експорту з ArcGIS Desktop.


Відповіді:


7

У принципі вам потрібно розібратися, які значення пікселів представляють комірки без даних, а потім відредагувати таблицю кольорів, щоб призначити значенням ЧЕРВЕНОГО, ЗЕЛЕНОГО, СВІТКОГО (RGB) у таблиці кольорів 255,255,255 для цього значення комірки.

Якщо у вас немає відповідної ліцензії для цього в Arc, ви можете використовувати інструмент gdal_translate (один із інструментів командного рядка gdal / ogr)

  1. експортуйте таблицю кольорів для вашого tif у файл XML.
    gdal_translate -of VRT myImage.tif outColorTable.vrt

  2. відкрийте файл .vrt у текстовому редакторі та знайдіть запис для значення пікселів без даних. Не існує індексного числа для значень комірок, тому вам доведеться відлічити правильний запис.

  3. відредагуйте це значення <Entry c1="255" c2="255" c3="255" c4="255"/>

  4. тепер створіть новий тиф на основі нової таблиці кольорів
    gdal_translate outColorTable.vrt newCorrected.tif

(приклад доданий на основі коментаря нижче)

Коли я запускаю команду в пункті 2 вище та відкриваю файл .vrt у текстовому редакторі, я бачу вміст XML.

Частина файлу містить рядки, які виглядають так, я більшість з них вирвав.


Привіт, DavidF. Дякую за відповідь, яку я намагався виконати з FWTools (трохи простіше орієнтуватися на початківця). Але у мене виникають проблеми з пошуком «значення» у файлі vrt, тому що коли я відкриваю файл із блокнотом, вони тепер видно слова, і він складається переважно з випадкового (кодового) тексту. Я щось роблю не так? - будь-яка додаткова допомога дуже вдячна.
охоплює

@ user1106 - Спробуйте вказані вище команди ще раз, у мене залишився варіант формату виводу. Це має працювати зараз!
DavidF

9

Я написав невеликий скрипт gdal python для цього, gdalsetnull.py , просту програму командного рядка для встановлення заданого растрового значення NODATA, не створюючи нового растру. Найпростіший шлях до встановлення GDAL на Windows - це через OSGeo4W . Приклади:

python gdalsetnull.py foobar.tif 0            # pure black is transparent
python gdalsetnull.py foobar.tif 0 255 0      # pure green is
python gdalsetnull.py foobar.tif 50 23 77 100 # arbitrary value in 4 band image

Якщо ви не заперечуєте над обробкою накладних даних та створенням нового зображення, а не редагуванням на місці, є також gdal_calc, який дозволяє фактично змінювати значення комірок, а не просто оновлювати метадані.

Встановіть значення нуля і нижче для нуля:

gdal_calc.py -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0

Чудово виконаний Метт!
DavidF

Це справді відповідає на питання? Ваш (приємний!) Сценарій встановить колір NULL, але, мабуть, це все-таки специфічне для WMS-впровадження, в якому кольорі (скажімо, прозорий - це також колір) відображаються значення NODATA.
alfonx

@alfonx, так, є різниця між коміркою, яка записана як, nodataі клітиною, яка каже, що я є,0 і програма вирішує, чи слід ігнорувати це чи якесь інше значення. ArcGIS поважає результати gdalsetnull.py; Я не маю досвіду роботи з GeoServer.
matt wilkie

1
Схоже, його перемістили знову, зараз за адресою: github.com/maphew/maphew-gcode-archive/blob/…
Стів Беннетт

посилання виправлено, дякую за увагу! @SteveBennett зараз слід видалити ці мета-коментарі.
matt wilkie

2

Крім того, що ви вважали за краще НЕ створювати новий файл SLD, ось запис у блозі про те, як перетворити внутрішню кольорову карту GeoTIFF в SymbologyEncoding / SLD та визначити там інший колір. У похідному SLD легко точно визначити, які значення відображатимуть зі 100% прозорим кольором.


у вашому тексті немає посилання.
matt wilkie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.