В этом примере показано, как импортировать и отображать географические данные, содержащие координаты в проектируемой системе координат.
В частности, этот пример иллюстрирует, как
Импорт определенных наборов растровых и векторных данных
Создание отображения карты для визуализации данных
Отображение нескольких наборов данных на карте
Отображение нескольких наборов данных с координатами в географических и проекционных системах координат в одном отображении карты
Географические растровые данные, содержащие координаты в проектируемой системе координат, могут храниться в различных форматах, включая стандартные форматы файлов, такие как GeoTIFF, Spatial Data Transfer Standard (SDTS), NetCDF, HDF4 или HDF5. В этом примере показан импорт данных из файла GeoTIFF. Данные в файле содержат координаты в системе координат проекции координат карты в системе координат материковой зоны штата Массачусетс.
Координаты изображения в файле GeoTIFF, boston.tif, находятся в спроецированной системе координат. Вы можете определить это с помощью geotiffinfo и проверить PCS и Projection значения полей.
info = geotiffinfo('boston.tif');
disp(info.PCS)NAD83 / Massachusetts Mainland
disp(info.Projection)
SPCS83 Massachusetts Mainland zone (meters)
Единицы измерения длины координат определяются UOMLength в поле info структура.
disp(info.UOMLength)
US survey foot
Для импорта изображения и объекта пространственной ссылки используйте команду readgeoraster.
[boston,R] = readgeoraster('boston.tif');Изображение можно отобразить на обычных осях MATLAB с помощью mapshow, которая отображает изображение и устанавливает границы осей для пределов, определенных ссылочным объектом, R. Координаты, как упоминалось выше, находятся в US survey foot и относятся к происхождению к юго-западу от карты, из-за чего цифры велики. Координаты всегда положительны в пределах зоны.
mapshow(boston,R) axis image title('Boston')

Данные географических векторов, содержащие координаты в спроецированной системе координат, могут храниться в файлах формы. В этом примере показано, как импортировать векторные данные в спроецированную систему координат из файла формы. boston_roads.shp.
Импорт данных векторной линии из boston_roads.shp файл.
roads = shaperead('boston_roads.shp');Чтобы получить информацию о спроецированной системе координат, сначала верните информацию о файле формы в виде структуры. Затем запросите CoordinateReferenceSystem поле.
roadsInfo = shapeinfo('boston_roads.shp');
roadsInfo.CoordinateReferenceSystemans =
projcrs with properties:
Name: "NAD83 / Massachusetts Mainland"
GeographicCRS: [1×1 geocrs]
ProjectionMethod: "Lambert Conic Conformal (2SP)"
LengthUnit: "meter"
ProjectionParameters: [1×1 map.crs.ProjectionParameters]
Векторные и растровые данные в этом примере находятся в одной и той же спроецированной системе координат. Однако векторные данные находятся в единицах длины метра, в то время как растровые данные находятся в единицах длины съемочной стопы. Преобразование растровых данных в единицы измерения длины и отображение данных на тех же осях.
Преобразование координат растрового изображения из единиц US survey foot в метр.
R.XWorldLimits = R.XWorldLimits * unitsratio('m','sf'); R.YWorldLimits = R.YWorldLimits * unitsratio('m','sf');
Отображение растрового изображения и векторных данных с помощью mapshow.
figure
mapshow(boston,R)
mapshow(roads)
title('Boston and Roads')
Можно иметь географические данные, координаты которых находятся в широте и долготе, и другие данные, координаты которых находятся в проекционной системе координат. Эти наборы данных можно просмотреть на одном экране карты. В этом примере показано, как отображать данные в географической системе координат (широта и долгота) с данными в проекционной системе координат карты (система координат материковой зоны плоскости штата Массачусетс).
Прочитайте растровое изображение с мирфайлом, координаты которого выражены в широте и долготе. Использовать imread для чтения изображения и worldfileread для чтения файла мира и построения объекта пространственной ссылки.
filename = 'boston_ovr.jpg'; overview = imread(filename); overviewR = worldfileread(getworldfilename(filename), 'geographic', size(overview));
Для отображения обзорного изображения и изображения GeoTIFF на одном и том же дисплее карты необходимо создать отображение карты с использованием структуры проекции Mapping Toolbox™, содержащей информацию о проекции данных в проекционной системе координат Massachusetts State Plane Mainland Zone system. Для отображения карты в этой системе можно использовать информацию о проекции, содержащуюся в файле GeoTIFF. Используйте geotiff2mstruct создание структуры проекции Mapping Toolbox™ из содержимого информационной структуры GeoTIFF. geotiff2mstruct функция возвращает проекцию в единицах метра. Структура проекции используется для определения параметров проекции для отображения карты.
mstruct = geotiff2mstruct(info);
Используйте пределы широты и долготы бостонского обзорного изображения.
latlim = overviewR.LatitudeLimits; lonlim = overviewR.LongitudeLimits;
Создайте отображение карты, используя информацию о проекции, хранящуюся в структуре проекции карты, и задайте границы широты и долготы карты. Отображение географических данных в осях карты. geoshow проецирует координаты широты и долготы.
figure('Renderer', 'opengl') ax = axesm(mstruct, 'Grid', 'on',... 'GColor', [.9 .9 .9], ... 'MapLatlimit', latlim, 'MapLonLimit', lonlim, ... 'ParallelLabel', 'on', 'PLabelLocation', .025, 'PlabelMeridian', 'west', ... 'MeridianLabel', 'on', 'MlabelLocation', .05, 'MLabelParallel', 'south', ... 'MLabelRound', -2, 'PLabelRound', -2, ... 'PLineVisible', 'on', 'PLineLocation', .025, ... 'MLineVisible', 'on', 'MlineLocation', .05); geoshow(overview, overviewR) axis off tightmap title({'Boston and Surrounding Region', 'Geographic Coordinates'})

