wmsfind

Поисковая локальная база данных для сети сопоставляет серверы и слои

Описание

пример

layers = wmsfind(querystr) ищет поля установленной Базы данных WMS для частичных соответствий querystr, который является строкой, массивом строк, вектором символов или массивом ячеек из символьных векторов. По умолчанию, wmsfind ищет Layer или LayerName свойства, но можно включать другие поля в поиск с помощью SearchFields параметр.

wmsfind возвращает layers, массив WMSLayer объекты, содержащие один объект для каждого слоя, имя которого или заголовок частично совпадают с querystr. Серверы WMS производят карты растровых данных, на которые пространственно ссылаются, такие как температура или вертикальное изменение, которые известны как layers.

layers = wmsfind(querystr,Name,Value) изменяет поиск Базы данных WMS на основе значений параметров. Можно сократить названия параметра, и случай не имеет значения.

Примеры

свернуть все

Ищите Базу данных WMS температурные данные.

layers = wmsfind('temperature');

wmsfind функционируйте ищет обоих LayerName и LayerTitle поля Базы данных WMS для частичных соответствий. Функция возвращает массив WMSLayer объекты, который содержит один объект для каждого слоя, имя которого или заголовок частично совпадают с 'temperature'. Отобразите информацию о первом слое.

layers(1)
ans = 
  WMSLayer

  Properties:
           Index: 1
     ServerTitle: 'CubeSERV WMS'
       ServerURL: 'https://ca.nfis.org/cubewerx/cubeserv/cubeserv.cgi?'
      LayerTitle: 'Temperature / Température (SCRIBE forecast) - 2020-10-22'
       LayerName: 'CFSNet-CWFIS.temp_current'
          Latlim: [35.8409 83.3979]
          Lonlim: [-174.2769 -11.4519]

  Methods

WMSLayer объект содержит три свойства, которые не появляются в Базе данных WMS: Abstract, CoordRefSysCodes, и Details. Заполните эти свойства при помощи wmsupdate функция.

updatedLayers = wmsupdate(layers(1));
updatedLayers(1) 
ans = 
  WMSLayer

  Properties:
           Index: 1
     ServerTitle: 'CubeSERV WMS'
       ServerURL: 'https://ca.nfis.org/cubewerx/cubeserv/cubeserv.cgi?'
      LayerTitle: 'Temperature / Température (SCRIBE forecast) - 2021-03-31'
       LayerName: 'CFSNet-CWFIS.temp_current'
          Latlim: [35.8409 83.3979]
          Lonlim: [-174.2769 -11.4519]
        Abstract: 'This map displays conditions at local noon. Because Canada covers several time zones, local noon occurs at different times in different parts of the country. Temperature values are interpolated between weather stations, then adjusted for elevation. This adjustment is based on the assumption that the temperature decreases at a rate of 6.5°C per kilometre of elevation increase. / Cette carte montre les conditions à midi, heure locale. Puisque le Canada comprend plusieurs fuseaux horaires, le midi, heure locale, se produit à différentes heures dans les diverses régions du pays. Les valeurs des températures sont interpolées entre les stations météorologiques, puis ajustées en fonction de l'altitude. Cet ajustement est fondé sur l'hypothèse que la température diminue de 6,5°C par kilomètre d'altitude; 

		Metadata / Métadonnées: http://cwfis.cfs.nrcan.gc.ca/downloads/cffdrs/wx_grids_metadata_NAP_ISO_19115_2003.xml'
CoordRefSysCodes: {5x1 cell}
         Details: [1x1 struct]

  Methods

Ваши результаты могут отличаться, потому что База данных WMS изменяет каждый релиз.

Ищите целую базу данных WMS

Ищите базу данных WMS слои, которые содержат слово "температура". wmsfind функция возвращает массив WMSLayer объекты.

layers = wmsfind('temperature');

Найдите слои, которые содержат глобальные температурные данные. Запрос включает подстановочный символ звездочки '*'.

layers = wmsfind('global*temperature');

Ищите определенные поля в базе данных WMS

Ищите LayerTitle поле для всех слоев, которые содержат точное совпадение для термина 'Rivers'. Необходимо использовать MatchType параметр, чтобы задать точное совпадение.

layers = wmsfind('Rivers','MatchType','exact', ...
                 'IgnoreCase',false,'SearchFields','layertitle');

Ищите LayerName поле для всех слоев, которые содержат частичное соответствие для 'вертикального изменения'. По умолчанию, wmsfind поиски частичных соответствий.

layers = wmsfind('elevation','SearchFields','layername');

Ищите LayerName поле для всех уникальных серверов, которые содержат 'BlueMarbleNG'.

layers = wmsfind('BlueMarbleNG','SearchFields','layername', ...
                 'MatchType','exact');
