Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Skaliert die Eingabe-Raster-Werte erneut, indem eine ausgewählte Transformationsfunktion angewendet und die resultierenden Werte dann auf einen bestimmten kontinuierlichen Auswertungsmaßstab transformiert werden.
Weitere Informationen zur Funktionsweise von "Erneut skalieren nach Funktion"
Verwendung
Der Hauptvorteil bei der Verwendung dieses Werkzeugs anstelle von anderen Reklassifizierungsmethoden besteht darin, dass eine größere Kontrolle über die Art der Reklassifizierung der Eingabewerte besteht:
- Akzeptiert und verarbeitet direkt kontinuierliche Eingabewerte, ohne dass die Werte in Kategorien gruppiert werden müssen
- Ermöglicht die Anwendung von linearen und nicht linearen Funktionen auf die Eingabedaten
- Skaliert die Eingabewerte erneut in einen kontinuierlichen Gleitkomma-Auswertungsmaßstab
Die Kenntnis der grundlegenden Begriffe für dieses Werkzeug kann das Verständnis der folgenden Erläuterungen erleichtern.
Die erneute Skalierung von Eingabedaten in einen kontinuierlichen Maßstab besteht konzeptionell gesehen aus zwei Schritten:
- Die angegebene Funktion wird auf die Eingabe-Raster-Werte angewendet.
- Die Funktionswerte werden linear in einen angegebenen Auswertungsmaßstab transformiert. In einem aufsteigenden Auswertungsmaßstab werden als minimale und maximale Funktionswerte das Minimum (Von-Maßstab) und Maximum (Bis-Maßstab) des Auswertungsmaßstabs festgelegt. Der Auswertungsmaßstab kann für einen absteigenden Maßstab jedoch umgekehrt werden.
Die folgende Abbildung zeigt ein Beispieldiagramm einer Potenzfunktion, um die mit der Anwendung einer Transformationsfunktion zusammenhängenden allgemeinen Konzepte und Begriffe zu veranschaulichen.
Beispieldarstellung der Potenzfunktion mit dem Wert 2 für den Exponenten und einem Auswertungsmaßstab von 1 bis 10 Der Eingabedatenbereich für dieses Beispiel reicht von 3.000 bis 5.000. Als niedrigster Wert im Eingabe-Raster wird der Wert Unterer Grenzwert festgelegt, als höchster Wert der Wert Oberer Grenzwert (dargestellt auf der X-Achse). Die Potenzfunktion befindet sich zwischen den Grenzwerten (bzw. wird von diesen eingefasst). Die Form der Funktion wird von formbestimmenden Parametern definiert, z. B. Eingabeversatz und Exponent für die Potenzfunktion. Auf diese Weise kann gesteuert werden, wo die Funktion beginnt und wie steil sie ansteigt. Die sich aus der Potenzfunktion ergebenden Funktionswerte werden dann linear in den Auswertungsmaßstab transformiert, um die Ausgabewerte zuzuweisen. Im Diagramm oben wurde mit den Parametern Von-Maßstab und Bis-Maßstab ein Auswertungsmaßstab von 1 bis 10 definiert, der auf der Y-Achse angezeigt wird.
Standardmäßig wird der Minimalwert aus dem Eingabe-Raster dem Wert Unterer Grenzwert zugewiesen und der Maximalwert dem Wert Oberer Grenzwert.
Standardmäßig wird die angegebene Funktion mithilfe der Werte für das Eingabe-Raster zwischen dem unteren und oberen Grenzwert angegeben (bzw. von diesen eingefasst). Wie die Funktion vom unteren und oberen Grenzwert eingefasst wird, hängt von der angegebenen Transformationsfunktion ab:
- Lineare und symmetrisch lineare Funktionen sind per Definition eingefasst, da als Minimum und Maximum der Funktionen das Minimum (der untere Grenzwert) und Maximum (der obere Grenzwert) im Eingabe-Raster festgelegt wird.
- Es wird eine eingepasste Version der Exponential- und Logarithmusfunktion auf die Werte aus dem Eingabe-Raster angewendet.
- Es werden so viele Parameter wie möglich aus dem Eingabe-Raster abgeleitet (z. B. Mittelpunkt, Faktor und Eingabeversatz), um die beste Einfassung für Funktionen des Typs "Gauß'sche", "Nah", "Klein", "MS Small", "Groß", "MS Large", "Potenz", "LogisticGrowth" und "LogisticDecay" zu erhalten.
Bei einer Änderung der Werte Unterer Grenzwert und Oberer Grenzwert wird folgende Vorgehensweise angewendet:
- Wenn der Wert einer Eingabezelle niedriger als Unterer Grenzwert ist, wird er den Werten im Parameter Wert unter Grenzwert zugewiesen.
- Wenn der Wert einer Eingabezelle größer als Oberer Grenzwert ist, wird er den Werten im Parameter Wert über Grenzwert zugewiesen.
- Alle Zellenwerte, die zwischen Unterer Grenzwert und Oberer Grenzwert liegen oder damit identisch sind, werden auf Grundlage des Funktionswertes f(x) dem entsprechenden Auswertungsmaßstab zugewiesen. Wenn ein formbestimmender Parameter (z. B. Spanne und Exponent) geändert wird, kann es vorkommen, dass das Ausgabe-Raster den Werten Von-Maßstab oder Bis-Maßstab keine Zellen zuweist.
Standardmäßig werden die formbestimmenden Parameter (z. B. Spanne oder Basisfaktor) so berechnet, dass die Funktion optimal vom Minimum und Maximum im Eingabe-Raster eingefasst ist (bzw. dazwischen angegeben wird). Die formbestimmenden Parameter können jedoch geändert werden, um die Einfassung der Funktion anhand der Präferenzinteraktion des Phänomens mit den Werten des Kriteriums zu optimieren. Wenn für einen formbestimmenden Parameter ein Wert angegeben ist, wird die sich daraus ergebende Funktion zusammen mit den Werten für den unteren und oberen Grenzwert verwendet, um die Werte im Eingabe-Raster erneut zu skalieren. Die eingepasste Version der Funktion wird nicht verwendet.
Der Von-Maßstab und Bis-Maßstab definieren die oberen und unteren Werte des kontinuierlichen Auswertungsmaßstabs. Der kleinste Funktionswert wird den Werten für Von-Maßstab zugewiesen, der größte Funktionswert den Werten für Bis-Maßstab. Alle Funktionswerte dazwischen werden den entsprechenden Auswertungswerten zugewiesen.
Für den Auswertungsmaßstab kann ein Bereich von niedrig zu hoch (z. B. 1 bis 10) oder von hoch zu niedrig (z. B. 10 bis 1) festgelegt werden.
Die Werte Wert unter Grenzwert und Wert über Grenzwert werden allen Zellen mit einem Eingabewert unter bzw. über dem Grenzwert zugewiesen. Diese Werte werden dem endgültigen Ausgabe-Raster direkt zugewiesen, und die Zellen werden bei der Verarbeitung der Transformationsfunktion nicht berücksichtigt.
Im Werkzeugdialogfeld werden die formbestimmenden Parameter, mit denen die Form der Funktion bestimmt wird (z. B. Spanne oder Basisfaktor), nach einer Änderung von Unterer Grenzwert oder Oberer Grenzwert generell neu berechnet. Bei einer Änderung der formbestimmenden Parameter ändern sich die Werte Unterer Grenzwert und Oberer Grenzwert jedoch nicht automatisch, und wenn Unterer Grenzwert oder Oberer Grenzwert in der Folge geändert wird, behält der geänderte formbestimmende Parameter (wie alle anderen verknüpften formbestimmenden Parameter) die geänderte Einstellung bei und wird nicht neu berechnet.
Die formbestimmenden Parameter für die Funktion (z. B. Spanne oder Basisfaktor) und der untere und obere Grenzwert basieren auf den Statistiken, die für die aktuellen Umgebungseinstellungen für Ausdehnung, Zellengröße und Fang-Raster der Verarbeitung berechnet werden. Wenn keiner dieser Werte festgelegt wurde, werden die der vollen Ausdehnung des Eingabe-Rasters zugeordneten Statistiken verwendet.
Wenn das Eingabe-Raster im Werkzeugdialogfeld über keine gültigen Statistiken zum Berechnen der formbestimmenden Parameter oder Bestimmen der Grenzwerte verfügt, bleiben diese Parameter leer, und es wird eine Warnmeldung angezeigt. Sie müssen auf die Schaltfläche Statistiken berechnen klicken, um die Statistiken anhand der aktuellen Umgebungseinstellungen neu zu berechnen und die Parameter mit Werten zu füllen. Als Standardeinstellung für den Wert Unterer Grenzwert wird der Minimalwert in der Verarbeitungsausdehnung festgelegt, für Oberer Grenzwert der Maximalwert. Die Werte der formbestimmenden Parameter werden entsprechend bestimmt. In den folgenden Fällen gibt es möglicherweise keine gültigen Statistiken:
- Die Ausdehnung, die Zellengröße oder das Fang-Raster der Verarbeitungsumgebung wurde vor dem Start des Werkzeugdialogfeldes festgelegt.
- Das Eingabe-Raster enthält keine Statistiken.
Wenn die Ausdehnung, die Zellengröße oder das Fang-Raster der Verarbeitungsumgebung im Werkzeugdialogfeld geändert wird, nachdem ein Eingabe-Raster eingegeben und eine Funktion angegeben wurde, sind die Funktionsparameter möglicherweise leer (kein Wert im Parameter). Klicken Sie auf die Schaltfläche Statistiken berechnen, um die Parameter erneut mit Werten zu füllen und die Werte für die neue Ausdehnung anzuzeigen. Wenn Unterer Grenzwert, Oberer Grenzwert oder ein beliebiger formbestimmender Parameter geändert wird, indem ein Wert eingegeben wird, verfolgt das Werkzeug nach, dass diese Parameter geändert wurden. Bei einer Änderung der Verarbeitungsausdehnung werden die Werte für diese Parameter nicht angepasst, nachdem auf die Schaltfläche Statistiken berechnen geklickt wurde.
Es können mehrere Funktionen auf die verschiedenen Bereiche des Eingabe-Rasters angewendet werden. Dazu können die Funktionen miteinander verbunden werden, indem das Werkzeug Erneut skalieren nach Funktion mehrmals ausgeführt wird. Dabei wird zuerst eine Transformationsfunktion für einen bestimmten Bereich der Eingabewerte angegeben. Danach wird es erneut ausgeführt, wobei eine andere Funktion auf einen anderen Wertebereich angewendet wird. Die resultierenden Ausgabe-Raster werden danach kombiniert. Beispiel:
- Führen Sie Erneut skalieren nach Funktion aus, wobei Sie eine lineare Funktion auf die Eingabewerte von 1.500 bis 3.200 anwenden, und legen Sie für die Werte über und unter den Grenzwerten 0 fest.
- Führen Sie das Werkzeug ein zweites Mal für dasselbe Eingabe-Raster aus. Wenden Sie dieses Mal eine Exponentialfunktion auf die Werte an, die zwischen 3.200 und 5.000 liegen, und legen Sie für die Werte über und unter den Grenzwerten 0 fest.
- Addieren Sie die zwei resultierenden Ausgabe-Raster mit dem Werkzeug Plus.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
RescaleByFunction (in_raster, {transformation_function}, {from_scale}, {to_scale})
Parameter | Erläuterung | Datentyp |
in_raster | Das Eingabe-Raster, das neu skaliert werden soll. | Raster Layer |
transformation_function (optional) | Die kontinuierliche Funktion zum Transformieren des Eingabe-Rasters wird angezeigt. Die Transformationsfunktionsklassen werden verwendet, um den Typ der Transformationsfunktion anzugeben. Es gibt folgende Transformationsfunktionsklassen:
Die zu verwendende Transformationsfunktion ist davon abhängig, mit welcher Funktion die Interaktion zwischen der Präferenz des Phänomens und den Eingabewerten am besten erfasst werden kann. Informationen dazu, wie sich der untere und obere Grenzwert der Transformationsfunktion auf die Ausgabewerte auswirkt, und zu den Parametern, die die Grenzwerte bestimmen, finden Sie unter Die Auswirkungen des unteren und oberen Grenzwertes auf die Ausgabewerte für "Erneut skalieren nach Funktion". Transformationsfunktionsklassen können folgende Formate haben:
Die Standardtransformationsfunktion ist "TfMSSmall". Es gibt u. a. folgende Parameterstandardwerte für die Transformationsfunktionen:
| Transformation function |
from_scale (optional) | Der Startwert des Ausgabe-Auswertungsmaßstabs. Der Wert from_scale kann nicht mit dem Wert to_scale identisch sein. from_scale kann niedriger oder höher als to_scale sein (z. B. von 1 bis 10 oder von 10 bis 1). Der Wert muss positiv sein. Es kann sich dabei entweder um eine Ganzzahl oder um einen Double-Wert handeln. Die Standardeinstellung ist 1. | Double |
to_scale (optional) | Der Endwert des Ausgabe-Auswertungsmaßstabs. Der Wert to_scale kann nicht mit dem Wert from_scale identisch sein. to_scale kann niedriger oder höher als from_scale sein (z. B. von 1 bis 10 oder von 10 bis 1). Der Wert muss positiv sein. Es kann sich dabei entweder um eine Ganzzahl oder um einen Double-Wert handeln. Die Standardeinstellung ist 10. | Double |
Rückgabewert
Name | Erläuterung | Datentyp |
out_raster | Das neu skalierte Ausgabe-Raster. Bei der Ausgabe handelt es sich um ein Gleitkomma-Raster mit Werten vom from_scale bis zum to_scale. | Raster |
Codebeispiel
RescaleByFunction – Beispiel 1 (Python-Fenster)
In diesem Beispiel wird ein Raster erstellt, dessen Werte mithilfe der Funktion "MSSmall" neu skaliert werden.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("elevation", TfMSSmall(1.25, 1.5, "#", "#", 4000, "NoData"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfms1")
RescaleByFunction – Beispiel 2 (eigenständiges Skript)
Demonstriert die Verwendung dieses Werkzeugs für Höhendaten, wobei Positionen mit geringerer Höhe als wesentlich günstiger angesehen werden als eine höhere Höhe. Für Positionen über 4.000 Metern wird "NoData" festgelegt.
# Name: TfMSSmall_Ex_02.py
# Description: Rescales input raster data using a MSSmall function and
# transforms the function values onto a specified evaluation scale.
# Requirements: Spatial Analyst Extension
# Author: esri
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
# Create the TfMSSmall object
meanmult = 1.25
stdmult = 1.5
lowerthresh = "#"
valbelowthresh = "10"
upperthresh = 4000
valabovethresh = "NoData"
myTfFunction = TfMSSmall(meanmult, stdmult, lowerthresh, valbelowthresh, upperthresh, valabovethresh)
# Set evaluation scale
fromscale = 1
toscale = 10
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)
# Save the output
outRescale.save("c:/sapyexamples/rescaletfms2")
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert Spatial Analyst
- ArcGIS for Desktop Standard: Erfordert Spatial Analyst
- ArcGIS for Desktop Advanced: Erfordert Spatial Analyst