Формулы функций преобразования
Доступно с лицензией Spatial Analyst.
В этом разделе будут описаны формулы, используемые для функций преобразования в инструменте Пересчет по функции. Формулы функции преобразования представлены в виде выражений Алгебры карт Spatial Analyst.
Для каждой функции преобразования определяется общая формула. По умолчанию общая формула изменяется для соответствия минимуму (lowerThreshold) и максимуму (upperThreshold) входного набора данных. Как определяются параметры по умолчанию, также показано ниже.
Используя общую формулу, можно задать любое количество функциональных кривых и захватить любую часть функциональной кривой. В версии формулы по умолчанию для функции существует только одна кривая, которая соответствует минимуму и максимуму входного набора данных. В результате, в дополнение к применению линейного масштабирования преобразованных значений, данные, представленные в разных единицах измерения, таких как градусы Цельсия или Фаренгейта, будут давать одинаковые выходные оценочные значения.
Применение функции преобразования
В общем виде шаги для применения функции преобразования заключаются в следующем:
Задание входного набора данных и параметров функции.
Применение формулы преобразования.
Линейное приведение преобразованных значений к оценочной шкале.
Уравнение линейного преобразования, используемое для приведения преобразованных значений к шкале оценки из шага 3 выше, выглядит следующим образом.
\(ScaledY = fromScale + (Y - min(Y)) * r\)
где:
\(Y = F(In)\), что является преобразованным значением по формуле \(F\), которая показана в следующих общих формах, где \(In\) — входное значение,
\(r\) — результат \(\Large \frac {(toScale - fromScale)}{(max(Y) - min(Y))}\)
\(min(Y)\) — минимальное значение \(Y\)
\(max(Y)\) — максимальное значение \(Y\)
\(fromScale\) — минимальное значение шкалы оценки (например, 1)
\(toScale\) — максимальное значение шкалы оценки (например, 10)
Экспоненциальная
Ниже приведены формулы и значения по умолчанию для функции преобразования Экспоненциальная.
Общая форма
Общая форма этой формулы выглядит так.
\(Exp((In – inShift) * baseFactor)\)
где:
\(In\) — входное значение
\(inShift\) — значение, вычитаемое из входных значений
\(baseFactor\) — множитель для смещенных входных значений, который определяет, насколько резко увеличивается экспоненциальная функция
Значения по умолчанию
Значения по умолчанию \(inShift\) и \(baseFactor\) вычисляются так.
\(inShift = Con(toScale > fromScale, A, B)\)
и
\(baseFactor = Con(toScale > fromScale, C, D)\)
где:
\(A = \Large \frac {(minIn * Ln(toScale) - maxIn * Ln(fromScale))}{(Ln(toScale) - Ln(fromScale))}\)
\(B = \Large \frac {(minIn * Ln(fromScale) - maxIn * Ln(toScale))}{(Ln(fromScale) - Ln(toScale))}\)
\(C = \Large \frac {(Ln(toScale) - Ln(fromScale))}{(maxIn - minIn)}\)
\(D = \Large \frac {(Ln(fromScale) - Ln(toScale))}{(maxIn - minIn)}\)
\(Ln\) — логарифм значения по основанию e
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Гауссова
Ниже приведены формулы и значения по умолчанию для функции преобразования Гауссова.
Общая форма
Общая форма этой формулы выглядит так.
\(Exp(-Spread * Square(In - MidPoint))\)
где:
\(Spread\) — параметр разброса, который управляет крутизной спада от средней точки
\(In\) — входное значение
\(MidPoint\) — параметр средней точки, который определяет центр гауссовой кривой
Значения по умолчанию
Значения по умолчанию \(Spread\) и \(MidPoint\) вычисляются так.
\(Spread = Ln(10) * 4 / Pow(MidPoint - minIn, 2)\)
и
\(MidPoint = (maxIn + minIn) / 2\)
где:
\(Ln(10)\) — логарифм 10 с основанием e
\(Pow(MidPoint - minIn, 2)\) — значение \(MidPoint - minIn\) в степени 2
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Большие
Ниже приведены формулы и значения по умолчанию для функции преобразования Большие.
Общая форма
Общая форма этой формулы выглядит так.
\(1.0 / (1.0 + Pow(In / MidPoint, - Spread))\)
где:
\(In\) — входное значение
\(MidPoint\) — параметр средней точки, который определяет точку перехода функции
\(Spread\) — параметр разброса, который контролирует, как быстро возрастает и убывает предпочтение
Значения по умолчанию
Значения по умолчанию \(Spread\) и \(MidPoint\) вычисляются так.
\(Spread = 5\)
и
\(MidPoint = (maxIn + minIn) / 2\)
где:
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Линейная
Ниже приведены формулы и значения по умолчанию для функции преобразования Линейная.
Общая форма
Ниже приведены общие формы формулы в зависимости от типа уклона:
Положительный уклон (минимум < максимум):
\(Con(In < Min, 0, Con(In > Max, 1, (In - Min) / Diff))\)
Отрицательный уклон (минимум > максимум):
\(Con(In > Min, 0, Con(In < Max, 1, (In - Min) / Diff))\)
где:
\(In\) — входное значение
\(Min\) — заданный минимум, который устанавливает первую точку, через которую должна пройти линейная функция
\(Max\) — заданный максимум, который устанавливает вторую точку, через которую должна пройти линейная функция
\(Diff\) равно \(Max - Min\)
Значения по умолчанию
Значения по умолчанию \(Min\) и \(Max\) вычисляются так.
\(Min = minIn\)
и
\(Max = maxIn\)
где:
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Логарифм
Ниже приведены формулы и значения по умолчанию для функции преобразования Логарифм.
Общая форма
Общая форма этой формулы выглядит так.
\(Ln((In – inShift) * baseFactor)\)
где:
\(In\) — входное значение
\(InShift\) — значение, вычитаемое из входных значений
\(baseFactor\) — множитель сдвинутых входных значений, который управляет увеличением логарифмической функции
Значения по умолчанию
Значения по умолчанию \(inShift\) и \(baseFactor\) вычисляются так.
\(inShift = Con(toScale > fromScale, A, B)\)
и
\(baseFactor = Con(toScale > fromScale, C, D)\)
где:
\(A = \Large \frac {(minIn * Exp(toScale) - maxIn * Exp(fromScale))}{(Exp(toScale) - Exp(fromScale))}\)
\(B = \Large \frac {(minIn * Exp(fromScale) - maxIn * Exp(toScale))}{(Exp(fromScale) - Exp(toScale))}\)
\(C = \Large \frac {(Exp(toScale) - Exp(fromScale))}{(maxIn - minIn)}\)
\(D = \Large \frac {(Exp(fromScale) - Exp(toScale))}{(maxIn - minIn)}\)
\(Exp\) — экспонента значения с основанием e
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Логистическое снижение
Ниже приведены формулы для функции преобразования Логистическое снижение.
Общая форма
Общая форма этой формулы выглядит так.
\(C / (1 + A * Exp((In – Min) * B))\)
Определения параметров формулы такие же, как в LogisticGrowth.
Примечание:
В уравнении LogisticGrowth вычисления Exponential определяются из отрицательного значения для вычисления экспоненты: Exp(- (In — Min) * B).
Логистический рост
Ниже приведены формулы и значения по умолчанию для функции преобразования Логистический рост.
Общая форма
Общая форма этой формулы выглядит так.
\(C / (1 + A * Exp( - (In – Min) * B))\)
где:
\(Min\) — заданный минимум, который контролирует начальную точку логистического роста
\(C\) — емкость или верхняя горизонтальная асимптота
\(A\) определяет перехват, когда \(In = Min\)
\(B\) определяет основание экспоненциальной функции
Exp
Значения по умолчанию
Значения по умолчанию \(C\), \(A\) и \(B\) определяются так.
\(C = 100\)
\(A = C / yInterceptPercent - 1\)
\(B = \Large \frac {Ln(A)}{(0.5 * (Max + Min) - Min)}\)
где:
\(yInterceptPercent\) — процент перехвата y, деленный на \(C\), который установлен на 1 для
LogisticGrowthи на 99 дляLogisticDecayпо умолчанию\(Min\) — заданный минимум, который по умолчанию установлен на минимальное значение входных данных
\(Max\) — заданный максимум, который по умолчанию установлен на максимальное значение входных данных
\(Ln(A)\) — логарифм \(A\) по основанию e
\(0.5 * (Max + Min)\) — координата x точки перегиба \(y = C / 2\), которая создает точку перегиба в середине \(Min\) и \(Max\)
MSLarge
Ниже приведены формулы и значения по умолчанию для функции преобразования MSLarge.
Общая форма
Общая форма этой формулы выглядит так.
\(Con(In > nMeans, 1 - (nStdv / (In - nMeans + nStdv)), 0)\)
где:
\(In\) — входное значение
\(nMeans\) равно \(meanMultiplier\) * среднее
\(nStdv\) равно \(STDMultiplier\) * std, где std относится к среднеквадратическому отклонению среди всех значений
Значения по умолчанию
Для meanMultiplier и STDMultiplier по умолчанию задается 1.
MSSmall
Ниже приведены формулы и значения по умолчанию для функции преобразования MSSmall.
Общая форма
Общая форма этой формулы выглядит так.
\(Con(In > nMeans, nStdv / (In - nMeans + nStdv), 1)\)
где:
\(In\) — входное значение
\(nMeans\) равно
meanMultiplier* среднее\(nStdv\) равно
STDMultiplier* std, где std относится к среднеквадратическому отклонению среди всех значений
Значения по умолчанию
Для meanMultiplier и STDMultiplier по умолчанию задается 1.
Ближайшие
Ниже приведены формулы и значения по умолчанию для функции преобразования Ближайшие.
Общая форма
Общая форма этой формулы выглядит так.
\(1.0 / (1.0 + Spread * Pow(In - MidPoint, 2))\)
где:
\(In\) — входное значение
\(Spread\) — параметр разброса, который управляет крутизной спада от средней точки
\(MidPoint\) — параметр средней точки, который определяет центр кривой
Значения по умолчанию
Значения по умолчанию \(Spread\) и \(MidPoint\) вычисляются так.
\(Spread = 36 / Pow(MidPoint - minIn, 2)\)
и
\(MidPoint = (maxIn + minIn) / 2\)
где:
\(Pow(MidPoint - minIn, 2)\) — значение \(MidPoint - minIn\) в степени 2
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Степень
Ниже приведены формулы и значения по умолчанию для функции преобразования Степень.
Общая форма
Общая форма этой формулы выглядит так.
\(Pow(In – inShift, Exponent)\)
где:
\(In\) — входное значение
\(inShift\) — значение, вычитаемое из входных значений
\(Exponent\) — экспонента, к которой повышается функция
Значения по умолчанию
Значения по умолчанию \(inShift\) и \(Exponent\) вычисляются так.
\(inShift = Con(toScale > fromScale, A, B)\)
где:
\(A = Con(fromScale == 1, minIn - 1, minIn)\)
\(B = Con(toScale == 1, minIn - 1, minIn)\)
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
и
\(Exponent = Con(toScale > fromScale, C, D)\)
где:
\(C = Con(fromScale == 0, C1, Con(fromScale == 1, C2, 2))\)
\(C1 = Con(toScale <= 1, 1, Ln(toScale) / (maxIn - inShift))\)
\(C2 = Ln(toScale) / Ln(maxIn - inShift)\)
\(D = Con(toScale == 0, D1, Con(toScale == 1, D2, 2))\)
\(D1 = Con(fromScale <= 1, 1, Ln(fromScale) / (maxIn - inShift))\)
\(D2 = Ln(fromScale) / Ln(maxIn - inShift)\)
\(Ln\) — логарифм значения по основанию e
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Маленькие
Ниже приведены формулы и значения по умолчанию для функции преобразования Маленькие.
Общая форма
Общая форма этой формулы выглядит так.
\(1.0 / (1.0 + Pow(In / MidPoint, Spread))\)
где:
\(In\) — входное значение
\(MidPoint\) — параметр средней точки, который определяет точку перехода функции
\(Spread\) — параметр разброса, который контролирует, как быстро возрастает и убывает предпочтение
Значения по умолчанию
Значения по умолчанию \(Spread\) и \(MidPoint\) вычисляются так.
\(Spread = 5\)
и
\(MidPoint = (maxIn + minIn) / 2\)
где:
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений
Симметричная линейная
Ниже приведены формулы и значения по умолчанию для функции преобразования Симметричная линейная.
Общая форма
Общие формы формулы для различных типов уклонов следующие.
Для положительных уклонов (\(Min < Max\)):
\(Con(In < Min , 0, Con(In < MidP, (In - Min) / HDiff, Con(In > Max, 0, (Max - In) / HDiff)))\)
Для отрицательных уклонов (\(Min > Max\)):
\(Con(In < Max, 1, Con(In < MidP, (In - MidP) / HDiff, Con(In > Min, 1, (MidP - In) / HDiff)))\)
где:
\(In\) — входное значение
\(Min\) — заданный минимум, устанавливающий одну точку, через которую должна пройти функция \(SymmetricLinear\)
\(Max\) — заданный максимум, устанавливающий другую точку, через которую должна пройти функция \(SymmetricLinear\)
\(Diff\) равно \(Max - Min\)
\(HDiff\) равно \(0.5 * Diff\)
\(MidP\) равно \(Min + HDiff\)
Значения по умолчанию
Значения по умолчанию \(Min\) и \(Max\) вычисляются так.
\(Min = minIn\)
и
\(Max = maxIn\)
где:
\(minIn\) — минимальное из входных значений
\(maxIn\) — максимальное из входных значений