Этот пример иллюстрирует импорт и отображение географических данных, содержащих координаты в проективной системе координат-привязок.
В частности, этот пример иллюстрирует, как
Импорт определенных наборов растровых и векторных данных
Создайте отображения карты для визуализации данных
Отобразите несколько наборов данных в отображении карты
Отобразите несколько наборов данных с координатами в географических и проективных системах координат-привязок на одном отображении карты
Географические растровые данные, содержащие координаты в проективной системе координат, могут храниться в различных форматах, включая стандартные форматы файлов, такие как GeoTIFF, Стандарт пространственной передачи данных (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')
Географические векторные данные, которые содержат координаты в проективной системе координат, могут храниться в файлах shapefiles. Этот пример иллюстрирует, как импортировать векторные данные в проективную систему координат-привязок из файла shapefile, boston_roads.shp
.
Импортируйте данные о векторных линиях из boston_roads.shp
файл.
roads = shaperead('boston_roads.shp');
Чтобы получить информацию о проективной системе координат, сначала верните информацию о файле shapefile как о структуре. Затем запросите CoordinateReferenceSystem
поле.
roadsInfo = shapeinfo('boston_roads.shp');
roadsInfo.CoordinateReferenceSystem
ans = projcrs with properties: Name: "NAD83 / Massachusetts Mainland" GeographicCRS: [1×1 geocrs] ProjectionMethod: "Lambert Conic Conformal (2SP)" LengthUnit: "meter" ProjectionParameters: [1×1 map.crs.ProjectionParameters]
Векторные и растровые данные в этом примере находятся в одной проективной системе координат. Однако данные векторы указаны в модули длины метра, в то время как растровые данные указаны в модуль длины исследовательского стопа. Преобразуйте растровые данные в модули длины и отобразите данные на тех же осях.
Преобразуйте координаты растрового изображения из модулей США в метр.
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')
Вы можете иметь географические данные, координаты которых расположены в широте и долготе, и другие данные, координаты которых находятся в проективной системе координат. Эти наборы данных можно отобразить в том же отображении карты. Этот пример иллюстрирует отображение данных в географической системе координат (широта и долгота) с данными в проективной системе координат карты (Плановая проекция штата Массачусеттс Zone coordinate system).
Прочтите растровое изображение с worldfile, координаты которого по широте и долготе. Использование imread
для чтения изображения и worldfileread
чтобы считать файл worldfile и создать пространственный объект привязки.
filename = 'boston_ovr.jpg'; overview = imread(filename); overviewR = worldfileread(getworldfilename(filename), 'geographic', size(overview));
Чтобы отобразить обзорное изображение и изображение GeoTIFF на том же отображении карты, необходимо создать отображение карты с помощью проекционной структуры Mapping Toolbox™, содержащей информацию о проекции для данных в проективной системе координат Плановой проекции штата Массачусеттс системе координат зоны. Чтобы создать карту, отображение в этой системе, можно использовать информацию о проекции, содержащуюся в файле GeoTIFF. Используйте geotiff2mstruct
функция для создания проекционной структуры Mapping Toolbox™ из содержимого информационной структуры GeoTIFF. The 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 путем установки пределов осей в пределы бостонского изображения и добавления небольшого буфера. Обратите внимание, что buffer size (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
включает материалы, авторские права на которые принадлежат Геоглаз, все права защищены. Геоглаз была объединена в корпорацию DigitalGlobe 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
.