В этом разделе будут описаны формулы, используемые для функций преобразования в инструменте Пересчет по функции. Формулы функции преобразования представлены в виде выражений Алгебры карт Spatial Analyst.
Определяется общая формула для каждой функции преобразования. По умолчанию общая формула изменяется, для соответствия минимуму (lowerThreshold) и максимуму (upperThreshold) входного набора данных. Как определяются параметры по умолчанию, также показано ниже.
Используя общую формулу, можно задать любое количество функциональных кривых и захватить любую часть функциональной кривой. В версии формулы по умолчанию для функции существует только одна кривая, которая соответствует минимуму и максимуму входного набора данных. В результате, в дополнение к применению линейного масштабирования преобразованных значений, данные, представленные в разных единицах измерения, таких как градусы Цельсия или Фаренгейта, будут давать одинаковые выходные оценочные значения.
Применение функции преобразования
В общем виде шаги для применения функции преобразования заключаются в следующем:
- Задание входного набора данных и параметров функции.
- Применение формулы преобразования.
- Линейное масштабирование преобразованных значений к оценочной шкале.
Уравнение линейного преобразования, используемое для масштабирования преобразованных значений до шкалы оценки из шага 3 выше, выглядит следующим образом.
ScaledY = fromScale + (Y - min(Y)) * r
, где:
- Y = F(In) является преобразованным значением с формулой F, которое показано в следующих общих формах:
- In - входное значение
- r - результат (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 = (minIn * Ln(toScale) - maxIn * Ln(fromScale)) / (Ln(toScale) - Ln(fromScale))
- B = (minIn * Ln(fromScale) - maxIn * Ln(toScale)) / (Ln(fromScale) - Ln(toScale))
- C = (Ln(toScale) - Ln(fromScale)) / (maxIn - minIn)
- D = (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 - максимальное из входных значений
Линейная
Ниже приведены формулы и значения по умолчанию для функции преобразования Линейная.
Общая форма
Ниже приведены общие формы формулы в зависимости от типа уклона:
Положительный уклон (Min < Max):
Con(In < Min, 0, Con(In > Max, 1, (In - Min) / Diff))
Отрицательный уклон (Min > Max):
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 = (minIn * Exp(toScale) - maxIn * Exp(fromScale)) / (Exp(toScale) - Exp(fromScale))
- B = (minIn * Exp(fromScale) - maxIn * Exp(toScale)) / (Exp(fromScale) - Exp(toScale))
- C = (Exp(toScale) - Exp(fromScale)) / (maxIn - minIn)
- D = (Exp(fromScale) - Exp(toScale)) / (maxIn - minIn)
- Exp - экспонента значения с основанием e
- minIn - минимальное из входных значений
- maxIn - максимальное из входных значений
LogisticDecay
Ниже приведены формулы для функции преобразования Логистическое снижение.
Общая форма
Общая форма этой формулы выглядит так:
C / (1 + A * Exp((In – Min) * B))
Определения параметров формулы такие же, как в LogisticGrowth.
Примечание:
В уравнении LogisticGrowth вычисления Exponential определяются из отрицательного значения вычисления экспоненциального: Exp( - (In - Min) * B).
LogisticGrowth
Ниже приведены формулы и значения по умолчанию для функции преобразования Логистический рост.
Общая форма
Общая форма этой формулы выглядит так:
C / (1 + A * Exp( - (In – Min) * B))
, где:
- Min - заданный минимум, который контролирует начальную точку логистического роста
- C - емкость или верхняя горизонтальная асимптота
- A определяет перехват, когда In = Min
- B определяет основание экспоненциальной функции Exp
Значения по умолчанию
Значения C, A и B по умолчанию определяются так.
C = 100
A = C / yInterceptPercent - 1
B = 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 * mean
- nStdv равно STDMultiplier * std, где std относится к стандартному отклонению среди всего населения
Значения по умолчанию
Для meanMultiplier и STDMultiplier по умолчанию задается 1.
MSSmall
Ниже приведены формулы и значения по умолчанию для функции преобразования MSSmall.
Общая форма
Общая форма этой формулы выглядит так:
Con(In > nMeans, nStdv / (In - nMeans + nStdv), 1)
, где:
- In - входное значение
- nMeans равно meanMultiplier * mean
- nStdv равно STDMultiplier * std, где std относится к стандартному отклонению среди всего населения
Значения по умолчанию
Для meanMultiplier и STDMultiplier по умолчанию задается 1.
Ближайший объект
Ниже приведены формулы и значения по умолчанию для функции преобразования Near.
Общая форма
Общая форма этой формулы выглядит так:
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 - максимальное из входных значений
SymmetricLinear
Ниже приведены формулы и значения по умолчанию для функции преобразования Симметричный линейный.
Общая форма
Общие формы формулы для различных типов уклонов следующие.
Для положительных уклонов (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 - максимальное из входных значений