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 Werkzeug IsNull der Erweiterung "ArcGIS Spatial Analyst" 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 Werkzeug Con der Erweiterung "ArcGIS Spatial Analyst" 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ärdatei im Gleitkommaformat.
- Ä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 Gleitkommaformat. 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)