Редактировать сигнатуры (Edit Signatures) (Spatial Analyst)
Резюме
Редактирует и обновляет файл сигнатур путем объединения, перенумерации и удаления сигнатур классов.
Более подробно о том, как работает инструмент Редактировать сигнатуры
Использование
-
Инструмент Редактировать сигнатуры (Edit Signatures) позволяет менять существующий файл сигнатур путем выполнения всех или любой из следующих операций:
- Объединения сигнатур набора классов
- Перенумерации идентификаторов (ID) сигнатур классов
- Удаления нежелательных сигнатур
-
Входной файл сигнатур должен быть файлом сигнатур ASCII. Этот файл может быть выходным файлом одного из инструментов Многомерность, которые создают файл, содержащий необходимую статистическую информацию, например, Изокластер (Iso Cluster) и Создать сигнатуры (Create Signatures). Файл должен содержать, по меньшей мере, два класса. Такой файл можно узнать по расширению .gsg.
-
Входной файл перекодировок сигнатур – это ASCII-файл, состоящий из двух столбцов co значениями на строку, разделенными двоеточием. В первом столбце указано значение идентификатора ID исходного класса. Второй столбец содержит идентификаторы ID новых классов, которые используются для обновления файла сигнатур. Все записи в файле должны быть сохранены по возрастанию и в соответствии с первым столбцом.
Чтобы объединить набор классов, задайте новый одинаковый ID равным второму значению для каждого ID класса из набора. В файл перекодировок сигнатур должны быть помещены только те классы, которые нуждаются в редактировании. Все классы, не присутствующие в файле перекодировки останутся неизменными. Чтобы удалить сигнатуру класса, установите значение -9999 во вторую колонку этого класса. Идентификационный номер класса (ID) также должен быть изменен на значение, не участвующее во входном файле сигнатур.. Ниже приведен пример входного файла перекодировок сигнатур:
2 : 3 4 : 11 5 : -9999 9 : 3
Приведенный выше пример объединит классы 2 и 9 с классом 3, объединит класс 4 с 11, и удалит класс 5.
-
Если входной файл сигнатур содержит названия сигнатур классов, и если сигнатуры во входном файле перекодировок сигнатур должны быть объединены, имя, связанное с объединяемым значением, будет перенесено в выходной файл сигнатур.
-
Если входные данные представлены слоем, созданным на основании многоканального растра, содержащего более трёх каналов, операция будет выполняться для всех каналов, связанных с исходным набором данных, а не только для трёх каналов, которые загружены слоем (то есть, отображаются символами).
Существует несколько способов для указания поднабора каналов многоканального растра, которые нужно использовать в качестве входных данных инструмента.
- При использовании диалогового окна инструмента перейдите к многоканальному растру с помощью кнопки обзора, расположенной рядом с пунктом Входные растровые каналы (Input raster bands), откройте растр и выберите нужные каналы.
- Если многоканальный растр является слоем в Таблице содержания, можно использовать инструмент Make Raster Layer (Создать растровый слой), чтобы создать новые многоканальный слой, содержащий только нужные каналы.
- Можно также создать новый набор данных, содержащий только нужные каналы, используя для этого инструмент Объединить каналы (Composite Bands), входными данными для которого будет являться полученный набор данных.
- В Python нужные каналы можно указать как список напрямую в параметре инструмента.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster_bands [in_raster_band,...] |
Каналы входного растра, для которых должны редактироваться сигнатуры. | Raster Layer |
in_signature_file |
Входной файл сигнатур, сигнатуры которого должны редактироваться. Требуется расширение .gsg. | File |
in_signature_remap_file |
Входная ASCII-таблица перекодировок, содержащая идентификаторы объединяемых, удаляемых классов, или классов с изменениями номеров.. Ее расширение может быть .rmp, .asc или .txt. По умолчанию, используется расширение .rmp. | File |
out_signature_file |
Выходной файл сигнатур. Необходимо задать расширение .gsg. | File |
sample_interval (дополнительно) |
Интервал, который будет использован для выборки. Значение по умолчанию равно 10. | Long |
Пример кода
В этом примере будет редактироваться файл сигнатур на основе входной таблицы перекодировки.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
EditSignatures("redl123", "c:/sapyexamples/data/zsamp12.gsg",
"c:/sapyexamples/data/zsamp7.rmp",
"c:/sapyexamples/output/redlremap.gsg", "")
В этом примере будет редактироваться файл сигнатур на основе входной таблицы перекодировки.
# Name: EditSignatures_Ex_02.py
# Description: Edits and updates a signature file by merging, renumbering,
# and deleting class signatures.
# 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
inRaster = "redl123"
oldSig = "c:/sapyexamples/data/zsamp12.gsg"
sigRemap = "c:/sapyexamples/data/zsamp7.rmp"
outNewSig = "c:/sapyexamples/output/redlsig.gsg"
interval = ""
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EditSignatures
EditSignatures(inRaster, oldSig, sigRemap, outNewSig, interval)