urls = servers(layers);

Ограничьте свой поиск определенными географическими областями

Найдите слои, которые содержат данные о вертикальном изменении для Колорадо. Используйте Latlim и Lonlim параметры, чтобы задать местоположение.

latlim = [35 43];
lonlim = [-111 -101];
layers = wmsfind('elevation','Latlim',latlim,'Lonlim',lonlim);

Найдите все слои, которые содержат температурные данные для точки в Перте, Австралия. Используйте Latlim и Lonlim параметры, чтобы задать местоположение.

lat = -31.9452;
lon = 115.8323;
layers = wmsfind('temperature','Latlim',lat,'Lonlim',lon);

Найдите все уникальные URL всех правительственных серверов.

layers = wmsfind('*.gov*','SearchFields','serverurl');
urls = servers(layers);

Ищите несколько полей одновременно и совершенствуйте ваш поиск

Ищите обоих LayerTitle и LayerName поля для всех слоев, которые содержат слово "температура".

fields = [string('layertitle') string('layername')];
temperature = wmsfind('temperature','SearchFields',fields);

Уточните результаты своего температурного поиска, чтобы найти только те слои, которые имеют дело с температурами поверхности моря. Используйте WMSLayer объект refine метод.

sst = refine(temperature,'sea surface');

Совершенствуйте свой поиск температуры поверхности моря далее, чтобы найти только те слои, которые имеют дело с глобальными температурами поверхности моря.

global_sst = refine(sst,'global');

Ищите целую базу данных WMS и прогрессивно совершенствуйте ваш поиск

Обратите внимание на то, что нахождение всех слоев от базы данных WMS может занять несколько секунд, чтобы выполнить и потребовать значительного количества памяти. База данных содержит больше чем 100 000 слоев.

Найдите все слои в базе данных WMS и отсортируйте их в набор, который включает только уникальные заголовки слоя.

layers = wmsfind('*');
layerTitles = sort(unique({layers.LayerTitle}))';

Совершенствуйте свой исходный поиск, layers, включать только те слои с глобальным покрытием. Используйте WMSLayer объект refineLimits метод.

global_layers = refineLimits(layers, ...
                             'Latlim',[-90 90],'Lonlim',[-180 180]);

Уточните результаты своего глобального поиска слоев, чтобы содержать только слои с глобальной степенью, которые включают слово "топография". Используйте WMSLayer объект refine метод.

global_topography_layers = refine(global_layers,'topography');

Совершенствуйте свой исходный поиск, layers, содержать только слои, которые имеют некоторую комбинацию терминов "нефть" и "газ" в LayerTitle поле .

oil_gas_layers = refine(layers,'oil*gas','SearchFields','layertitle');

Ищите базу данных WMS слои, содержащие слово "вертикальное изменение". Ищите онлайн-версию базы данных путем определения Version аргумент пары "имя-значение" как 'online'. Если вы не задаете версию, то wmsfind чтения от установленной базы данных.

elevation = wmsfind('elevation','Version','online');

Входные параметры

свернуть все

Символы, чтобы искать в полях WMS Database в виде строкового скаляра, массива строк, вектора символов или массива ячеек из символьных векторов. querystr может содержать подстановочный символ звездочки (*).

Типы данных: char | string

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: [A,R] = wmsfind('elevation','SearchFields','layername');

Игнорируйте регистр при сравнении значений полей с querystrВ виде логического значения true или false.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Широтные пределы поиска в виде двухэлементного вектора из формы [southern_limit northern_limit] или скалярное значение, представляющее широту одной точки. Значения находятся в области значений [-90, 90]. Все углы находятся в модулях степеней. Если обеспечено и не пустой, данный слой появляется в результатах, только если его пределы полностью содержат заданный 'Latlim' пределы. Частичное перекрытие не приводит к соответствию.

Типы данных: double | int16 | int32 | int64 | int8 | single | uint8 | uint16 | uint32 | uint64

Продольные пределы поиска в виде двухэлементного вектора из формы [western_limit eastern_limit] или скалярное значение, представляющее долготу одной точки. Все углы находятся в модулях степеней. Если обеспечено и не пустой, данный слой появляется в результатах, только если его пределы полностью содержат заданный 'Lonlim' пределы. Частичное перекрытие не приводит к соответствию.

Типы данных: double | int16 | int32 | int64 | int8 | single | uint8 | uint16 | uint32 | uint64

Строгость соответствия в виде вектора символов или строки 'partial' или 'exact'. Если 'MatchType' 'exact' и querystr '*', соответствие происходит, когда поле поиска совпадает с символьным '*'.

Типы данных: char | string

