우리가 가지고있는 고해상도 이미지의 타일을 생성하기 위해 약간의 노력을 기울였습니다. 현재 가지고있는 이미지는 GeoTiff 파일로 저장된 매우 큰 (+ 20GB) 이미지입니다.
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를 사용하여 이미지를 지리 참조한 다음 gdalwarp를 사용하여 Cesium의 요구에 따라 투영을 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, col 47104에서 읽기 오류; 35788250 바이트를 얻었으며 37421449를 예상했습니다.
이 오류가 무엇을 의미하는지 잘 모르겠지만, 잠시 동안 그대로두고 gdalwarp 단계에서 생성 한 최종 이미지 "newImage.tif"를 얻었습니다. 이것을 사용하여 gdal2tiles.py라고했습니다.
gdal2tiles.py newImage.tif
이렇게하면 하위 폴더 10-18이있는 폴더가 생성되었습니다 (이전에 얻은 것처럼 하나의 확대 / 축소 수준 18이 아닙니다). 또한 콘솔 오류없이 세슘으로 완벽하게 읽지 만 이미지는 여전히 "잘못된"것처럼 보입니다.
@ user30184가 "... source 데이터가 gdal2tiles에 적합하지 않다"고 제안한 것처럼 내 문제가 될 수 있다고 생각합니다. 그러나 제공자가 gdal과 함께 사용할 무언가를 제공 할 수있을 때까지 이것이 전부입니다.
마지막 밴드를 알파 채널로 방해하는 gdal을 피하기 위해 아마도 밴드 중 하나를 제거하는 것을 고려하고있었습니다. 어떤 제안?