[GRASS-dev] Error with parallel i.sentinel.import usage (temp_region error?)

Anika Bettge bettge at mundialis.de
Tue Dec 10 02:37:52 PST 2019


Hello all,

I try to import with GRASS78 in parallel Sentinel-2 data with "i.sentinel.import -r" (Multicore VM (32 cores -> 31 parallel processes)).

Sometimes the following error occurs (note the formatting comes from deploying in actinia):
          ...
          "99..Reprojecting <T32ULB_20181010T104019_B08_10m>...", 
          "96..100", 
          "90..99..96..100", 
          "99..93..100", 
          "99..100", 
          "96..96..99..100", 
          "99..100", 
          "Estimated target resolution for input band <T32ULC_20180702T104019_B04_10m>: 9.998178838141047", 
          "Estimated target resolution for input band <T32ULC_20181010T104019_B04_10m>: 9.998178838141047", 
          "Estimated target resolution for input band <T32ULB_20180930T104019_B08_10m>: 9.998178838136036", 
          "Estimated target resolution for input band <T32ULC_20180806T104021_B04_10m>: 9.998178838141047", 
          "Estimated target resolution for input band <T31UGT_20180806T104021_B08_10m>: 9.26372380446332", 
          "Estimated target resolution for input band <T31UGT_20181010T104019_B08_10m>: 9.26372380446332", 
          "ERROR: Region file mapset_a6335f7028114ee9989530cb55874785//WIND is empty",                               <---- here
          "ERROR: Region file mapset_a6335f7028114ee9989530cb55874785//WIND is empty", 
          "Using given resolution for input band <T32ULC_20180702T104019_B04_10m>: 10.0", 
          "Using given resolution for input band <T32ULC_20181010T104019_B04_10m>: 10.0", 
          "Using given resolution for input band <T32ULC_20180806T104021_B04_10m>: 10.0", 
          "Reprojecting <T32ULC_20181010T104019_B04_10m>...", 
          "Reprojecting <T32ULC_20180702T104019_B04_10m>...", 
          "Traceback (most recent call last):", 
          "  File \"/usr/local/grass7/scripts/r.import\", line 403, in <module>", 
          "    sys.exit(main())", 
          "  File \"/usr/local/grass7/scripts/r.import\", line 355, in main", 
          "    grass.use_temp_region()", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 1216, in use_temp_region", 
          "    run_command(\"g.region\", save=name, overwrite=True)", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 441, in run_command", 
          "    return handle_errors(returncode, returncode, args, kwargs)", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 343, in handle_errors", 
          "    returncode=returncode)", 
          "grass.exceptions.CalledModuleError: Module run None g.region --o save=tmp.r.import.19907 ended with error", 
          "Process ended with non-zero return code 1. See errors in the (error) output.", 
          "Traceback (most recent call last):", 
          "  File \"/usr/local/grass7/scripts/r.import\", line 403, in <module>", 
          "    sys.exit(main())", 
          "  File \"/usr/local/grass7/scripts/r.import\", line 355, in main", 
          "    grass.use_temp_region()", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 1216, in use_temp_region", 
          "    run_command(\"g.region\", save=name, overwrite=True)", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 441, in run_command", 
          "    return handle_errors(returncode, returncode, args, kwargs)", 
          "  File \"/usr/local/grass7/etc/python/grass/script/core.py\", line 343, in handle_errors", 
          "    returncode=returncode)", 
          "grass.exceptions.CalledModuleError: Module run None g.region --o save=tmp.r.import.20767 ended with error", 
          "Process ended with non-zero return code 1. See errors in the (error) output.", 
          "Processing <T32ULB_20180930T104019_B04_10m>...", 
          "Using given resolution for input band <T31UGT_20181010T104019_B08_10m>: 10.0", 
          "Processing <T31UGT_20180806T104021_B04_10m>...", 
          "Reprojecting <T32ULC_20180806T104021_B04_10m>...", 
          "Reprojecting <T31UGT_20181010T104019_B08_10m>...", 
          "WARNING: Projection of dataset does not appear to match current location.", 
          ...

I found out that r.import uses temp_region and that this sets an environment variable WIND_OVERRIDE:
    https://github.com/OSGeo/grass/blob/4dc36bb86fa9181259fa7f9b9472f8d3bc4e787e/lib/python/script/core.py#L1281
    os.environ['WIND_OVERRIDE'] = name 

And in parallel processing the variable is set by each process and the temp_region can be deleted to early.

Does anyone know if this is the reason of my error and how to fix this?

Best,
Anika


More information about the grass-dev mailing list