Доступно с лицензией Spatial Analyst.
Растровый объект ссылается на набор растровых данных и, при использовании в отображении карты, может быть связан с растровым слоем в таблице содержания. Отношения между набором растровых данных, объектом Растр и растровым слоем поддерживаются в большинстве случаев, но важно понимать эти отношения для продуктивной работы с Алгеброй карт дополнительного модуля Spatial Analyst.
Растровые объекты создаются следующими двумя способами:
- Растровый объект создаётся в результате выполнения выражения Алгебры карт. Одной из наиболее важных особенностей поведения Растрового объекта является то, что при его создании как первичного результата выражения Алгебры карт он ссылается на временный растр.
>>> outRas = Slope("elevation") >>> print outRas.isTemporary True
- Набор растровых данных может быть квалифицирован как Растровый объект. Когда постоянный набор растровых данных квалифицирован как Растровый объект, набор данных остается постоянным.
>>> outRas = Raster("C:/Data/elevation") >>> print outRas.isTemporary False
В некоторых случаях Растровый объект связан с растровым слоем. При работе в окне Python с опцией геообработки Добавить результат операций геообработки в отображение результат выражения Алгебры карт добавляется в таблицу содержания с тем же именем, что и Растровый объект. Когда набор данных квалифицирован как растр, слой в таблицу содержания не добавляется.
Сохранение временных растров
Когда данные, связанные с Растровым объектом, являются временными, они будут удалены по окончании сеанса ArcGIS (при выходе объекта из области применения или завершении выполнения скрипта). Если только данные не были сохранены. При сохранении растра слой и объект отображают обновленные свойства растра, в том числе name, path, catalogPath, и статус isTemporary набора данных. Есть несколько способов сохранить временный набор данных.
- Чтобы сохранить временный набор растровых данных через связанный Растровый объект, можно использовать метод save Растрового объекта.
- Чтобы сохранить временный набор растровых данных, связанный со слоем карты, сохраните документ карты. При сохранении документа карты набор растровых данных записывается на диск в текущем местоположении с автоматически созданным именем.
- Чтобы сохранить временный набор данных, связанный со слоем карты, щелкните слой правой кнопкой мыши, выберите Данные > Сделать постоянными и укажите местоположение и имя для выходных данных.
Повторное использование Растрового объекта
Имена объектов должны быть уникальными. Когда имя объекта используется повторно, оригинальный объект перезаписывается. В следующем примере результат выполнения инструмента Уклон заменяется, когда outRas повторно используется как результат выражения Экспозиция.
outRas = Slope("inRas1")
outRas = Aspect("inRas2")
Слои добавляются в таблицу содержания с тем же именем, что и Растровый объект. Если имя Растрового объекта используется повторно, в таблицу содержания будут добавлены несколько слоев с одинаковым именем. В предыдущем примере outRas добавляется в таблицу содержания дважды. Первый раз – при выполнении выражения Уклон (Slope). Этот первый слой outRas ссылается на результат выполнения инструмента Уклон (Slope) и может использоваться в окне Python, пока не выполнено выражение Экспозиция (Aspect). При выполнении инструмента Экспозиция в таблицу содержания добавляется второй слой с именем outRas, объект перезаписывается и теперь ссылается на набор данных и слой, являющиеся результатом выполнения инструмента Экспозиция.
Удаление Растрового объекта
При удалении Растрового объекта последствия для связанного набора данных (и возможно слоя) зависят от статуса данных. Если данные сохранены, удаление Растрового объекта не оказывает влияния на связанный набор данных или слой. Если набор данных является временным, последствия удаления Растрового объекта зависят от того, существует ли слой, ссылающийся на набор растровых данных. Если с временным набором данных не связан слой и объект удаляется, этот набор данных удаляется. Если есть слой, связанный с временным набором данных, и объект удаляется, временные данные остаются.
В следующем примере показано, как удалить Растровый объект с именем 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, будут ссылаться на сохраненный набор данных.