Median composite ValueError: min() arg is an empty sequence

Issue #24 resolved
Fabian Thiel created an issue

When I want to calculate median (or percentile) composites (same data I shared with you in #23) it works for the Wavebands. But when a Derived index is selected, I get the following error:

Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\external\apptemplate\basetask.py", line 128, in run
    self.run_()
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\task.py", line 57, in run_
    parameters=self.parameters, callback=self.callback, verbose=1
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\script.py", line 612, in main
    processes=parameters.processes, noDataRaster=noDataRaster_, callback=callback, verbose=verbose
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\raster\rastercollection.py", line 111, in compute
    noDataRaster=noDataRaster, callback=callback, verbose=verbose
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\compute.py", line 110, in computeRasterCollection
    for ijob, result in enumerate(results):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\compute.py", line 204, in computeBlock
    bandArray = gdalBand.readAsArray(grid=args.block, resampleAlg=band.resampling.gdalCode)
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\raster\gdalband.py", line 73, in readAsArray
    resample_alg=resampleAlg
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal.py", line 2699, in ReadAsArray
    callback_data=callback_data)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 396, in BandReadAsArray
    _RaiseException()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 236, in _RaiseException
    raise RuntimeError(gdal.GetLastErrorMsg())
RuntimeError: Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 114, in singleBandPixelFunction
    buf_xsize=out_ar.shape[1], buf_ysize=out_ar.shape[0], resampling=in_resampling
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 206, in readAsArray
    resample_alg=resample_alg
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal.py", line 2699, in ReadAsArray
    callback_data=callback_data)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 396, in BandReadAsArray
    _RaiseException()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 236, in _RaiseException
    raise RuntimeError(gdal.GetLastErrorMsg())
RuntimeError: Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 178, in singleBandPixelFunction
    tmp_ar = func(args, **kwargs)
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\algorithms\bandmath.py", line 53, in bandmathPixelFunction
    print(expression, min(out_ar[out_ar!=args.out_ndv]), max(out_ar[out_ar!=args.out_ndv]))
ValueError: min() arg is an empty sequence

Log:

Started at 2020-06-25 09:38:20.931080
Parameters(root='C:\\Users\\thielf54\\Downloads\\lsdata\\level2', outputRoot='C:\\Users\\thielf54\\AppData\\Local\\Temp\\FORCE4QGIS6', outputExtension='.tif', sensors=('LND04', 'LND05', 'LND07', 'LND08'), roi=None, tilenames=None, prefereLandsatImproved=False, dateRange=None, dateSeason=None, qaiFlags=(<Qai.ValidNo: 2>, <Qai.CloudLessConfident: 4>, <Qai.CloudConfident: 5>, <Qai.CloudCirrus: 6>, <Qai.CloudShadowYes: 8>, <Qai.SubzeroYes: 18>), features=(<Feature.Nir: 8>, <Feature.Swir1: 9>, <Feature.Swir2: 10>, <Feature.Ndvi: 11>), products=(<Product.Median: 3>,), percentiles=(0, 5, 25, 50, 75, 95, 100), timeseries=False, binning=<BinningOption.No: 2>, binStart=DayOfYear(month=1, day=1), binDays=10, bins=None, resolution=Resolution(x=30.0, y=30.0), resamplingBoa=<Resampling.Average: 'average'>, resamplingQai=<Resampling.Mode: 'mode'>, relativeToVRT=False, open=<OpenOption.Mosaic: 1>, processes=1, blocksize=GridShape(y=100, x=15000))
Parse Level 2 folder
Parse X0068_Y0038
Parse X0069_Y0038
Parse X0070_Y0038
Prepare QAI masking
RasterCollection.map(<function mask at 0x000001F7D84322F0>) 0%..2%..5%..7%..9%..11%..14%..16%..18%..20%..23%..25%..27%..30%..32%..34%..36%..39%..41%..43%..45%..48%..50%..52%..55%..57%..59%..61%..64%..66%..68%..70%..73%..75%..77%..80%..82%..84%..86%..89%..91%..93%..95%..98%..100%..Done
Prepare features
RasterCollection.map(<function addNdvi at 0x000001F7D859AAE8>) 0%..2%..5%..7%..9%..11%..14%..16%..18%..20%..23%..25%..27%..30%..32%..34%..36%..39%..41%..43%..45%..48%..50%..52%..55%..57%..59%..61%..64%..66%..68%..70%..73%..75%..77%..80%..82%..84%..86%..89%..91%..93%..95%..98%..100%..Done
Exclude unwanted wavebands
RasterCollection.map(<function Raster.select at 0x000001F7D85616A8>) 0%..2%..5%..7%..9%..11%..14%..16%..18%..20%..23%..25%..27%..30%..32%..34%..36%..39%..41%..43%..45%..48%..50%..52%..55%..57%..59%..61%..64%..66%..68%..70%..73%..75%..77%..80%..82%..84%..86%..89%..91%..93%..95%..98%..100%..Done
Prepare composites
RasterCollection.reduce(<function medianComposite at 0x000001F7D844F950>) ..Done
Start at 2020-06-25T09:38:30..0%..3%..7%..10%..13%..17%..Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\external\apptemplate\basetask.py", line 128, in run
    self.run_()
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\task.py", line 57, in run_
    parameters=self.parameters, callback=self.callback, verbose=1
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\force4qgis\script.py", line 612, in main
    processes=parameters.processes, noDataRaster=noDataRaster_, callback=callback, verbose=verbose
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\raster\rastercollection.py", line 111, in compute
    noDataRaster=noDataRaster, callback=callback, verbose=verbose
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\compute.py", line 110, in computeRasterCollection
    for ijob, result in enumerate(results):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\compute.py", line 204, in computeBlock
    bandArray = gdalBand.readAsArray(grid=args.block, resampleAlg=band.resampling.gdalCode)
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\raster\gdalband.py", line 73, in readAsArray
    resample_alg=resampleAlg
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal.py", line 2699, in ReadAsArray
    callback_data=callback_data)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 396, in BandReadAsArray
    _RaiseException()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 236, in _RaiseException
    raise RuntimeError(gdal.GetLastErrorMsg())
RuntimeError: Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 114, in singleBandPixelFunction
    buf_xsize=out_ar.shape[1], buf_ysize=out_ar.shape[0], resampling=in_resampling
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 206, in readAsArray
    resample_alg=resample_alg
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal.py", line 2699, in ReadAsArray
    callback_data=callback_data)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 396, in BandReadAsArray
    _RaiseException()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\osgeo\gdal_array.py", line 236, in _RaiseException
    raise RuntimeError(gdal.GetLastErrorMsg())
RuntimeError: Traceback (most recent call last):
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\core\delayed\singlebandpixelfunction.py", line 178, in singleBandPixelFunction
    tmp_ar = func(args, **kwargs)
  File "C:/Users/thielf54/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\force4qgis\hubforce\algorithms\bandmath.py", line 53, in bandmathPixelFunction
    print(expression, min(out_ar[out_ar!=args.out_ndv]), max(out_ar[out_ar!=args.out_ndv]))
ValueError: min() arg is an empty sequence

Comments (6)

  1. Log in to comment