Hi Vero, i.sentinel.mask doesn't retrieve the maximum from the xml file but computes the value from the image using r.univar. The error could be due to the computational region..has the region been set correctly? Can you send the MTD_TL.xml file? I can download the image and make some tests.
Roberta ________________________________ Da: grass-user <[email protected]> per conto di Veronica Andreo <[email protected]> Inviato: martedì 28 gennaio 2020 19:57 A: grass-user <[email protected]> Oggetto: [GRASS-user] error in i.sentinel.mask: nan values in xml file Hello I try to use i.sentinel.mask but I get the following error: i.sentinel.mask blue=$blue green=$green red=$red swir11=$swir11 nir=$nir swir12=$swir12 nir8a=$nir8a cloud_mask=cloud shadow_mask=shadow mtd_file=`find $out_dir -name 'MTD_TL.xml'` ADVERTENCIA: All subsequent operations will be limited to the current computational region ADVERTENCIA: Any rescale factor has been applied --- Start computing maximum values of bands --- T21JYM_20200126T134201_B02_10m T21JYM_20200126T134201_B03_10m T21JYM_20200126T134201_B04_10m T21JYM_20200126T134201_B08_10m T21JYM_20200126T134201_B8A_20m T21JYM_20200126T134201_B11_20m T21JYM_20200126T134201_B12_20m --- Computed maximum value: dict_values([nan, nan, nan, nan, nan, nan, nan]) --- --- Statistics have been computed! --- --- Start clouds detection procedure --- --- Computing cloud mask... --- Mapa no válido <nan> Parse error ERROR: error al parsear ERROR: An error occurred while running r.mapcalc with expression: cloud_def82115 = if((((T21JYM_20200126T134201_B02_10m > (0.08*nan)) && (T21JYM_20200126T134201_B03_10m > (0.08*nan)) && (T21JYM_20200126T134201_B04_10m > (0.08*nan))) == 1) && (((T21JYM_20200126T134201_B04_10m < ((0.08*nan)*1.5)) && (T21JYM_20200126T134201_B04_10m > T21JYM_20200126T134201_B12_20m*1.3)) == 0) && (((T21JYM_20200126T134201_B11_20m < (0.1*nan)) && (T21JYM_20200126T134201_B12_20m < (0.1*nan))) == 0) && ((if(T21JYM_20200126T134201_B8A_20m == max(T21JYM_20200126T134201_B8A_20m, 2 * T21JYM_20200126T134201_B02_10m, 2 * T21JYM_20200126T134201_B03_10m, 2 * T21JYM_20200126T134201_B04_10m))) == 0) && ((T21JYM_20200126T134201_B02_10m > 0.2) == 1), 0, null()) I checked the xml file and there are a lot of nan's yes, but there are also real values. Why doesn't the max function in this part: https://github.com/OSGeo/grass-addons/blob/master/grass7/imagery/i.sentinel/i.sentinel.mask/i.sentinel.mask.py#L321 recognize them? Isn't there a way to avoid nan while computing max? Thanks much in advance Vero ps: I can provide the xml if needed.
_______________________________________________ grass-user mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/grass-user
