luisCartoGeo / GeoAI_Plugin

Plugin para ejecutar el modelo de META Segment Anything en QGIS
GNU General Public License v3.0
68 stars 9 forks source link

numpy.core._exceptions._ArrayMemoryError: Unable to allocate 9.53 GiB for an array with shape (121110, 84515) and data type uint8 #1

Open jaitor1 opened 1 year ago

jaitor1 commented 1 year ago

Al hacer la precarga de la imagen y modelo me da este error

Ha ocurrido un error mientras se ejecutaba el código de Python: 

numpy.core._exceptions._ArrayMemoryError: Unable to allocate 9.53 GiB for an array with shape (121110, 84515) and data type uint8 
Traceback (most recent call last):
  File "C:\Users/sigeo.agmartin/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\GeoAI_Plugin-main\dialog_precarga.py", line 160, in ejecutar
    resultado=self.cargar_imagen(imagen)
  File "C:\Users/sigeo.agmartin/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\GeoAI_Plugin-main\dialog_precarga.py", line 231, in cargar_imagen
    ba=b.ReadAsArray()
  File "C:\PROGRA~1\QGIS32~1.11\apps\Python39\lib\site-packages\osgeo\gdal.py", line 4765, in ReadAsArray
    return gdal_array.BandReadAsArray(self, xoff, yoff,
  File "C:\PROGRA~1\QGIS32~1.11\apps\Python39\lib\site-packages\osgeo\gdal_array.py", line 429, in BandReadAsArray
    buf_obj = numpy.empty([buf_ysize, buf_xsize], dtype=typecode)
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 9.53 GiB for an array with shape (121110, 84515) and data type uint8

Versión de Python: 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] 
Versión de QGIS: 3.28.11-Firenze Firenze, b02458a196 
luisCartoGeo commented 1 year ago

Jaitor1 estas utilizando la configuración con CUDA? si ese es el caso prueba con CPU. Con CUDA da ese tipo de error, es por la configuración que dejo META en el código tengo pendiente resolverlo Si devuelve un error similar con CPU probablemente estés intentando procesar una imagen muy grande, corta la imagen y realiza el proceso con una porción de ella

jaitor1 commented 1 year ago

Si, me sucede tanto con CUDA como CPU. La imagen es una ortofoto .tif extraida de google con el tamaño del municipio de Getxo, Bizkaia. Supongo que es muy grande, probaré con una porción más pequeña, aunque no me sirve para lo que quería, ya que quería seleccionar todas las piscinas del municipio. Gracias por tu enorme contribución, por cierto 👏