Re: [GRASS-user] Problem with r. mapcalc
Sorry, my wrong conclusion Single-precision floating-point variables are able to represent integers between [-16777216, 16777216] maybe better to report in the r.out.gdal data type table On Thu, 25 Feb 2021 at 12:20, Giuseppe Amatulli wrote: > Thanks to both of you!! > Now I got it! So the > Float32, CFloat32 -3.4E38 3.4E38 range identify the maximum number > of characters in the binary format and not in the decimal format - correct? > So even if 3024784769025 fit as a decimal number in -3.4E38 3.4E38 does > not fit as binary - correct? > ...this one I did not know... I spent a few days on this. > > yes r.info gives the scientific format so it will be nice to have also > the long decimal number.. .to spot this kind of errors. > Giuseppe > > > > On Thu, 25 Feb 2021 at 11:29, Maris Nartiss wrote: > >> Markus, output of r.univar and r.info both can have scientific >> notation in their range outputs. >> >> Giuseppe, at least on my system r.mapcalc for floating point >> expressions (if one of operands is floating point) defaults to double >> (stored as DCELL). Still to be safe you can convert one of operands >> (e.g. input map with ints) to double with double() as Markus already >> pointed out. >> >> Good luck, >> Māris. >> > > > -- > Giuseppe Amatulli, Ph.D. > > Research scientist at > School of the Environment > Yale University > New Haven, CT, USA - 06511 > Tweeter: @BigDataEcology > Teaching: http://spatial-ecology.net > Work: https://environment.yale.edu/profile/giuseppe-amatulli/ > > -- Giuseppe Amatulli, Ph.D. Research scientist at School of the Environment Yale University New Haven, CT, USA - 06511 Tweeter: @BigDataEcology Teaching: http://spatial-ecology.net Work: https://environment.yale.edu/profile/giuseppe-amatulli/ ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Problem with r. mapcalc
Thanks to both of you!! Now I got it! So the Float32, CFloat32 -3.4E38 3.4E38 range identify the maximum number of characters in the binary format and not in the decimal format - correct? So even if 3024784769025 fit as a decimal number in -3.4E38 3.4E38 does not fit as binary - correct? ...this one I did not know... I spent a few days on this. yes r.info gives the scientific format so it will be nice to have also the long decimal number.. .to spot this kind of errors. Giuseppe On Thu, 25 Feb 2021 at 11:29, Maris Nartiss wrote: > Markus, output of r.univar and r.info both can have scientific > notation in their range outputs. > > Giuseppe, at least on my system r.mapcalc for floating point > expressions (if one of operands is floating point) defaults to double > (stored as DCELL). Still to be safe you can convert one of operands > (e.g. input map with ints) to double with double() as Markus already > pointed out. > > Good luck, > Māris. > -- Giuseppe Amatulli, Ph.D. Research scientist at School of the Environment Yale University New Haven, CT, USA - 06511 Tweeter: @BigDataEcology Teaching: http://spatial-ecology.net Work: https://environment.yale.edu/profile/giuseppe-amatulli/ ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Problem with r. mapcalc
Markus, output of r.univar and r.info both can have scientific notation in their range outputs. Giuseppe, at least on my system r.mapcalc for floating point expressions (if one of operands is floating point) defaults to double (stored as DCELL). Still to be safe you can convert one of operands (e.g. input map with ints) to double with double() as Markus already pointed out. Good luck, Māris. ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Problem with r. mapcalc
On Thu, Feb 25, 2021 at 2:32 PM Giuseppe Amatulli wrote: > > Thanks Maris!! > How can I force the output to be DCELL? Please try double() instead of float() in your formula. > How can I get the "Range of data:" without the scientific number notation? To which command do you refer to? Markus ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Problem with r. mapcalc
Thanks Maris!! How can I force the output to be DCELL? How can I get the "Range of data:" without the scientific number notation? thanks Giuseppe On Thu, 25 Feb 2021 at 01:11, Maris Nartiss wrote: > Hello Giuseppe, > I am too lazy to calculate binary representation of your numbers, but > your suspicion of insufficient precision of float seems to be spot-on. > > If output is set to DCELL, then the result is exactly as you would > expect. Try yourself: > r.mapcalc expression="output=basin - 241981407231.0" > Range of data:min = 1 max = 3024784769025 > > Māris. > -- Giuseppe Amatulli, Ph.D. Research scientist at School of the Environment Yale University New Haven, CT, USA - 06511 Tweeter: @BigDataEcology Teaching: http://spatial-ecology.net Work: https://environment.yale.edu/profile/giuseppe-amatulli/ ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user