Метод главных компонент (Principal Components) (Spatial Analyst)
Резюме
Выполняет Principal Component Analysis (PCA) на наборе каналов растра и создаёт один многоканальный растр в качестве выходных данных.
Более подробно о том, как работает инструмент Метод главных компонент
Использование
-
Значение, установленное для числа главных компонент, определяет количество каналов главных компонент на выходном многоканальном растре. Число не может быть больше, чем общее количество каналов растра на входных данных.
-
Каналы растра должны иметь общую область пересечения. Если таковой нет, выдается ошибка, и выходные данные не создаются.
-
При заданном имени файла выходных данных, матрицы корреляции и ковариации, наряду с собственными числами и векторами, а также процентной дисперсией, собираемой каждым характеристическим числом, и описанной суммарной дисперсией, будут храниться в ASCII-файле.
Процентная дисперсия определяет количество собираемой каждым собственным числом дисперсии. Это может оказаться полезным при интерпретации результатов PCA. Если два собственных значения (каждый относящийся к каналам в выходном растре) собирает большинство дисперсии, будет приемлемо использовать этот поднабор каналов в последующем анализе, так как эти каналы смогут собрать большинство взаимодействия в рамках исходного многоканального набора данных.
При определении процентной дисперсии, каждое собственное число выполняет сбор, сумма собственных чисел указывается в следующей формуле: (собственное число * 100)/сумму. Первое собственное число (и соответствующий канал) собирает самую большую дисперсию; последующие собственные числа собирают дисперсию меньшего порядка. Суммарный процент дисперсии является последовательной суммой дисперсии, собранной каждый собственным значением.
-
Если входные данные представлены слоем, созданным на основании многоканального растра, содержащего более трёх каналов, операция будет выполняться для всех каналов, связанных с исходным набором данных, а не только для трёх каналов, которые загружены слоем (то есть, отображаются символами).
Существует несколько способов для указания поднабора каналов многоканального растра, которые нужно использовать в качестве входных данных инструмента.
- При использовании диалогового окна инструмента перейдите к многоканальному растру с помощью кнопки обзора, расположенной рядом с пунктом Входные растровые каналы (Input raster bands), откройте растр и выберите нужные каналы.
- Если многоканальный растр является слоем в Таблице содержания, можно использовать инструмент Make Raster Layer (Создать растровый слой), чтобы создать новые многоканальный слой, содержащий только нужные каналы.
- Можно также создать новый набор данных, содержащий только нужные каналы, используя для этого инструмент Объединить каналы (Composite Bands), входными данными для которого будет являться полученный набор данных.
- В Python нужные каналы можно указать как список напрямую в параметре инструмента.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster_bands [in_raster_band,...] |
Входные каналы растров. | Raster Layer |
number_components (дополнительно) |
Число главных компонент. Число должно быть больше нуля и меньше или равно общему числу каналов растра во входных каналах растра. По умолчанию используется общее число каналов растра на входных данных. | Long |
out_data_file (дополнительно) |
Выходной ASCII-файл данных, в котором хранятся параметры главных компонент. Расширение выходного файла — .txt или .asc. | File |
Возвращено значение
Имя | Объяснение | Тип данных |
out_multiband_raster |
Выходной многоканальный набор растровых данных. Если выходными данными является растр сетки ESRI, имя файла должно состоять не более, чем из 10 символов. | Raster |
Пример кода
В этом примере выполняется Principal Component Analysis (PCA) на входном многоканальном растре и создаются выходные данные многоканального растра.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outPrincipalComp = PrincipalComponents(["redlands"], 4,"pcdata.txt")
outPrincipalComp.save("C:/sapyexamples/output/outpc01")
В этом примере выполняется Principal Component Analysis (PCA) на входном многоканальном растре и создаются выходные данные многоканального растра.
# Name: PrincipalComponents_Ex_02.py
# Description: Performs principal components analysis on a set of raster bands.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRasterBand1 = "redlands/redlandsc1"
inRasterBand2 = "redlands/redlandsc3"
numberComponents = 2
outDataFile = "C:/sapyexamples/output/pcdatafile.txt"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
# Execute PrincipalComponents
outPrincipalComp = PrincipalComponents([inRasterBand1, inRasterBand2], 2,
outDataFile)
# Save the output
outPrincipalComp.save("C:/sapyexamples/output/outpc01")