gshhs

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

Синтаксис

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

Описание

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

Структура output

Область структуры output 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 и выше), в структура output включены следующие дополнительные поля:

Имя поля

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

'RiverLake'

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

'AreaFull'

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

'Container'

Идентификатор контейнерного многоугольника, который окружает этот многоугольник. Установите значение -1, чтобы указать отсутствие.

'Ancestor'

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

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

Имя поля

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

'CrossesDateline'

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

Фон

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

Версия 3 (Release 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.

Примеры

свернуть все

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

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])

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

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 поля геоstruct, возвращенные gshhs чтобы отсечь данные в область и сохранить полигональную топологию.

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

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