Ho faticato un po 'a generare tessere per un'immagine ad alta risoluzione che abbiamo. L'immagine attuale che abbiamo è un'immagine molto grande (+ 20 GB), salvata come file GeoTiff.
Vorrei generare i riquadri utilizzando l'utilità della riga di comando gdal2tiles e quindi aprirli e visualizzarli in Cesio, utilizzando il provider di immagini TMS per fornire i riquadri. Usando gdalinfo, ecco alcuni dei dettagli dell'immagine:
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
Il mio primo tentativo è stato di utilizzare gdal_translate per georeferenziare l'immagine, quindi utilizzare gdalwarp per modificare la proiezione in EPSG: 3857, come richiesto da Cesio (vedere il riferimento 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
Tuttavia, ottengo molti dei seguenti errori:
ERRORE 1: latitudine o longitudine superate i limiti
Un altro metodo che ho provato è stato usare direttamente gdal2tiles e generare le tessere:
gdal2tiles.py image.tif
Questo ha creato una cartella con una sottocartella (etichettata 18) che è l'unico livello di zoom a cui sono state create le tessere. Tuttavia, le immagini che ottengo qui sono completamente "sbagliate" e "sfocate".
Un esempio di una delle tessere:
Qualche suggerimento per generare tessere per questa immagine grande immagine di un'area specifica usando gdal2tiles in modo che io possa caricarla e visualizzarla in Cesio?
Aggiornare
Quindi, dopo aver provato il suggerimento di @ iant, ho usato i seguenti comandi:
gdalwarp -co TILED=YES -co COMPRESS=DEFLATE -co BIGTIFF=YES -t_srs EPSG:3857 image.tif newImage.tif
Questo comando ha funzionato perfettamente fino alla fine in cui ho ricevuto il seguente errore:
ERRORE 1: TIFFFillTile: errore di lettura nella riga 43520, col 47104; ottenuto 35788250 byte, previsti 37421449
Non sono sicuro del significato di questo errore, per il momento l'ho lasciato e ho ancora un'immagine finale "newImage.tif", prodotta dal passaggio gdalwarp. Usando questo ho chiamato gdal2tiles.py
gdal2tiles.py newImage.tif
Questo ha prodotto una cartella con sottocartelle 10-18 (e non solo un livello di zoom 18 come ho ottenuto in precedenza). Si legge anche perfettamente in Cesio, senza errori di console, ma l'immagine sembra ancora "sbagliata":
Sto considerando che il mio problema potrebbe essere come ha suggerito @ user30184 "... i dati di origine non si adattano bene a gdal2tiles." Tuttavia fino a quando il nostro provider non sarà in grado di fornirci qualcosa da utilizzare con gdal, questo è tutto ciò che ho.
Stavo pensando di rimuovere forse una delle bande per evitare che Gdal interferisse sull'ultima banda come canale alfa. Eventuali suggerimenti?