Pourquoi le facteur az de 1 devient-il 0,999998 dans ma sortie

9

Je viens de construire un modèle qui utilise 3D Analyst - Surface Volume. J'essaie d'utiliser un facteur az de 1. Chaque fois que j'exécute le modèle, mon tableau de sortie montre qu'un facteur Z de 0,999998 a été utilisé au lieu de 1. Je sais que c'est une très petite différence mais même ainsi, cela biaise quelque peu mes résultats. Vraiment ce que j'aimerais savoir, y a-t-il une bonne explication de la raison pour laquelle il est changé en 0,999998 ou existe-t-il un moyen de le faire rester à 1?


Encore merci pour votre contribution. Lorsque j'ai essayé de changer le type de raster, l'outil grise le facteur z tous ensemble et le verrouille à 0,999998. Donc ... je suppose qu'il n'y a vraiment aucun moyen de contourner cela en utilisant des données entières ou à virgule flottante. J'ai même essayé de convertir en entier et d'utiliser la calculatrice raster pour multiplier les données par 1000 pour conserver les décimales sous forme d'entier, mais j'étais toujours bloqué avec le facteur z de 0,999998. Pas de dé.

GeoJohn
la source
6
Je dirais que parce que c'est une virgule flottante, il n'y a rien de tel que 1 dans float - voir en.wikipedia.org/wiki/IEEE_floating_point
Michael Stimson
3
Oui, le facteur Z est une virgule flottante, car la plupart des rasters DEM / DSM sont généralement flottants sur 32 bits. Essayez de convertir votre raster int en un flottant aussi voir resources.arcgis.com/en/help/main/10.1/index.html#//…
Michael Stimson
3
@Michael En fait, tout nombre qui n'est pas un multiple entier d'une petite puissance de 2 (y compris les puissances négatives) ne sera pas exprimé exactement en virgule flottante. Le plus important d'entre eux serait peut-être 0,1. En ce qui concerne la source de l'erreur à l'échelle z, je ne peux que deviner. Ma conjecture se concentrerait sur la possibilité que sous le capot, les calculs puissent être effectués en utilisant une représentation entière des élévations et à la fin celles-ci sont reconverties. La meilleure chose à faire est peut-être de corriger les résultats après leur production: il suffit de multiplier tous les volumes par 1 / 0,999998.
whuber
1
@Michael avant d'utiliser cette autre solution, j'ai également essayé d'utiliser un facteur z de 1,000002 qui redeviendrait comme par magie à 0,999998 pendant l'exécution de l'outil. Donc, je ne sais pas si c'était quelque chose que je faisais mal ou non. En d'autres termes, quel que soit le facteur z que j'entrerais, l'outil le changerait à 0,999998 au moment de l'exécution.
GeoJohn
4
John, je pense qu'il est temps de contacter le support Esri et de leur demander pourquoi il passe toujours au facteur d'échelle de 0,999998 et comment utiliser un facteur d'échelle de 1.
Michael Stimson

Réponses:

1

Je suis d'accord avec les commentaires, c'est sur la façon dont vous voulez représenter ce nombre. Si vous souhaitez stocker le nombre 1 en virgule flottante, ArcGIS a stocké ce nombre sous la forme 0,9999 ... Il semble que cet argument du facteur Z soit stocké de cette façon. Je pense qu'il n'y a aucun moyen de le stocker sous forme d'entier. En fait, 0,9999 est égal à 1.

Je dois ajouter une photo que j'ai vue il y a quelques jours. Cela correspond à cette question. entrez la description de l'image ici

david_p
la source