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

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

Структура 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'

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

'Ancestor'

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

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

Имя поля

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

'CrossesDateline'

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

Фон

Глобальная Последовательная Иерархическая География С высоким разрешением (раньше Глобальная Последовательная Иерархическая Береговая линия С высоким разрешением) была создана Паулем Весселом из Гавайского университета и Уолтером Х.Ф. Смитом из 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 поля геоstruct, возвращенного gshhs отсечь данные в вашу область и все еще обеспечить топологию многоугольника.

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

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

| | | | |

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