Raster in FLOAT (Conversion)
Zusammenfassung
Konvertiert ein Raster-Dataset in eine Datei mit binären Gleitkommawerten, die Raster-Daten darstellen.
Verwendung
-
Als Eingabe-Raster-Dataset sind alle gültigen Raster-Datasets zulässig.
-
Es werden zwei Ausgabeformate erstellt: eine binäre 32-Bit-Datei mit Vorzeichen im IEEE-Gleitkomma-Format mit der Erweiterung .flt und eine ASCII-Header-Datei mit der Erweiterung .hdr. Beide verwenden denselben Ausgabe-Gleitkomma-Raster-Dateinamen.
-
Die ASCII-Datei besteht aus Header-Informationen mit einer Reihe von Schlüsselwörtern.
Normalerweise hat die Datei das folgende Format:
NCOLS xxx NROWS xxx XLLCORNER xxx YLLCORNER xxx CELLSIZE xxx NODATA_VALUE xxx BYTEORDER <MSBFIRST | LSBFIRST>
Die Definitionen der Schlüsselwörter lauten wie folgt:
NCOLS und NROWS steht für die Anzahl der Spalten und Zeilen im Raster, die von der Binärdatei definiert werden.
XLLCORNER und YLLCORNER steht für die Koordinaten der unteren linken Ecke der unteren linken Zelle.
Die Verwendung von XLLCENTER und YLLCENTER wird von Raster in FLOAT nicht unterstützt.
CELLSIZE ist die Zellengröße des Rasters.
NODATA_VALUE ist der Wert, der NoData-Zellen darstellen soll.
Mit BYTEORDER wird festgelegt, wie Multibyte-Binärzahlen in dem System gespeichert werden, in dem die Binärdatei generiert wurde. Bei Intel-basierten Systemen ist die Byte-Reihenfolge LSBFIRST (auch bekannt als "Big Endian"). In den meisten anderen Architekturen (alle UNIX-Systeme mit Ausnahme von Alpha, und ältere Macintosh-Systeme mit Motorola-CPUs) ist die Byte-Reihenfolge MSBFIRST (auch bekannt als "Little Endian").
-
Der Wert NODATA_VALUE wird in der Ausgabedatei den Zellen im Eingabe-Raster zugeordnet, die NoData-Werte enthalten. Dieser Wert ist normalerweise den Zellen vorbehalten, deren wahrer Wert unbekannt ist.
-
NoData-Werte im Eingabe-Raster erhalten in der Ausgabe-Float-Datei standardmäßig den Wert -9999. Wenn Sie einen anderen Wert verwenden möchten, gehen Sie wie folgt vor:
- Führen Sie das Spatial Analyst-Werkzeug IsNull für das ursprüngliche Raster aus. Es wird ein Raster mit binären Werten ausgegeben, wobei der Wert "1" den NoData-Werten im ursprünglichen Raster entspricht. Der Wert "0" entspricht allen übrigen Werten.
- Führen Sie das Spatial Analyst-Werkzeug Con aus. Geben Sie dabei folgende Werte an: das Ergebnis von IsNull als Eingabe-Bedingungs-Raster, den neuen Wert, der den NoData-Werten zugeordnet werden soll, als Eingabe-TRUE-Wert, das Ursprungs-Raster als Eingabe-FALSE-Raster und den Ausdruck "value = 1" als Bedingungsausdruck.
- Konvertieren Sie das Con-Ausgabe-Raster mit dem Werkzeug Raster in FLOAT in eine binäre Datei vom Typ "Floating Point".
- Ändern Sie in der ASCII-Header-Datei den Wert NODATA_VALUE in den Wert, in den NoData konvertiert wurde.
-
Bei diesem Werkzeug wird der Ursprung nur als linke untere Ecke der linken unteren Zelle geschrieben. Das Werkzeug Float in Raster unterstützt als Ursprung auch den Mittelpunkt der unteren linken Zelle.
Syntax
Parameter | Erläuterung | Datentyp |
in_raster |
Das Eingabe-Raster-Dataset. Das Raster kann ein Ganzzahl- oder ein Gleitkomma-Raster sein. | Raster Layer |
out_float_file |
Die Ausgabe-Raster-Datei im Gleitkomma-Format. Der Dateiname muss die Erweiterung .flt aufweisen. | File |
Codebeispiel
Konvertiert ein Raster-Dataset in eine Datei mit binären Gleitkommawerten, die Raster-Daten darstellen.
import arcpy from arcpy import env env.workspace = "C:/data" inRaster = "elevation" outFloat = "c:/output/elevation.flt" arcpy.RasterToFloat_conversion("elevation", "c:/output/elevation.flt")
Konvertiert ein Raster-Dataset in eine Datei mit binären Gleitkommawerten, die Raster-Daten darstellen.
# Name: RasterToFloat_Ex_02.py # Description: Converts a raster dataset to a file of binary floating-point # values representing raster data. # Requirements: None # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inRaster = "elevation" outFloat = "c:/output/elevation.flt" # Execute RasterToFloat arcpy.RasterToFloat_conversion(inRaster, outFloat)