<div dir='auto'><div dir="auto"><div style="width:328px;margin:16px 0px"><div><div dir="auto"><div dir="auto">Hi,</div><div dir="auto"><br></div><div dir="auto">I have to retile about 100,000 images of size about 2667x2667 pixels for geoserver. The source images' nodata area were badly damaged due to compression so I decided to use VRT pixel function max to make the result tiles seamless.</div><div dir="auto"><br></div><div dir="auto">However, the output was quite weird -- Killed appeared and the script exited:</div><div dir="auto"><br></div><div dir="auto"><b>Building internal Index for 1 tile(s) ... finished</b></div><div dir="auto"><b>Filename: test_sum.vrt</b></div><div dir="auto"><b>File Size: 1178083x2179667x1</b></div><div dir="auto"><b>Pixel Size: 0.780877 x -0.780877</b></div><div dir="auto"><b>UL:(10841319.553138,2329047.665115)   LR:(11761257.511933,626995.763142)</b></div><div dir="auto"><b>tileWidth:   2048</b></div><div dir="auto"><b>tileHeight:  2048</b></div><div dir="auto"><b>countTilesX: 576</b></div><div dir="auto"><b>countTilesY: 1065</b></div><div dir="auto"><b>overlap:     0</b></div><div dir="auto"><b>Killed</b></div><div dir="auto"><br></div><div dir="auto">This is the command that I used:</div><div dir="auto"><br></div><div dir="auto"><b>mkdir pyramid</b></div><div dir="auto"><b>gdal_retile.py -v -r bilinear -levels 5 -ps 2048 2048 -co "TILED=YES" -co "COMPRESS=JPEG" -targetDir pyramid test_sum.vrt</b></div><div dir="auto"><br></div><div dir="auto">And the pixel function that I used:</div><div dir="auto"><br></div><div dir="auto"><b><VRTDataset rasterXSize="1178083" rasterYSize="2179667"></b></div><div dir="auto"><b>  <SRS>...</SRS></b></div><div dir="auto"><b>  <GeoTransform>...</GeoTransform></b></div><div dir="auto"><b>  <VRTRasterBand dataType="Byte" band="1" subClass="VRTDerivedRasterBand"></b></div><div dir="auto"><b>    <PixelFunctionType>max</PixelFunctionType></b></div><div dir="auto"><b>    <PixelFunctionLanguage>Python</PixelFunctionLanguage></b></div><div dir="auto"><b>    <PixelFunctionCode><![CDATA[</b></div><div dir="auto"><b>import numpy as np</b></div><div dir="auto"><b>def max(in_ar, out_ar, xoff, yoff, xsize, ysize, raster_xsize, raster_ysize, buf_radius, gt, **kwargs):</b></div><div dir="auto"><b>    np.round_(np.clip(np.max(in_ar, axis = 0),0,255), out = out_ar)</b></div><div dir="auto"><b>]]></b></div><div dir="auto"><b>    </PixelFunctionCode></b></div><div dir="auto"><b>    <ColorInterp>Gray</ColorInterp></b></div><div dir="auto"><b>    <SimpleSource>...</SimpleSource></b></div><div dir="auto"><b>    ...</b></div><div dir="auto"><b>  </VRTRasterBand></b></div><div dir="auto"><b></VRTDataset></b></div><div dir="auto"><br></div><div dir="auto">This is what I tried:</div><div dir="auto"><br></div><div dir="auto">- retile the VRT file without pixel function --> OK, but the result isn't seamless (black background of each images are visible)</div><div dir="auto">- retile smaller VRT file (just 5 images) with pixel function --> OK, but incomplete</div><div dir="auto"><br></div><div dir="auto">How can I retile the whole dataset seamlessly?</div><div dir="auto"><br></div><div dir="auto">Software used:</div><div dir="auto"><br></div><div dir="auto">GDAL 2.4.1, released 2019/03/15</div><div dir="auto">Python 2.7.15rc1</div><div dir="auto"><br></div><div dir="auto">Thank you,</div><div dir="auto">Wee.</div></div></div></div><div style="height:0px"></div></div><div style="height:144px" dir="auto"></div><br></div>