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?