gdalUtils
gdalUtils copied to clipboard
Performance issue running gdal_translate
The issue that I discovered is that when I run gdal_translate() multiple times in the loop, I see that about half of the time is spent in gdal_setinstallation() method. Despite the fact that I explicitly call gdal_setinstallation() on the beginning of my script.
I think that the problem may be caused by the following code, when gdal_installation() is called no matter if gdalUtils_gdalPath variable was set or not (line 539 of gdal_setInstallation.R):
if(is.null(getOption("gdalUtils_gdalPath")))
{
rescan=TRUE
}
gdal_installation_out <- gdal_installation(search_path=search_path,rescan=rescan,ignore.full_scan=ignore.full_scan,
verbose=verbose)
options(gdalUtils_gdalPath=gdal_installation_out)
if(is.null(getOption("gdalUtils_gdalPath")))
{
...
}
I believe, calculation of gdal_installation_out should go into the first brackets like follows:
if(is.null(getOption("gdalUtils_gdalPath")))
{
rescan=TRUE
gdal_installation_out <- gdal_installation(search_path=search_path,rescan=rescan,ignore.full_scan=ignore.full_scan,
verbose=verbose)
options(gdalUtils_gdalPath=gdal_installation_out)
}
if(is.null(getOption("gdalUtils_gdalPath")))
{
...
}
This way we will not spend time recalculating and resetting gdalUtils_gdalPath when we have it already set. It should save us almost 50% of processing time!