ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Доступ к свойствам ST_Raster

  • Использование функции describe
  • Использование функции hasColormap для определения наличия или отсутствия цветовой карты
  • Использование функции hasStats для определения, была ли рассчитана статистика ST_Raster
  • Возвращение типа сжатия ST_Raster
  • Определение типа пирамидной интерполяции значения ST_Raster
  • Определение типа чередования канала для значения ST_Raster
  • Определение типа пиксела для ST_Raster
Уровень сложности:
Средний
Требования к данным:
Используйте собственные данные
Задача:
Узнайте, какие функции возвращают информацию о значении ST_Raster и как пользоваться этими функциями.

Тип ST_Raster включает несколько функций, которые возвращают свойства значения ST_Raster. Примеры использования этих функций включены в настоящем разделе. Не забудьте заменить значения в примерах SQL на значения, применимые к используемым данным.

Использование функции describe

Используйте функцию describe для получения списка свойств значения ST_Raster Выполнение функции describe без аргумента возвращает общие свойства значения ST_Raster.

Чтобы вернулись свойства о цветовой карте при наличии таковой в значении растра, включите аргумент colormap. Если значение растра не содержит цветовой карты и указан этот аргумент, возвращается ошибка. Если значение ST_Raster имеет цветовую карту, функция hasColormap возвращает значение true (1). Помимо общих свойств значения ST_Raster, указание аргумента colormap также приводит к возвращению примененного индекса цветовой схемы.

Свойства хранения для значения ST_Raster могут быть возвращены после указания аргумента storage в функции describe. Этот аргумент также приводит к отображению свойств хранения, упорядоченных по уровням пирамидных слоев, а также по каналу растра. Свойства хранения включают минимальные, максимальные, средние значения пикселов, а также стандартное отклонение для каждого канала и пирамидного слоя. Свойства хранения также включают счетчик общего количества пикселов, а также сжатый размер, разбитый по каналу и пирамидному уровню.

Возвращение общих свойств значения ST_Raster

При использовании функции describe для ST_Raster без указания аргумента запрос возвращает общие свойства каждого значения ST_Raster.

В следующих примерах показано использование выражения SELECT вместе с функцией describe для возвращения общих свойств значений ST_Raster в таблицу urban_areas. Будут возвращены только те записи, которые соответствуют критерию, указанному в выражении WHERE.

  1. Используйте выражение SELECT, которое приемлемо для используемой системы управления базой данных (СУБД).

    Oracle

    SELECT t.raster.describe()
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster)
    FROM urban_area
    WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe(NULL)
    FROM urban_area
    WHERE name = 'all_cities';
    

Возвращение свойств хранения для значения ST_Raster

Функция describe для ST_Raster с указанием аргумента storage возвращает общие свойства каждого значения ST_Raster, а также его свойства хранения.

В следующих примерах показано, как использовать функцию describe вместе с аргументом storage для возвращения свойств хранения ST_Raster для таблицы urban_areas.

  1. Используйте выражение SELECT, которое приемлемо для используемой СУБД.

    Oracle

    SELECT t.raster.describe('storage')
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster,'storage')
    FROM urban_area
    WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe('storage')
    FROM urban_area
    WHERE name = 'all_cities';
    

Возвращение индекса цветовой карты для ST_Raster

Функция describe для ST_Raster с указанием аргумента colormap возвращает общие свойства каждого значения ST_Raster, а также его индекс цветовой карты. Если значение растра не содержит цветовой карты и указан этот аргумент, возвращается ошибка.

  1. Используйте выражение SELECT, которое приемлемо для используемой СУБД.

    Oracle

    SELECT t.raster.describe('colormap')
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster,'colormap')
    FROM urban_area
    WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe('colormap')
    FROM urban_area
    WHERE name = 'all_cities';
    

Использование функции hasColormap для определения наличия или отсутствия цветовой карты

Используйте функцию hasColormap, чтобы определить, имеет ли значение ST_Raster индекс цветовой карты. Функция hasColormap возвращает логическое значение true, если имеется индекс цветовой карты; в противном случае возвращается значение false.

