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, является полигон или строка географический массив структуры данных (гео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 обнаруживает присутствие индексного файла и использует его для записей доступа местоположением намного быстрее, чем это было бы без индекса.

Вывод структуры

Выходная структура 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'

Область исходного полигона полного разрешения в модулях 110km2.

'Container'

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

'Ancestor'

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

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

Имя поля

Полевое содержимое

'CrossesDateline'

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

Фон

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

Версия 3 (Релиз 1.3) gshhs_c.b (крупный) набор данных поставляется с тулбоксом в папке toolbox/map/mapdata. Для получения дополнительной информации ввести

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

Примеры

свернуть все

Считайте целый крупный набор данных. Пример использует крупный набор данных, потому что тулбокс включает демонстрационный крупный набор данных в папку toolbox/map/mapdata. Можно использовать подобный код, чтобы считать промежуточное звено, полное разрешение или высокое разрешение наборы данных 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])

Считайте целый крупный набор данных, создав индекс. Пример использует крупный набор данных, потому что тулбокс включает демонстрационный крупный набор данных в папку toolbox/map/mapdata. Можно использовать подобный код, чтобы считать промежуточное звено, полное разрешение или высокое разрешение наборы данных 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 геоstruct, возвращенного gshhs, чтобы отсечь данные в область и все еще поддержать топологию полигона.

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

Смотрите также

| | | | |

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

Для просмотра документации необходимо авторизоваться на сайте