Skip to content

Performance issue running gdal_translate #23

@okhoma

Description

@okhoma

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions