Растр в файл с плавающей точкой (Float) (Конвертация)
Резюме
Конвертирует набор растровых данных в файл, содержащий растровые данные в виде бинарных значений с плавающей точкой.
Использование
-
Входной набор растровых данных может быть любым корректным набором растровых данных.
-
Создаются выходные данные: 32-битовый двоичный файл IEEE формата с плавающей точкой с расширением .flt и файл заголовка ASCII с расширением .hdr. Оба будут использовать одно выходное имя растрового файла с плавающей точкой.
-
Файл ASCII содержит информацию заголовка, заданную набором ключевых слов.
В общих чертах формат файла следующий:
NCOLS xxx NROWS xxx XLLCORNER xxx YLLCORNER xxx CELLSIZE xxx NODATA_VALUE xxx BYTEORDER <MSBFIRST | LSBFIRST>
Ниже приведены определения ключевых слов:
NCOLS и NROWS - количество столбцов и строк в растре, определенное бинарным файлом.
XLLCORNER и YLLCORNER — координаты левого нижнего угла левой нижней ячейки.
Использование XLLCENTER и YLLCENTER не поддерживается инструментом Растр в файл с плавающей точкой.
CELLSIZE - размер ячейки растра.
NODATA_VALUE - значение, служащее для представления ячеек со значениями NoData.
BYTEORDER задает способ хранения мультибайтовых бинарных чисел, которые находятся в системе, на которой был создан бинарный файл. В системах на основе Intel, используется порядок байтов LSBFIRST (также известен как Big Endian). Во многих других архитектурах (все системы UNIX кроме Alpha и поздний Macintosh с Motorola CPUs), используется порядок байтов MSBFIRST (также известен как Little Endian).
-
NODATA_VALUE — значение в выходном файле, соответствующее ячейкам входного растра, которые содержат значение NoData. Это значение, как правило, резервируется для тех ячеек, истинное значение которых неизвестно.
-
По умолчанию значения NoData на входном растре будут иметь значение -9999 в выходном файле с плавающей точкой. Если вы хотите использовать другое значение для представления NoData, может быть применена подобная процедура:
- Запустите инструмент Дополнительный модуль ArcGIS Spatial Analyst IsNull на исходном растре. Выходные данные будут растром с бинарными значениями, где 1 соответствует NoData на исходном растре, а 0 - любое другое значение.
- Запустите инструмент Дополнительный модуль ArcGIS Spatial Analyst Условие (Con), указывающий результат IsNull как Входной растр, удовлетворяющий условиям (Input Conditional Raster), новое значение, присваивающее значения NoData как значение Input True, исходный растр как Input False и условие Выражение (Expression) со значением "value = 1".
- Конвертируйте выходной растр Условие (Con) в двоичный файл с плавающей точкой с помощью инструмента Растр в файл с плавающей точкой (Raster To Float).
- Измените значение NODATA_VALUE в файле заголовка ASCII на значение, в которое было конвертировано NoData.
-
Этот инструмент записывает начало отсчета как левый нижний угол левой нижней ячейки. Инструмент Файл с плавающей точкой в растр (Float to Raster) также поддерживает начало отсчёта в центре левой нижней ячейки.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Входной набор растровых данных. Растр может быть целочисленным или с плавающей точкой. | Raster Layer |
out_float_file |
Выходной растровый файл с плавающей точкой. Имя файла должно иметь расширение .flt. | File |
Пример кода
Конвертирует набор растровых данных в файл, содержащий растровые данные в виде бинарных значений с плавающей точкой.
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")
Конвертирует набор растровых данных в файл, содержащий растровые данные в виде бинарных значений с плавающей точкой.
# 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)