Почему в моем выводе коэффициент z 1 превращается в 0.999998

9

Только что построили модель, которая использует 3D Analyst - Surface Volume. Я пытаюсь использовать коэффициент z, равный 1. Всякий раз, когда я запускаю модель, моя выходная таблица показывает, что коэффициент Z был равен 0.999998, а не 1. Я знаю, что это очень небольшая разница, но даже при этом она несколько искажает мои результаты. На самом деле, я хотел бы знать, есть ли хорошее объяснение того, почему оно было изменено на 0.999998, или есть способ заставить его остаться на 1?


Еще раз спасибо за ваш вклад. Когда я попытался изменить тип растра, инструмент все вместе затушевывает z-фактор и фиксирует его на 0,999998. Итак ... я предполагаю, что на самом деле нет способа обойти это, используя целочисленные данные или данные с плавающей запятой Я даже пытался преобразовать в целое число и использовать растровый калькулятор, чтобы умножить данные на 1000, чтобы сохранить десятичные дроби в целочисленной форме, но все еще застрял с коэффициентом z 0,999998. Нет кости.

GeoJohn
источник
6
Я бы сказал, потому что это с плавающей запятой, нет такой вещи, как 1 в float - см. En.wikipedia.org/wiki/IEEE_floating_point
Майкл Стимсон
3
Да, Z-фактор - это число с плавающей запятой, так как большинство растров DEM / DSM обычно являются 32-разрядными. Попробуйте также преобразовать свой растр в число с плавающей точкой, см. Resources.arcgis.com/en/help/main/10.1/index.html#//…
Майкл Стимсон,
3
@Michael На самом деле, любое число, которое не является целым кратным малой степени 2 (включая отрицательные степени), не будет точно выражено в плавающей запятой. Возможно, самым выдающимся из них будет 0,1. Что касается источника ошибки Z-масштаба, я могу только догадываться. Мое предположение будет сосредоточено на том, что под капотом вычисления могут выполняться с использованием целочисленного представления высот, а в конце они преобразуются обратно. Возможно, лучше всего исправить результаты после их получения: просто умножьте все объемы на 1 / 0.999998.
whuber
1
@ Майкл, прежде чем перейти к этому другому решению, я также попытался использовать z-фактор 1.000002, который волшебным образом вернется к 0.999998 во время работы инструмента. Так что я не уверен, что я что-то делал не так или нет. Другими словами, независимо от того, какой z-фактор я бы ввел, инструмент изменит его на 0.999998 во время выполнения.
GeoJohn
4
Джон, я чувствую, что пришло время обратиться в службу поддержки Esri и спросить их, почему он всегда изменяется на 0.999998 и как использовать масштабный коэффициент 1.
Майкл Стимсон

Ответы:

1

Я должен согласиться с комментариями, о том, как вы хотите представить это число. Если вы хотите сохранить число 1 как число с плавающей запятой, ArcGIS сохранит это число как 0,9999 ... Кажется, что этот аргумент Z-фактора сохраняется таким образом. Я думаю, что нет способа сохранить его как целое число. На самом деле 0,9999 равно 1.

Я должен добавить фотографию, которую я видел несколько дней назад. Это соответствует этому вопросу. введите описание изображения здесь

david_p
источник