Dlaczego współczynnik az równy 1 zmienia się w 0,999998 w mojej produkcji

9

Właśnie zbudowałem model, który wykorzystuje 3D Analyst - Surface Volume. Próbuję użyć współczynnika az równego 1. Ilekroć uruchamiam model, moja tabela wyjściowa pokazuje, że zastosowano współczynnik Z wynoszący 0,999998 zamiast 1. Wiem, że jest to bardzo mała różnica, ale mimo to nieco wypacza moje wyniki. Naprawdę to, co chciałbym wiedzieć, czy istnieje dobre wytłumaczenie, dlaczego zmienia się na 0.999998, czy jest sposób, aby pozostać na 1?


Jeszcze raz dziękuję za Twój wkład. Kiedy próbowałem zmienić typ rastra, narzędzie wyszarza współczynnik Z razem i blokuje go na 0,999998. Więc ... Zgaduję, że tak naprawdę nie ma sposobu na obejście tego przy użyciu danych liczb całkowitych lub zmiennoprzecinkowych. Próbowałem nawet przekonwertować na liczbę całkowitą i użyć kalkulatora rastrowego do pomnożenia danych przez 1000, aby zachować liczby dziesiętne w postaci liczb całkowitych, ale nadal trzymałem się współczynnika z 0,999998. Nie ma kości.

GeoJohn
źródło
6
Powiedziałbym, ponieważ jest to zmiennoprzecinkowy, nie ma czegoś takiego jak 1 w liczbach zmiennoprzecinkowych - patrz en.wikipedia.org/wiki/IEEE_floating_point
Michael Stimson
3
Tak, współczynnik Z jest zmiennoprzecinkowy, ponieważ większość rastrów DEM / DSM ma zwykle zmiennoprzecinkowe 32-bitowe. Spróbuj też przekonwertować swój int raster na float, patrz resources.arcgis.com/en/help/main/10.1/index.html#//…
Michael Stimson
3
@Michael Właściwie, żadna liczba, która nie jest całkowitą wielokrotnością małej potęgi 2 (w tym mocy ujemnych), nie będzie dokładnie wyrażona w liczbach zmiennoprzecinkowych. Być może najbardziej znanym z nich będzie 0,1. Jeśli chodzi o źródło błędu w skali Z, mogę tylko zgadywać. Moje przypuszczenia skupiłyby się na możliwości, że pod maską obliczenia mogą być wykonywane przy użyciu liczb całkowitych reprezentacji elewacji, a na końcu są one konwertowane z powrotem. Być może najlepszą rzeczą jest poprawienie wyników po ich wytworzeniu: wystarczy pomnożyć wszystkie objętości przez 1 / 0,999998.
whuber
1
@Michael, zanim skorzystałem z tego innego rozwiązania, próbowałem również użyć współczynnika Z wynoszącego 1,000002, który magicznie zmieniłby się z powrotem w 0,999998 podczas działania narzędzia. Nie jestem pewien, czy robiłem coś źle, czy nie. Innymi słowy, bez względu na to, jaki współczynnik Z wprowadziłbym, narzędzie zmieniłoby go w czasie 0.999998.
GeoJohn,
4
John, czuję, że nadszedł czas, aby skontaktować się z działem wsparcia Esri i zapytać, dlaczego zawsze zmienia się na współczynnik skali 0,999998 i jak stosować współczynnik skali 1.
Michael Stimson

Odpowiedzi:

1

Muszę się zgodzić z komentarzami dotyczącymi tego, jak chcesz reprezentować ten numer. Jeśli chcesz zapisać liczbę 1 jako zmiennoprzecinkową, ArcGIS zapisał tę liczbę jako 0,9999 ... Wygląda na to, że ten argument czynnika Z jest przechowywany w ten sposób. Myślę, że nie ma sposobu, aby zapisać go jako liczbę całkowitą. W rzeczywistości 0,9999 jest równe 1.

Muszę dodać zdjęcie, które widziałem kilka dni temu. Pasuje do tego pytania. wprowadź opis zdjęcia tutaj

David_p
źródło