Skip to main content

Формулы функций преобразования

Доступно с лицензией Spatial Analyst.

В этом разделе будут описаны формулы, используемые для функций преобразования в инструменте Пересчет по функции. Формулы функции преобразования представлены в виде выражений Алгебры карт Spatial Analyst.

Для каждой функции преобразования определяется общая формула. По умолчанию общая формула изменяется для соответствия минимуму (lowerThreshold) и максимуму (upperThreshold) входного набора данных. Как определяются параметры по умолчанию, также показано ниже.

Используя общую формулу, можно задать любое количество функциональных кривых и захватить любую часть функциональной кривой. В версии формулы по умолчанию для функции существует только одна кривая, которая соответствует минимуму и максимуму входного набора данных. В результате, в дополнение к применению линейного масштабирования преобразованных значений, данные, представленные в разных единицах измерения, таких как градусы Цельсия или Фаренгейта, будут давать одинаковые выходные оценочные значения.

Применение функции преобразования

В общем виде шаги для применения функции преобразования заключаются в следующем:

  1. Задание входного набора данных и параметров функции.

  2. Применение формулы преобразования.

  3. Линейное приведение преобразованных значений к оценочной шкале.

Уравнение линейного преобразования, используемое для приведения преобразованных значений к шкале оценки из шага 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\) — максимальное из входных значений