RasterToNumPyArray (arcpy)

Резюме

Конвертирует растр в массив NumPy.

Обсуждение

Массив Python NumPy предназначен для работы с объемными массивами. В языке Python предусмотрено много функций для обработки массивов NumPy, наиболее значимые из них содержатся в пакете SciPy для экспоненциальных вычислений в средах Python. Может потребоваться конвертировать растр ArcGIS в массив NumPy для

  1. Использования одной из множества функций Python, которые применяются к массиву NumPy (например, фильтры данных, многомерный анализ или процедуры оптимизации).
  2. Разработка собственных функция через доступ к отдельным ячейкам массива NumPy (например, для реализации соседней нотации, изменения значения отдельных ячеек или запуска операторов накопления по всему растру).

Если определение массива (нижний левый угол и число строк и столбцов) превышает экстент in_raster, значениям массива будет присвоено NoData.

Если lower_left_corner не совпадает с углом ячейки, он автоматически будет смещен к нижнему левому углу ближайшей ячейки, следуя тем же правилам, что и параметр среды Растр привязки. Замыкание в функции RasterToNumPy не противоречит параметру среды Растр привязки; функция использует только этот же механизм; см.:

Синтаксис

RasterToNumPyArray (in_raster, {lower_left_corner}, {ncols}, {nrows}, {nodata_to_value})
ПараметрОбъяснениеТип данных
in_raster

Входной растр, конвертируемый в массив NumPy.

Raster
lower_left_corner

Нижний левый угол в in_raster, из которого извлекается блок обработки для конвертации в массив. Значения x и y в единицах карты.

(Значение по умолчанию — origin of inRaster)

Point
ncols

Число столбцов из lower_left_corner в in_raster для конвертации в массив NumPy.

(Значение по умолчанию — number of columns in inRaster)

Integer
nrows

Число строк из lower_left_corner в in_raster для конвертации в массив NumPy.

(Значение по умолчанию — number of rows in inRaster)

Integer
nodata_to_value

Значение для присвоения значений NoData из in_raster в полученный массив NumPy. Тип данных зависит от типа in_raster.

Если значение не указано, значениям NoData в in_raster будут назначены значения, связанные с NoData в in_raster.

Variant
Возвращено значение
Тип данныхОбъяснение
NumPyArray

Выходной массив NumPy.

Пример кода

RasterToNumPy, пример

Растр конвертируется в массив NumPy для вычисления процента значения ячейки в целой строке растра. Затем создается новый растр.

import arcpy
import numpy

my_array = arcpy.RasterToNumPyArray('C:/data/inRaster')
my_array_sum = my_array.sum(1)
my_array_sum.shape = (my_array.shape[0], 1)
my_array_perc = (my_array * 1.0) / my_array_sum
new_raster = arcpy.NumPyArrayToRaster(my_array_perc)
new_raster.save("C:/output/fgdb.gdb/PercentRaster")

Связанные темы

9/10/2013