exponenta event banner

gshhs

Прочитайте глобальную иерархическую географию с высоким разрешением

Синтаксис

S = gshhs(filename)
S = gshhs(filename, latlim, lonlim)
indexfilename = gshhs(filename, 'createindex')

Описание

S = gshhs(filename) считывает векторные данные GSHHG (ранее GSHHS) для всего мира из filename. GSHHG-файлы должны иметь имена форм gshhs_x.b, wdb_borders_x.b, или wdb_rivers_x.b, где x является одной из букв c, l, i, h или f, что соответствует увеличению разрешения (и размера файла). Результат, возвращенный в S - многоугольник или линейный массив структуры географических данных (геострукт, с 'Lat' и 'Lon' поля координат).

S = gshhs(filename, latlim, lonlim) считывает подмножество векторных данных из filename. Пределы требуемых данных задаются как двухэлементные векторы широты, latlim, и долгота, lonlim, в градусах. Элементы latlim и lonlim должен быть в порядке возрастания. Пределы долготы находятся в диапазоне от [-180 195]. Если latlim пуст, пределы широты равны [-90 90]. Если lonlim пуст, пределы долготы равны [-180 195].

indexfilename = gshhs(filename, 'createindex') создает индексный файл для более быстрого доступа к данным при запросе подмножества большего набора данных. Имя файла индекса совпадает с именем файла данных GSHHG, но имеет расширение 'i', вместо 'b' и записывается в ту же папку, что и filename. Имя индексного файла возвращается, но данные береговой линии не считываются. Вызов, использующий эту опцию, должен сопровождаться дополнительным вызовом gshhs для импорта фактических данных. При этом и последующих вызовах, gshhs обнаруживает наличие файла индекса и использует его для доступа к записям по расположению гораздо быстрее, чем при отсутствии индекса.

Структура вывода

Структура вывода S содержит следующие поля. Все значения широты и долготы приведены в градусах.

Имя поля

Содержимое поля

'Geometry'

'Line' или 'Polygon'

'BoundingBox'

[minLon minLat; maxLon maxLat]

'Lon'

Вектор координат

'Lat'

Вектор координат

'South'

Граница южной широты

'North'

Граница северной широты

'West'

Граница западной долготы

'East'

Граница восточной долготы

'Area'

Площадь полигона в квадратных километрах

'Level'

Скалярное значение в диапазоне от 1 до 4 указывает на уровень в топологической иерархии

'LevelString'

'land', 'lake', 'island_in_lake', 'pond_in_island_in_lake', или ''

'NumPoints'

Количество точек в полигоне

'FormatVersion'

Форматирование версии файла данных. Положительное целое число для версий 3 и более поздних; пустой для версий 1 и 2.

'Source'

Источник данных: 'WDBII' или 'WVS'

'CrossesGreenwich'

Скалярный флаг: true если многоугольник пересекает простой меридиан; false иначе

'GSHHS_ID'

Уникальный номер скалярного идентификатора многоугольника, начинающийся с 0

Для версий 2.0 и выше (FormatVersion 7 и выше), в структуру вывода включены следующие дополнительные поля:

Имя поля

Содержимое поля

'RiverLake'

Скалярный флаг: true если полигон является жировой частью крупной реки и Level значение равно 2; false в противном случае.

'AreaFull'

Площадь исходного полигона полного разрешения в единицах 110км2.

'Container'

Идентификатор полигона контейнера, который охватывает этот полигон. Для обозначения отсутствия установите значение -1.

'Ancestor'

Идентификатор полигона-предка в наборе полного разрешения, который был источником этого полигона. Для обозначения отсутствия установите значение -1.

Для версии 2.2 и выше (FormatVersion 9 и выше) в структуру вывода включено следующее дополнительное поле:

Имя поля

Содержимое поля

'CrossesDateline'

Скалярный флаг: true если многоугольник пересекает опорную шкалу; false в противном случае.

Фон

Глобальная иерархическая иерархическая география высокого разрешения (ранее Глобальная иерархическая география высокого разрешения) была создана Полом Весселем (Paul Wessel) из Гавайского университета и Уолтером Х.Ф. Смитом (Walter H.F. Smith) из NOAA Geosciences Lab. При полном разрешении данные требуют 85 Мб Эта база данных включает береговые линии, основные реки и озера. Данные GSHHG в различных разрешениях доступны через Интернет с веб-сайта Национального управления океанических и атмосферных исследований, Национального центра геофизических данных.

Версия 3 (версия 1.3) gshhs_c.b (грубый) набор данных поставляется с панелью инструментов в matlabroot/examples/map/data папка. Для получения подробной информации введите

type gshhs_c.txt
в командной строке MATLAB ®. gshhs функция была квалифицирована в GSHHG версий 1.1 - 2.3.6 (версия 15). Он также должен иметь возможность читать более новые версии, если они соответствуют тому же формату заголовка, что и версии 2.0 и 2.1.

Примеры

свернуть все

Прочтите весь набор грубых данных. Аналогичный код можно использовать для чтения наборов данных GSHHG промежуточного, полного или высокого разрешения.

filename = gunzip('gshhs_c.b.gz', tempdir);
shorelines = gshhs(filename{1});
delete(filename{1})

Отображение данных как береговой линии.

figure
worldmap world
geoshow([shorelines.Lat],[shorelines.Lon])

Отображение каждого уровня с использованием различных цветов.

levels = [shorelines.Level];
land = (levels == 1);
lake = (levels == 2);
island = (levels == 3);
figure
worldmap world
geoshow(shorelines(land),  'FaceColor',[0 1 0])
geoshow(shorelines(lake),  'FaceColor',[0 0 1])
geoshow(shorelines(island),'FaceColor',[1 1 0])

Прочтите весь набор грубых данных, создав индекс. Аналогичный код можно использовать для чтения наборов данных GSHHG промежуточного, полного или высокого разрешения.

filename = gunzip('gshhs_c.b.gz', tempdir);
indexname = gshhs(filename{1}, 'createindex');

Отображение Африки в виде зеленого многоугольника. Обратите внимание, что gshhs автоматически обнаруживает и использует индексный файл.

figure
worldmap Africa

projection = gcm;
latlim = projection.maplatlimit;
lonlim = projection.maplonlimit;
africa = gshhs(filename{1}, latlim, lonlim);
delete(filename{1})
delete(indexname)

Сортировка по уровню убывания для сохранения элементов уровня 2 и уровня 3 сверху.

[~,ix] = sort([africa.Level],'descend');
africa = africa(ix);
geoshow(africa, 'FaceColor', 'green')
setm(gca, 'FFaceColor', 'cyan')

Совет

  • При извлечении данных в заданных географических пределах и использовании данных, отличных от грубого разрешения, следует сначала создать индексный файл. Кроме того, чтобы ускорить рендеринг при сопоставлении очень больших объемов данных, может потребоваться построить график данных как NaN- отрезки, а не фрагменты.

  • При задании пределов широты-долготы полигоны, полностью выходящие за эти пределы, исключаются, но отсечение элементов, частично пересекающих область, не выполняется. Если требуется исключить данные за пределами представляющей интерес прямоугольной области, можно использовать maptrimp с Lat и Lon поля геострукта, возвращенные gshhs для обрезки данных в области и сохранения полигональной топологии.

  • Можно прочитать наборы данных WDB-рек и границ, но LevelString поле будет пустым. Level значения варьируются от признака к признаку, но интерпретации этих значений не задокументированы как часть распределения GSHHG и поэтому не преобразуются в символьные векторы.

Представлен до R2006a