Saturday, 7 July 2018

How can I create a kml file from a geotiff with alpha layer


I am trying to create a kml version of a map tile using gdal_translate on a geotiff with alpha layer (link here) as follows:


gdal_translate -of KMLSUPEROVERLAY input.tif output.kml

however, the resulting kml file has a black area where the alpha layer should be - see here for a link to all the input and output files (and subdirectories produced by the operation).


How can I produce a kml file without the black area (also how I could generate only a single standalone .kml file, rather than a .kml linking a bunch of subdirectories as in the zipfile linked)?



gdalinfo on the input geotiff:


Driver: GTiff/GeoTIFF
Files: input.tif
Size is 3822, 3837
Coordinate System is:
PROJCS["WGS 84 / Pseudo-Mercator",
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["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,

AUTHORITY["EPSG","9001"]],
EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],
AUTHORITY["EPSG","3857"]]
Origin = (-13539823.138956749811769,4690722.589982722885907)
Pixel Size = (0.122995666356360,-0.122995666356360)
Metadata:
AREA_OR_POINT=Area
TIFFTAG_DOCUMENTNAME=/mnt/dd/data/1417212380_DDSPIDER/tmp-0-0.tif
TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
TIFFTAG_XRESOLUTION=72

TIFFTAG_YRESOLUTION=72
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left (-13539823.139, 4690722.590) (121d37'49.08"W, 38d47' 0.99"N)
Lower Left (-13539823.139, 4690250.656) (121d37'49.08"W, 38d46'49.09"N)
Upper Right (-13539353.050, 4690722.590) (121d37'33.88"W, 38d47' 0.99"N)
Lower Right (-13539353.050, 4690250.656) (121d37'33.88"W, 38d46'49.09"N)
Center (-13539588.094, 4690486.623) (121d37'41.48"W, 38d46'55.04"N)
Band 1 Block=3822x1 Type=Byte, ColorInterp=Red

Mask Flags: PER_DATASET ALPHA
Band 2 Block=3822x1 Type=Byte, ColorInterp=Green
Mask Flags: PER_DATASET ALPHA
Band 3 Block=3822x1 Type=Byte, ColorInterp=Blue
Mask Flags: PER_DATASET ALPHA
Band 4 Block=3822x1 Type=Byte, ColorInterp=Alpha

Answer



The default output format for the tiles is jpeg and jpeg can't be made transparent. You must create tiles in png format. The GDAL KMLSUPEROVERLAY format is for some reason undocumented but with creation option "format=png" you should be able to create png tiles which support transparency. Even there is no documentation about the driver in the GDAL web site all the configuration options can be listed with the gdalinfo command gdalinfo --format KMLSUPEROVERLAY


The command for creating tiles in png format is thus


gdal_translate -of KMLSUPEROVERLAY input.tif output.kml -co format=png


When it comes to directory of tiles, that's how KML superoverlay is planned to work https://developers.google.com/kml/articles/raster.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...