ฉันพยายามอย่างหนักในการสร้างไทล์สำหรับภาพความละเอียดสูงที่เรามี ภาพปัจจุบันที่เรามีคือภาพที่มีขนาดใหญ่มาก (+ 20GB) ซึ่งบันทึกเป็นไฟล์ GeoTiff
ฉันต้องการสร้างไทล์โดยใช้ยูทิลิตีบรรทัดคำสั่ง gdal2tiles จากนั้นเปิดและดูใน Cesium โดยใช้ผู้ให้บริการภาพ TMS เพื่อจัดเรียงไทล์ ใช้ gdalinfo นี่คือรายละเอียดบางส่วนของภาพ:
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
ความพยายามครั้งแรกของฉันคือการใช้ gdal_translate เพื่อกำหนดตำแหน่งภาพแล้วใช้ gdalwarp เพื่อเปลี่ยนการฉายเป็น EPSG: 3857 ตามที่ Cesium ต้องการ (ดูข้อมูลอ้างอิง 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
อย่างไรก็ตามฉันได้รับข้อผิดพลาดดังต่อไปนี้:
ข้อผิดพลาด 1: ละติจูดหรือลองจิจูดเกินขีด จำกัด
วิธีอื่นที่ฉันพยายามคือใช้ gdal2tiles โดยตรงและสร้างไทล์:
gdal2tiles.py image.tif
สิ่งนี้สร้างโฟลเดอร์ที่มีโฟลเดอร์ย่อยหนึ่งโฟลเดอร์ (ชื่อ 18) ซึ่งเป็นระดับการย่อ / ขยายที่สร้างไทล์เท่านั้น อย่างไรก็ตามภาพที่ฉันได้รับจากที่นี่ล้วนเป็น "ผิด" และ "พร่ามัว" อย่างสมบูรณ์
ตัวอย่างของหนึ่งในกระเบื้อง:
คำแนะนำสำหรับการสร้างไทล์สำหรับภาพนี้ภาพขนาดใหญ่ของพื้นที่เฉพาะโดยใช้ gdal2tiles เพื่อให้ฉันสามารถโหลดและดูใน Cesium?
ปรับปรุง
ดังนั้นหลังจากลองคำแนะนำของ @ iant ฉันใช้คำสั่งต่อไปนี้:
gdalwarp -co TILED=YES -co COMPRESS=DEFLATE -co BIGTIFF=YES -t_srs EPSG:3857 image.tif newImage.tif
คำสั่งนี้ใช้งานได้ดีอย่างสมบูรณ์จนถึงจุดสิ้นสุดที่ฉันได้รับข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด 1: TIFFFillTile: อ่านข้อผิดพลาดที่แถว 43520, col 47104; มี 35788250 ไบต์คาดว่า 37421449
ไม่แน่ใจว่าข้อผิดพลาดนี้หมายถึงอะไรฉันทิ้งไว้ครู่หนึ่งและยังมีภาพสุดท้าย "newImage.tif" ที่ผลิตโดยขั้นตอน gdalwarp ใช้สิ่งนี้ฉันเรียกว่า gdal2tiles.py
gdal2tiles.py newImage.tif
สิ่งนี้สร้างโฟลเดอร์ที่มีโฟลเดอร์ย่อย 10-18 (ไม่ใช่แค่ระดับการซูม 18 เท่าที่ฉันเคยได้รับมาก่อน) นอกจากนี้ยังสามารถอ่านได้อย่างสมบูรณ์แบบใน Cesium โดยไม่มีข้อผิดพลาดของคอนโซล แต่ภาพยังคงดูเหมือน "ผิด":
ฉันกำลังพิจารณาปัญหาของฉันอาจเป็นเพราะ @ user30184 ได้แนะนำ "... แหล่งข้อมูลไม่เหมาะสำหรับ gdal2tiles" อย่างไรก็ตามจนกระทั่งผู้ให้บริการของเราสามารถให้บางสิ่งบางอย่างแก่เราเพื่อใช้กับ gdal นี่คือทั้งหมดที่ฉันมี
ฉันกำลังพิจารณาว่าจะลบวงดนตรีวงใดวงหนึ่งออกเพื่อไม่ให้ gdal รบกวนวงสุดท้ายเป็นช่องอัลฟา ข้อเสนอแนะใด ๆ