Поскольку координаты изображения GeoTIFF находятся в проекционной системе координат, используйте mapshow чтобы наложить более подробное изображение Бостона на дисплей. Постройте график границ бостонского изображения красным цветом.
mapshow(boston, R) plot(R.XWorldLimits([1 1 2 2 1]), R.YWorldLimits([1 2 2 1 1]), 'Color', 'red') title({'Boston and Surrounding Region', 'Geographic and Projected Coordinates'})

Увеличьте географическую область изображения GeoTIFF, установив границы осей до пределов бостонского изображения, и добавьте небольшой буфер. Обратите внимание, что размер буфера (delta) выражается в метрах.
delta = 1000; xLimits = R.XWorldLimits + [-delta delta]; yLimits = R.YWorldLimits + [-delta delta]; xlim(ax,xLimits) ylim(ax,yLimits) setm(ax, 'Grid', 'off');

Векторы дорог можно наложить на отображение карты. Используйте спецификацию обозначения, чтобы придать каждому классу дорог свой цвет.
roadColors = makesymbolspec('Line',... {'CLASS', 2, 'Color', 'k'}, ... {'CLASS', 3, 'Color', 'g'},... {'CLASS', 4, 'Color', 'magenta'}, ... {'CLASS', 5, 'Color', 'cyan'}, ... {'CLASS', 6, 'Color', 'b'},... {'Default', 'Color', 'k'}); mapshow(roads, 'SymbolSpec', roadColors) title({'Boston and Surrounding Region','Including Boston Roads'})

Также можно наложить данные из GPS, хранящиеся в GPX-файле. Импорт данных географических векторов точек из boston_placenames.gpx файл, включенный в программное обеспечение Mapping Toolbox™. Файл содержит координаты широты и долготы географических точек в части Бостона, штат Массачусетс, США. Использовать gpxread для чтения файла GPX и возврата geopoint vector.
placenames = gpxread('boston_placenames')placenames =
13×1 geopoint vector with properties:
Collection properties:
Geometry: 'point'
Metadata: [1×1 struct]
Feature properties:
Latitude: [42.3501 42.3515 42.3598 42.3584 42.3529 42.3626 42.3668 42.3668 42.3668 42.3557 42.3557 42.3562 42.3459]
Longitude: [-71.0870 -71.0926 -71.0662 -71.0598 -71.0662 -71.0789 -71.0995 -71.0564 -71.0801 -71.0662 -71.0495 -71.0662 -71.0564]
Name: {''BACK BAY'' 'BACK BAY FENS' 'BEACON HILL' 'BOSTON' 'BOSTON NECK' 'BROAD CANAL' 'CAMBRIDGE' 'COPPS HILL' ''EAST CAMBRIDGE'' 'FLAGSTAFF HILL' 'FORT POINT CHANNEL' 'FROG POND' 'SOUTH BAY'}
Description: {'PPL-SUBDVSN' 'MARSH' 'HILL' 'PPL' 'PENINSULA' 'CANAL' 'PPL' 'HILL' 'PPL-SUBDVSN' 'HILL' 'CHANNEL' 'LAKE' 'INLET'}
Наложите на карту имена плаценаций и увеличьте размер маркера, измените маркеры на круги и установите цвет их краев и граней на желтый.
geoshow(placenames, 'Marker','o', 'MarkerSize', 6, ... 'MarkerEdgeColor', 'y', 'MarkerFaceColor','y') title({'Boston and Surrounding Region','Including Boston Roads and Placenames'})

Файлы boston.tif и boston_ovr.jpg включают материалы, авторские права на которые принадлежат GeoEye, все права защищены. GeoEye была объединена в корпорацию DigityGlobe 29 января 2013 года. Для получения дополнительной информации о наборах данных используйте команды type boston.txt и type boston_ovr.txt.
Файлы boston_roads.shp и boston_placenames.gpx из Бюро географической информации (MassGIS), Содружество Массачусетса, Административная канцелярия служб технологии и безопасности. Для получения дополнительной информации о наборах данных используйте команды type boston_roads.txt и type boston_placenames_gpx.txt.