Поля, чтобы искать в Базе данных WMS в виде вектора символов, массива ячеек из символьных векторов, строки или массива строк. Функция ищет значения заданных полей в Базе данных WMS для частичного или точного совпадения с querystr. В следующей таблице перечислены допустимые значения.

Поле Поведение
'layername'Ищите LayerName поле в Базе данных WMS. Имя слоя является сокращенной формой LayerTitle поле и является ключевым словом использование сервера, чтобы получить слой.
'layertitle'Ищите LayerTitle поле в Базе данных WMS. Заголовок слоя включает описательную информацию о слое и упрощает понимание значения растровых значений слоя.
'layer'Ищите обоих LayerTitle и LayerName поля .
'servertitle'Ищите ServerTitle поле в Базе данных WMS. Заголовок сервера включает описательную информацию о сервере.
'serverurl'Ищите ServerURL поле в Базе данных WMS. Сервер URL и информация о слое упрощает чтение растровых слоев функцией wmsread.
'server'Ищите обоих ServerTitle и ServerURL поля .
'any'Ищите все поля.

Типы данных: char | cell | string

Версия Базы данных WMS, чтобы читать в виде одного из следующих значений.

ЗначениеОписание
'installed'Читайте из установленной базы данных. Это значение по умолчанию. Информация, найденная в установленной базе данных, является статической и автоматически не обновляется — это было подтверждено во время релиза программного обеспечения.
'online'

Читайте из версии базы данных, размещенной на веб-сайте MathWorks. Эта версия базы данных содержит больше актуальной информации о серверах, потому что это регулярно обновляется. Обратите внимание, однако, что поиск этой онлайновой базы данных требует связи с Интернетом.

Если ваша сеть использует брандмауэр или другой метод защиты, которая ограничивает доступ в Интернет, можно предоставить информацию о прокси-сервере к MATLAB®. Для получения дополнительной информации смотрите Аутентификацию Прокси-сервера.

'custom'Читайте из wmsdatabase.mat файл на пути MATLAB, такой как от предыдущего релиза.

Типы данных: char | string

Выходные аргументы

свернуть все

Слои, которые совпадают с критериями поиска, возвратились как массив WMSLayer объекты, один для каждого слоя найдены.

Больше о

свернуть все

База данных WMS

Mapping Toolbox™ содержит базу данных более чем 1 000, сохранил серверы WMS и более чем 100 000 слоев. MathWorks® создает эту базу данных, названную WMS Database, путем проведения ряда интернет-поисковых запросов и квалификации результатов поиска.

Примечание

MathWorks не гарантирует устойчивости или точности данных WMS. Серверы, перечисленные в Базе данных WMS, расположены в Интернете и независимы от MathWorks. Иногда, вы можете получить сообщения об ошибке от серверов, испытывающих трудности. Серверы могут понизиться или стать недоступными.

wmsfind функция является единственной функцией, которая получает доступ к сохраненной Базе данных WMS. По умолчанию, wmsfind функционируйте ищет Базу данных WMS, которая установлена с продуктом. Можно искать версию Базы данных WMS, размещенной на веб-сайте MathWorks или Базы данных WMS от предыдущего релиза при помощи Version аргумент значения имени. Информация в Базе данных WMS, установленной с продуктом, является статической. Размещенная сетью база данных регулярно обновляется.

База данных WMS содержит эти поля:

Имя поляТип данныхПолевое содержимое
ServerTitleСимвольный векторЗаголовок сервера WMS, описательной информации о сервере
ServerURLСимвольный векторURL сервера WMS
LayerTitle Символьный векторЗаголовок слоя, описательной информации о слое
LayerNameСимвольный векторИмя слоя, ключевое слово использование сервера, чтобы получить слой
LatlimДвухэлементный векторЮжные и северные пределы широты слоя
LonlimДвухэлементный векторЗападные и восточные пределы долготы слоя

LayerTitle и LayerName поля иногда имеют те же значения. LayerName поле указывает на код, используемый серверами, такими как '29:2', в то время как LayerTitle поле предоставляет более описательную информацию. Например, 'Elevation and Rivers with Backdrop' может быть запись в LayerTitle поле .

Советы

  • WMSLayer объекты возвращены wmsfind содержите свойства с теми же именами как имена полей Базы данных WMS, наряду с тремя дополнительными свойствами: 'Abstract', 'CoordRefSysCodes', и 'Details'. База данных WMS не содержит информацию об этих свойствах. Чтобы получить эту информацию о сервере, необходимо использовать wmsupdate функция, которая обновляет эти свойства WMSLayer объект путем загрузки информации с сервера. Чтобы просмотреть эти свойства, используйте WMSLayer.disp метод, задавая 'Properties' значение параметров 'all'. Если вы хотите знать больше о сервере WMS, используйте wmsinfo функция с определенным сервером URL.

Представленный в R2009b