gdalUtils icon indicating copy to clipboard operation
gdalUtils copied to clipboard

Performance issue running gdal_translate

Open okhoma opened this issue 5 years ago • 1 comments

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.

image

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!

okhoma avatar Nov 22 '19 10:11 okhoma