Przygotowuję dane do włączenia do węzła geonetwork, w którym mapy są wyświetlane za pośrednictwem geoserver.
Problem polega na tym, że komórki, które nie mają danych, są wyświetlane jako geotiff w kolorze czarnym, a ja chciałbym, aby kolor był ustawiony na biały lub przezroczysty.
Korzystam z ArcView i nie mam dostępu ani do Analityka przestrzennego ani analityka 3D.
Wolałbym nie przypisywać nowego pliku sld i obecnie używam „Użyj colormap” podczas eksportowania z ArcGIS Desktop.
arcgis-desktop
geoserver
gdal
geotiff-tiff
geonetwork
enmapping
źródło
źródło
Odpowiedzi:
W koncepcji musisz dowiedzieć się, jakie wartości pikseli reprezentują komórki bez danych, a następnie edytować tabelę kolorów, aby przypisać wartości CZERWONE, ZIELONE, NIEBIESKIE (RGB) w tabeli kolorów do 255,255,255 dla tej wartości komórki.
Jeśli nie masz odpowiedniej licencji, aby to zrobić w Arc, możesz użyć narzędzia gdal_translate (jedno z narzędzi wiersza poleceń gdal / ogr)
wyeksportuj tabelę kolorów dla swojego tif jako plik XML.
gdal_translate -of VRT myImage.tif outColorTable.vrt
otwórz plik .vrt w edytorze tekstu i znajdź wpis wartości pikseli bez danych. Nie ma numeru indeksu dla wartości komórek, więc musisz odliczać do poprawnego wpisu.
edytuj tę wartość, aby być
<Entry c1="255" c2="255" c3="255" c4="255"/>
teraz utwórz nowy tif na podstawie nowej tabeli kolorów
gdal_translate outColorTable.vrt newCorrected.tif
(przykład dodany na podstawie komentarza poniżej)
Kiedy uruchamiam polecenie w punkcie 2 powyżej i otwieram plik .vrt w edytorze tekstu, widzę zawartość XML.
Część pliku zawiera linie, które wyglądają tak, wyciąłem większość z nich.
źródło
Napisałem do tego mały skrypt gdal python, gdalsetnull.py , prosty program wiersza poleceń do ustawiania określonej wartości rastrowej NODATA, bez tworzenia nowego rastra. Najłatwiejszą drogą do zainstalowania GDAL na Windowsie jest OSGeo4W . Przykłady:
Jeśli nie masz nic przeciwko narzutom przetwarzania i tworzeniu nowego obrazu zamiast edycji w miejscu, istnieje również gdal_calc, który pozwala na faktyczną zmianę wartości komórki, a nie tylko aktualizację metadanych.
Ustaw wartości od zera i poniżej na zero:
źródło
nodata
a komórką, która mówi, że jestem,0
a aplikacja decyduje, czy tę lub inną wartość należy zignorować. ArcGIS szanuje wyniki gdalsetnull.py; Nie mam doświadczenia z GeoServer.Poza tym wolisz NIE tworzyć nowego pliku SLD, oto wpis na blogu, w jaki sposób przekonwertować wewnętrzną mapę kolorów GeoTIFF na SymbologyEncoding / SLD i zdefiniować tam inny kolor. W pochodnym SLD łatwo jest dokładnie określić, które wartości mają być renderowane przy użyciu 100% przezroczystego koloru.
źródło