Функция hasColormap в выражении SELECT возвращает значение 1, если значение ST_Raster имеет цветовую карту, и значение 0, если не имеет.

  1. Oracle

    SELECT t.raster.hasColormap(), NAME 
    FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT hasColormap(raster), name 
    FROM urban_area;
    

    SQL Server

    SELECT raster.hasColormap(), name 
    FROM urban_area;
    

Ограничение возвращаемого набора только теми записями, которые имеют или не имеют цветовой карты

Функцию hasColormap можно добавить в выражение WHERE для возвращения тех записей, которые или имеют, или не имеют цветовой карты.

  1. Используйте выражение SELECT, которое приемлемо для используемой СУБД.

    Oracle

    SELECT t.raster.describe('colormap')
    FROM URBAN_AREA t
    WHERE t.raster.hasColormap(raster) = 1;
    

    PostgreSQL

    SELECT describe(raster,'colormap')
    FROM urban_area
    WHERE hasColormap(raster) = 1;
    

    SQL Server

    SELECT raster.describe('colormap')
    FROM urban_area
    WHERE raster.hasColormap() = 1;
    

Использование функции hasStats для определения, была ли рассчитана статистика ST_Raster

Функция hasStats возвращает логическое значение true, если для значения ST_Raster была рассчитана статистика.

Подсказка:

Чтобы рассчитать статистику используйте функцию buildStats для ST_Raster. Для удаления статистики из ST_Raster используйте функцию deleteStats.

Используйте функцию hasStats в выражении SELECT для определения, была ли вычислена статистика по значению ST_Raster. Эта функция возвращает значение 1 для тех значений ST_Raster, которые имеют статистику, и 0 для тех, которые не имеют.

  1. Oracle

    SELECT t.raster.hasStats(),NAME
    FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT hasStats(raster),name
    FROM urban_area;
    

    SQL Server

    SELECT raster.hasStats(),name
    FROM urban_area;
    

Функция hasStats можно применять вместе с выражением WHERE для указания необходимости возвращения запросом тех записей, которые имеют или не имеют статистики. В этих примерах выражение WHERE выбирает только те записи, которые имеют статистику по значению ST_Raster. Затем статистика по этим значениям растра удаляется.

  1. Oracle

    UPDATE URBAN_AREA t
    SET raster = t.raster.deleteStats()
    WHERE t.raster.hasStats() = 1;
    

    PostgreSQL

    UPDATE urban_area
    SET raster = deleteStats(raster)
    WHERE hasStats(raster) = 1;
    

    SQL Server

    UPDATE urban_area
    SET raster = raster.deleteStats()
    WHERE raster.hasStats() = 1;
    

Возвращение типа сжатия ST_Raster

Функция getCompressionType возвращает свойство сжатия растра. Ниже приведены четыре возможных типов сжатия.

  • НЕТ (NONE): данные сохраняются без сжатия.
  • LZ77: LZ77 использует сжатие длины без потерь; лучше всего подходит для данных с низкой степенью изменений или при невозможности использовать другие алгоритмы сжатия.
  • JPEG: JPEG расшифровывается как Joint Photographic Experts Group — комитет, который разработал этот стандарт сжатия. JPEG — тип сжатия с потерей качества. Сжатие JPEG может применяться только к 8-битным данным, которые не имеют индекса цветовой карты.
  • JP2: этот тип сжатия основан на «коротковолновом» формате JPEG 2000. Такой тип сжатия может применяться как к 8-битным, так и к 16-битным данным.

Чаще всего используется сжатие LZ77. Однако, для трехслойных и 8-битных данных, а также для неоднородных данных в градациях серого применяется JPEG-сжатие. Сжатие JPEG 2000 обычно применяется для 16-битных данных.

В этих примерах аргумент storage указывается для функции describe, а функция getCompressionType используется в выражении WHERE для возвращения только тех значений ST_Raster, которые имеют сжатие JPEG.

  1. Используйте выражение SELECT, которое приемлемо для используемой СУБД.

    Oracle

    SELECT t.raster.describe('storage')
    FROM URBAN_AREA t
    WHERE t.raster.getCompressionType() = 'JPEG';
    

    PostgreSQL

    SELECT describe(raster,'storage')
    FROM urban_area
    WHERE getCompressionType(raster) = 'JPEG';
    

    SQL Server

    SELECT raster.describe('storage')
    FROM urban_area
    WHERE raster.getCompressionType() = 'JPEG';
    

