我一直在努力为我们拥有的高分辨率图像生成图块。我们当前拥有的图像是非常大的(+ 20GB)图像,另存为GeoTiff文件。
我想使用gdal2tiles命令行实用程序生成图块,然后使用TMS图像提供程序提供图块,然后在Cesium中打开并查看它。使用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对图像进行地理配准,然后根据Cesium的要求,使用gdalwarp将投影更改为EPSG:3857(请参阅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行,列47104处读取错误;得到了35788250字节,预期是37421449
不知道该错误意味着什么,我暂时将其保留,仍然得到了gdalwarp步骤生成的最终图像“ newImage.tif”。使用这个我叫gdal2tiles.py
gdal2tiles.py newImage.tif
这样就产生了一个包含10-18子文件夹的文件夹(而不仅仅是像我之前获得的一个缩放级别18)。它也可以很好地读入Cesium,没有任何控制台错误,但是图像仍然看起来“错误”:
我正在考虑我的问题,因为@ user30184建议“ ...源数据不太适合gdal2tiles。” 但是,直到我们的提供者能够为我们提供与gdal一起使用的东西,这就是我的全部。
我正在考虑删除其中一个频段,以避免gdal干扰最后一个频段作为alpha通道。有什么建议么?