Saya menyiapkan data untuk dimasukkan ke dalam simpul geonetwork, di mana peta ditampilkan melalui geoserver.
Masalahnya adalah bahwa sel-sel yang memiliki "tidak ada data" ditampilkan sebagai hitam di geotiff dan saya ingin warna diatur menjadi putih atau transparan.
Saya menggunakan ArcView dan tidak memiliki akses ke Spatial Analyst atau analis 3D.
Saya lebih suka tidak harus menetapkan file sld baru dan saat ini menggunakan "Gunakan colormap" saat mengekspor dari ArcGIS Desktop.
arcgis-desktop
geoserver
gdal
geotiff-tiff
geonetwork
enmapping
sumber
sumber
Jawaban:
Dalam konsep, Anda perlu mencari tahu nilai piksel yang mewakili sel tanpa data dan kemudian mengedit tabel warna Anda untuk menetapkan nilai RED, GREEN, BLUE (RGB) dalam tabel warna menjadi 255.255.255 untuk nilai sel itu.
Jika Anda tidak memiliki lisensi yang sesuai untuk melakukan ini di Arc, Anda bisa menggunakan alat gdal_translate (salah satu alat commandline gdal / ogr)
ekspor tabel warna untuk tif Anda sebagai file XML.
gdal_translate -of VRT myImage.tif outColorTable.vrt
buka file .vrt dalam editor teks dan temukan entri untuk nilai piksel tanpa data Anda. Tidak ada nomor indeks untuk nilai sel, jadi Anda harus menghitung mundur ke entri yang benar.
edit nilai ini menjadi
<Entry c1="255" c2="255" c3="255" c4="255"/>
sekarang, buat tif baru berdasarkan tabel warna baru
gdal_translate outColorTable.vrt newCorrected.tif
(contoh ditambahkan berdasarkan komentar di bawah)
Ketika saya menjalankan perintah pada item # 2 di atas dan membuka file .vrt di editor teks, saya melihat konten XML.
Bagian dari file termasuk baris yang terlihat seperti ini, saya telah memotong sebagian besar dari mereka.
sumber
Saya menulis skrip python gdal kecil untuk ini, gdalsetnull.py , program baris perintah sederhana untuk mengatur nilai raster yang ditentukan NODATA, tanpa membuat raster baru. Rute termudah untuk menginstal GDAL di windows adalah melalui OSGeo4W . Contoh:
Jika Anda tidak keberatan memproses overhead dan membuat gambar baru daripada mengedit di tempat ada juga gdal_calc yang memungkinkan sebenarnya mengubah nilai sel daripada hanya memperbarui metadata.
Tetapkan nilai nol dan di bawah menjadi nol:
sumber
nodata
dan sel yang mengatakan saya0
dan aplikasi memutuskan apakah itu atau beberapa nilai lain harus diabaikan. ArcGIS menghormati hasil gdalsetnull.py; Saya tidak punya pengalaman dengan GeoServer.Selain itu Anda lebih suka TIDAK membuat file SLD baru, berikut adalah entri blog tentang cara mengubah colormap internal GeoTIFF ke SymbologyEncoding / SLD dan menentukan warna lain di sana. Dalam SLD turunan, mudah untuk menentukan dengan tepat nilai mana yang akan dirender dengan warna transparan 100%.
sumber