Взаимодействие Растрового объекта в ArcGIS

Растровый объект ссылается на набор растровых данных и, если используется в ArcMap, может быть связан с растровым слоем в таблице содержания. Отношения между набором растровых данных, объектом Растр (Raster) и растровым слоем поддерживаются в большинстве случаев, но важно понимать эти отношения для продуктивной работы с Алгеброй карт дополнительного модуля Spatial Analyst.

Растровые объекты можно создать двумя способами:

В некоторых случаях Растровый объект связан с растровым слоем. При работе в окне Python с опцией геообработки Добавить результат операций геообработки в отображение (Add result of the geoprocessing operations to the display) результат выражения Алгебры карт добавляется в таблицу содержания с тем же именем, что и Растровый объект. Когда набор данных квалифицирован как растр, слой в таблицу содержания не добавляется.

Сохранение временных растров

Когда данные, связанные с Растровым объектом, являются временными, они будут удалены по окончании сеанса ArcGIS (при выходе объекта из области применения или завершении выполнения скрипта). Если только данные не были сохранены. При сохранении растра слой и объект отображают обновленные свойства растра, в том числе name, path, catalogPath, и статус isTemporary набора данных. Есть несколько способов сохранить временный набор данных.

Повторное использование Растрового объекта

Имена объектов должны быть уникальными. Когда имя объекта используется повторно, оригинальный объект перезаписывается. В приведенном ниже примере результат выполнения инструмента Уклон (Slope) заменяется, когда outRas повторно используется как результат выражения Экспозиция (Aspect).

outRas = Slope("inRas1") 
outRas = Aspect("inRas2")

Слои добавляются в таблицу содержания с тем же именем, что и Растровый объект. Если имя Растрового объекта используется повторно, в таблицу содержания будут добавлены несколько слоев с одинаковым именем. В примере выше outRas добавляется в таблицу содержания дважды. Первый раз – при выполнении выражения Уклон (Slope). Этот первый слой outRas ссылается на результат выполнения инструмента Уклон (Slope) и может использоваться в окне Python, пока не выполнено выражение Экспозиция (Aspect). При выполнении инструмента Экспозиция (Aspect) в таблицу содержания добавляется второй слой с именем outRas, объект перезаписывается и теперь ссылается на набор данных и слой, являющиеся результатом выполнения инструмента Экспозиция (Aspect).

ПодсказкаПодсказка:

Если Растровый объект, ссылающийся на набор данных, переписан, набор растровых данных можно переквалифицировать как Растровый объект с помощью имени слоя или набора данных.

Удаление Растрового объекта

При удалении Растрового объекта последствия для связанного набора данных (и возможно слоя) зависят от статуса данных. Если данные сохранены, удаление Растрового объекта не оказывает влияния на связанный набор данных или слой. Если набор данных является временным, последствия удаления Растрового объекта зависят от того, существует ли слой, ссылающийся на набор растровых данных. Если с временным набором данных не связан слой и объект удаляется, то этот набор данных удаляется. Если есть слой, связанный с временным набором данных, и объект удаляется, временные данные остаются.

ВниманиеВнимание:
Временные данные, на которые ссылается слой, не удаляются при удалении Растрового объекта; однако все временные данные, если они не сохранены, удаляются при закрытии приложения, независимо от существующих слоев или объектов.

Ниже приведен пример удаления Растрового объекта с именем outRas.

outRas = Slope("C:/Data/elevation") 
del outRas

Назначение Растрового объекта новому Растровому объекту

При назначении Растрового объекта новому Растровому объекту связанные набор данных или слой не копируются. При назначении Растрового объекта новому Растровому объекту создается второй объект, ссылающийся на исходный. В примере ниже, outRas1 и outRas2 ссылаются на один и тот же набор растровых данных.

outRas1 = Slope("elevation")  

# Assigns Raster object to a new Raster object and save the raster dataset
outRas2 = outRas1
outRas2.save("C:/output/outslope")

В вышеприведенном примере outRas1 и outRas2 ссылаются на один и тот же набор данных. Поэтому при сохранении outRas2 оба объекта будут отражать постоянный статус, новое местоположение и новое имя сохраненного набора данных, outslope. Если outRas1 является слоем в вашей таблице содержания, и вы сохраняете данные, используя свойство слоя или сохраняя документ карты, оба объекта, outRas1 и outRas2, будут ссылаться на сохраненный набор данных.

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

5/10/2014