Определение типа пирамидной интерполяции значения ST_Raster

Тип пирамидной интерполяции — это алгоритм, используемый во время создания пирамидных слоев. Функция getInterpolationType типа ST_Raster возвращает тип интерполяции, который использовался для создания пирамидных слоев. Если пирамидный слой отсутствует, функция возвращает значение NULL. Существуют три возможных типа интерполяции: БЛИЖАЙШИЙ СОСЕД, БИЛИНЕЙНАЯ И БИКУБИЧЕСКАЯ.

Обычно, если билинейная интерполяция не используется, то применяется интерполяция «Ближайший сосед» и пирамидная интерполяция. Преимущество отдается билинейной интерполяции, так как ее результаты более точные и гладкие. Однако, билинейная интерполяция не учитывает значения пикселов предыдущего уровня. Ее нельзя использовать для данных, к которым применена цветовая карта, и не следует применять, если разрядность пиксельных данных менее 8 бит.

Следующие запросы возвращают тип пирамидной интерполяции для всех значений ST_Raster, имеющих пирамидные слои.

  1. Oracle

    SELECT t.raster.getInterpolationType()
    FROM URBAN_AREA t
    WHERE t.raster.getPyramidLevel() > 0;
    

    PostgreSQL

    SELECT getInterpolationType(raster)
    FROM urban_area
    WHERE getPyramidLevel(raster) > 0;
    

    SQL Server

    SELECT raster.getInterpolationType()
    FROM urban_area
    WHERE raster.getPyramidLevel() > 0;
    

Определение типа чередования канала для значения ST_Raster

Тип ST_Raster поддерживает как последовательное (BSQ), так и непрерывное (BIP) чередование канала.

Примечание:

ArcObjects и приложения на основе ArcObjects, такие как ArcGIS Desktop, только считывают данные, которые были сохранены как BSQ.

Чередование BIP применимо только к трехканальным, 8–битным данным, сохраненным в виде одного канала в последовательности (r0, g0, b0, r1, g1, b1 … rn, gn, bn), тогда как BSQ сохраняет каналы в отдельном последовательном порядке (r0...rn),(g0...gn),(b0...bn).

Следующие запросы возвращают тип чередования для каждого значения ST_Raster в столбце ST_Raster таблицы.

  1. Oracle

    SELECT t.raster.getInterleaveType()
    FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT getInterleaveType(raster)
    FROM urban_area;
    

    SQL Server

    SELECT raster.getInterleaveType()
    FROM urban_area;
    

Определение типа пиксела для ST_Raster

Функция getPixelType возвращает тип пиксела значения ST_Raster. Следующие типы пикселов поддерживаются типом ST_Raster:

  • 1bit: 1-битные данные
  • 4bit: 4-битные данные
  • uint8: 8-битное целое число без знака
  • int8: 8-битное целое число со знаком
  • uint16: 16-битное целое число без знака
  • int16: 16-битное целое число со знаком
  • uint32: 32-битное целое число без знака
  • int32: 32-битное целое число со знаком
  • float: число с плавающей точкой обычной точности
  • double: число с плавающей точкой двойной точности

Следующие выражения обновления строят пирамидальные слои для всех значений ST_Raster в столбце ST_Raster, однако только если тип пиксела в значении ST_Raster является 8-битным целым числом без знака.

  1. Oracle

    UPDATE URBAN_AREA t
    SET raster = t.raster.buildPyramid('bilinear')
    WHERE t.raster.getPixelType() = 'UINT8';
    

    PostgreSQL

    UPDATE urban_area
    SET raster = buildPyramid(raster,'bilinear')
    WHERE getPixelType(raster) = 'UINT8';
    

    SQL Server

    UPDATE urban_area
    SET raster = raster.buildPyramid('bilinear')
    WHERE raster.getPixelType() = 'UINT8';
    

Связанные разделы

  • ST_Raster.hasColormap
  • ST_Raster.hasStats
  • ST_Raster.getCompressionType
  • ST_Raster.getInterleaveType
  • ST_Raster.getInterpolationType
  • ST_Raster.getPixelType

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2018 Esri. | Конфиденциальность | Правовая информация