5

I read related posts, but could not find an answer.

I'm trying to perform an operation on two "light" rasters (80mg and 15mg), but get this error over and over.

Any suggestion? This operation worked a month ago. I tried to use gdal calc, but had some trouble transforming my operation. Before giving it a real try, I wanted to see if I could keep using the raster calculator...

I tried using other tools like r.mapcalc and SAGA Raster Calculator, which both lead to failure too. Can post a log if needed.

I'm using QGIS 2.18.9, Windows 7, 64bits, 12 gig RAM


I succeeded to perform the task by moving the rasters from our internal server to my desktop, and doing the calculations in a project containing only the rasters (instead of in my previous project with a bunch of other layers). I'm not sure if QGIS was clugged by the other layers, or if our server could have limited the amount of memory QGIS could use to do the task. While my problem is solved, I would be interrested in your thoughts on the matter, so I can avoid it in the futur?


Here is the GDALINFO output for each layer:

Driver: GTiff/GeoTIFF  
(I removed the path)  
Size is 3000, 3000  
Coordinate System is:  
PROJCS["NAD83_CSRS_MTM_zone_8",  
    GEOGCS["GCS_NAD83(CSRS)",  
        DATUM["NAD83_Canadian_Spatial_Reference_System",  
            SPHEROID["GRS_1980",6378137,298.257222101,  
                AUTHORITY["EPSG","7019"]],  
            AUTHORITY["EPSG","6140"]],  
        PRIMEM["Greenwich",0],  
        UNIT["degree",0.0174532925199433]],  
    PROJECTION["Transverse_Mercator"],  
    PARAMETER["latitude_of_origin",0],  
    PARAMETER["central_meridian",-73.5],  
    PARAMETER["scale_factor",0.9999],  
    PARAMETER["false_easting",304800],  
    PARAMETER["false_northing",0],  
    UNIT["metre",1,  
        AUTHORITY["EPSG","9001"]]]  
Origin = (364568.732900000177324,5037330.085799999535084)  
Pixel Size = (8.228620166666495,-6.177385666666552)  
Metadata:  
  AREA_OR_POINT=Area  
Image Structure Metadata:  
  INTERLEAVE=BAND  
Corner Coordinates:  
Upper Left  (  364568.733, 5037330.086) ( 72d44' 8.04"W, 45d28'24.02"N)  
Lower Left  (  364568.733, 5018797.929) ( 72d44'16.12"W, 45d18'23.72"N)  
Upper Right (  389254.593, 5037330.086) ( 72d25'11.60"W, 45d28'14.84"N)  
Lower Right (  389254.593, 5018797.929) ( 72d25'23.01"W, 45d18'14.60"N)  
Center      (  376911.663, 5028064.007) ( 72d34'44.69"W, 45d23'19.69"N)  
Band 1 Block=3000x1 Type=Float64, ColorInterp=Gray  
  Min=0.000 Max=0.049   
  Minimum=0.000, Maximum=0.049, Mean=0.019, StdDev=0.016  
  Metadata:  
    STATISTICS_MAXIMUM=0.0488345  
    STATISTICS_MEAN=0.018811714654941  
    STATISTICS_MINIMUM=0  
    STATISTICS_STDDEV=0.015860443805575  

And the second one:

Driver: GTiff/GeoTIFF  
Size is 2269, 1653  
Coordinate System is:  
PROJCS["NAD83_CSRS_MTM_zone_8",  
    GEOGCS["GCS_NAD83(CSRS)",  
        DATUM["NAD83_Canadian_Spatial_Reference_System",  
            SPHEROID["GRS_1980",6378137,298.257222101,  
                AUTHORITY["EPSG","7019"]],  
            TOWGS84[0,0,0,0,0,0,0],  
            AUTHORITY["EPSG","6140"]],  
        PRIMEM["Greenwich",0],  
            AUTHORITY["EPSG","8901"]],  
        UNIT["degree",0.0174532925199433]],  
            AUTHORITY["EPSG","9122"]],  
        AUTHORITY["EPSG","4617"]],  
    PROJECTION["Transverse_Mercator"],  
    PARAMETER["latitude_of_origin",0],  
    PARAMETER["central_meridian",-73.5],  
    PARAMETER["scale_factor",0.9999],  
    PARAMETER["false_easting",304800],  
    PARAMETER["false_northing",0],  
    UNIT["metre",1,  
        AUTHORITY["EPSG","9001"]]]  
    AXIS["E(X)",EAST],  
    AXIS["N(Y)",NORTH],  
    AUTHORITY["EPSG","2950"]]  
Origin = (365568.732934501371346,5036330.085800826549530)  
Pixel Size = (10.000297359099999,-10.000301976399999)  
Metadata:  
  AREA_OR_POINT=Area  
Image Structure Metadata:  
  INTERLEAVE=BAND  
Corner Coordinates:  
Upper Left  (  365568.733, 5036330.086) ( 72d43'22.45"W, 45d27'51.32"N)  
Lower Left  (  365568.733, 5019799.587) ( 72d43'29.78"W, 45d18'55.86"N)  
Upper Right (  388259.408, 5036330.086) ( 72d25'58.02"W, 45d27'42.89"N)  
Lower Right (  388259.408, 5019799.587) ( 72d26' 8.08"W, 45d18'47.47"N)  
Center      (  376914.070, 5028064.836) ( 72d34'44.57"W, 45d23'19.72"N)  
Band 1 Block=2269x1 Type=Float32, ColorInterp=Gray  
    NoData Value=-3.40282306073709653e+38  
  • what's the output from gdalinfo, and how many bands are you using in your formula? Are all rasters the same CRS / extent / resolution? The file size of raster can be misleading if the raster is compressed, as the driver will probably need to decompress the raster into memory for processing. Also, have you tried r.mapcalc (GRASS) or the SAGA raster calculator? – Steven Kay Jul 6 '17 at 22:15
  • Hi @StevenKay, I updated the infos above with your questions. All rasters have the same CRS, but not extent nor resolution. I tried r.mapcalc and SAGA raster calculator, which both lead to tool failure. Didn't find anything in the log, but I could send it if needed. Sorry for the indentation of the GDALINFO, I don't know how to keep the form on this website... – Horizen Jul 7 '17 at 14:02
1

I believe the memory failure error occurs because of the first raster format that is float64: "Band 1 Block = 3000x1 Type = Float64, ColorInterp = Gray".

The difference between different types of numbers: https://docs.scipy.org/doc/numpy-1.13.0/user/basics.types.html

float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa

float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa

There are many possibilities to be calculated, so there is insufficient memory. In most cases 8 (0-255) or 16 bits (0-65656) are sufficient.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.