Saya telah berjuang sedikit untuk menghasilkan ubin untuk gambar resolusi tinggi yang kami miliki. Gambar saat ini yang kami miliki adalah gambar yang sangat besar (+ 20GB), disimpan sebagai file GeoTiff.
Saya ingin membuat ubin menggunakan utilitas baris perintah gdal2tiles dan kemudian membuka dan melihatnya di Cesium, menggunakan penyedia citra TMS untuk menyediakan ubin. Menggunakan gdalinfo, berikut adalah beberapa detail gambar:
Driver: GTiff/GeoTIFF
Files: image.tif
Size is 52250, 56119
Coordinate System is:
PROJCS["WGS 84 / UTM zone 35S",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",27],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",10000000],
UNIT["meters",1],
AUTHORITY["EPSG","32735"]]
Origin = (606276.000000000000000,7197873.000000000000000)
Pixel Size = (0.500000000000000,-0.500000000000000)
Metadata:
AREA_OR_POINT=Area
TIFFTAG_MAXSAMPLEVALUE=13165
TIFFTAG_MINSAMPLEVALUE=1
TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
TIFFTAG_SOFTWARE=ERDAS IMAGINE
TIFFTAG_XRESOLUTION=1
TIFFTAG_YRESOLUTION=1
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 606276.000, 7197873.000) ( 28d 3'21.59"E, 25d19'55.12"S)
Lower Left ( 606276.000, 7169813.500) ( 28d 3'29.55"E, 25d35' 7.17"S)
Upper Right ( 632401.000, 7197873.000) ( 28d18'55.92"E, 25d19'47.60"S)
Lower Right ( 632401.000, 7169813.500) ( 28d19' 5.85"E, 25d34'59.57"S)
Center ( 619338.500, 7183843.250) ( 28d11'13.23"E, 25d27'27.58"S)
Band 1 Block=512x512 Type=UInt16, ColorInterp=Gray
Band 2 Block=512x512 Type=UInt16, ColorInterp=Undefined
Band 3 Block=512x512 Type=UInt16, ColorInterp=Undefined
Band 4 Block=512x512 Type=UInt16, ColorInterp=Undefined
Upaya pertama saya adalah menggunakan gdal_translate untuk georeferensi gambar, dan kemudian menggunakan gdalwarp untuk mengubah proyeksi ke EPSG: 3857, seperti yang disyaratkan oleh Cesium (lihat referensi API)
gdal_translate -of VRT -a_srs EPSG:4326 -gcp 606275 7197875 28.055987 -25.331974 -gcp 606275 7169814 28.058200 -25.585326 -gcp 632400.5 7197875 28.31553 -25.329876 -gcp 632400.5 7169814 28.318286 -25.583209 image.tif newImage1.vrt
gdalwarp -of VRT -t_srs EPSG:3857 newImage1.vrt newImage2.vrt
Namun, saya mendapatkan banyak kesalahan berikut:
GALAT 1: lintang atau bujur melebihi batas
Metode lain yang saya coba adalah menggunakan gdal2tiles secara langsung, dan menghasilkan ubin:
gdal2tiles.py image.tif
Ini membuat folder dengan satu subfolder (berlabel 18) menjadi satu-satunya tingkat zoom tempat ubin dibuat. Namun, gambar yang saya dapatkan di sini benar-benar "salah" dan "buram".
Contoh salah satu ubin:
Ada saran untuk membuat petak untuk gambar ini gambar besar area tertentu menggunakan gdal2tiles sehingga saya dapat memuat dan melihatnya di Cesium?
Memperbarui
Jadi, setelah mencoba saran @ iant, saya menggunakan perintah berikut:
gdalwarp -co TILED=YES -co COMPRESS=DEFLATE -co BIGTIFF=YES -t_srs EPSG:3857 image.tif newImage.tif
Perintah ini bekerja dengan sangat baik sampai akhir di mana saya mendapatkan kesalahan berikut:
GALAT 1: TIFFFillTile: Kesalahan pembacaan di baris 43520, col 47104; mendapat 35788250 byte, diharapkan 37421449
Tidak yakin apa arti kesalahan ini, saya meninggalkannya untuk saat ini dan masih mendapatkan gambar terakhir "newImage.tif", yang diproduksi oleh langkah gdalwarp. Menggunakan ini saya disebut gdal2tiles.py
gdal2tiles.py newImage.tif
Ini menghasilkan folder dengan subfolder 10-18 (dan bukan hanya satu zoom level 18 seperti yang saya dapatkan sebelumnya). Ini juga berbunyi sangat baik ke Cesium, tanpa kesalahan konsol, tetapi gambar masih terlihat "salah":
Saya mempertimbangkan masalah saya mungkin karena @ user30184 telah menyarankan "... sumber data tidak cocok untuk gdal2tiles." Namun sampai penyedia kami dapat menyediakan kami sesuatu untuk digunakan dengan gdal, ini yang saya miliki.
Saya sedang mempertimbangkan mungkin menghapus salah satu band untuk menghindari Gdal untuk interperting band terakhir sebagai saluran alpha. Ada saran?
sumber
Jawaban:
Saya pikir semua yang perlu Anda lakukan adalah memproyeksikan ulang menggunakan:
dan kemudian ubin itu:
Jika file Anda sangat besar, perlu waktu.
sumber
Saya kira gambar Anda adalah beberapa produk 4-band dari Airbus DS:
http://www.intelligence-airbusds.com/en/4951-which-spectral-mode-do-i-choose
Gdal2tiles dibuat untuk memisahkan gambar visual yang umum menjadi ubin png. Gambar tersebut menggunakan 8 bit per band dan mereka memiliki satu band (skala abu-abu), 3 band (merah-hijau-biru) dari 4 band (reg-hijau-biru + alfa).
Saya akan mengatakan bahwa pertanyaan Anda sebagian besar tidak relevan karena data sumber Anda tidak cocok untuk gdal2tiles. Anda mungkin dapat mengatasi masalah langsung yang Anda miliki sekarang tetapi masih hasil akhir masih tidak akan baik jika Anda tidak memproses ulang data Anda.
Alasan untuk ubin yang tidak terlihat bagus yang Anda lampirkan pada pertanyaan Anda mungkin bahwa pita data keempat ditafsirkan sebagai saluran alpha.
sumber
gdal_translate -srcwin 20000 20000 1000 1000 original.tif sample.tif
harus melakukannya (offset besar untuk menghindari area nodata). Buka gambar kecil ini dengan QGIS dan Anda harus dapat bermain dengan pengaturan tampilan dengan cepat. Tebakan saya tentang saluran alfa mungkin salah, jika tidak hasilnya akan terlihat berwarna-warni, bukan abu-abu.