Преобразуйте векторные данные в растровый формат

Можно преобразовать данные о векторе долготы широты в сетку в любом разрешении, вы принимаете решение сделать растровую базовую карту или слой сетки. Определенные инструменты Mapping Toolbox™ GUI помогают вам сделать часть этого, но можно также выполнить преобразования векторной графики в растровую из командной строки. Основная функция для gridding векторных данных vec2mtx, который выделяет линии сетке любого размера, вы указываете, отмечая линии 1 с и незанятые ячейки сетки с 0s. Сетка содержит, удваивается, но если вы хотите логическую сетку (см. Сетки Данных как Логические переменные), бросьте результат быть логическим массивом. Видеть пример, представление Creating Data Grids from Vector Data.

Если векторные данные состоят из многоугольников (закрашенные фигуры), основы с координатной сеткой являются всей пустотой. Можно дифференцировать их использующий encodem функция, вызывая его с массивом строк, столбцов и начальных значений, чтобы произвести новую сетку, содержащую многоугольные области, заполненные начальными значениями, чтобы заменить двоичные значения, сгенерированные vec2mtx. Видеть пример, представление Rasterize Polygons Interactively.

Создание сеток данных из векторных данных

В этом примере показано, как преобразовать векторные данные в растровые данные с помощью vec2mtx функция. Пример использует данные о закрашенной фигуре для Индианы от usastatehi файл форм. Для получения дополнительной информации смотрите, Преобразуют Векторные Данные в Растровый Формат.

Используйте shaperead получить данные о закрашенной фигуре для контура.

indiana = shaperead('usastatehi.shp',...
    'UseGeoCoords', true,...
    'Selector', {@(name)strcmpi('Indiana',name),'Name'});
inLat = indiana.Lat;
inLon = indiana.Lon;

Преобразуйте векторы в обычную сетку данных с помощью vec2mtx. Установите плотность сетки быть 40 ячейками на степень. Растеризируйте контур и сгенерируйте географический объект растровой привязки для него.

gridDensity = 40;
[inGrid,R] = vec2mtx(inLat,inLon,gridDensity);

Сделайте карту сетки данных в контрастировании цветов.

figure
axesm eqdcyl
meshm(inGrid,R)
colormap jet(4)

Figure contains an axes object. The axes object contains an object of type surface.

Настройте пределы карты.

setm(gca,'Flatlimit',R.LatitudeLimits,'FlonLimit',R.LongitudeLimits)
tightmap

Figure contains an axes object. The axes object contains an object of type surface.

Задайте точку seed и начальное значение. Чтобы заполнить (перекод) внутреннюю часть Индианы, вам нужна точка seed (который должен быть идентифицирован строкой и столбцом), и начальное значение (чтобы быть выделенным всем ячейкам в многоугольнике). Выберите среднюю строку и столбец сетки и выберите значение индекса 3, чтобы идентифицировать территорию при вызове encodem сгенерировать новую сетку. Последний аргумент (1) идентифицирует код для граничных ячеек, где заполнение должно остановиться.

inPt = round([size(inGrid)/2,3]);
inGrid3 = encodem(inGrid,inPt,1);

Очистите и перерисуйте карту с помощью заполненной сетки.

meshm(inGrid3,R)

Figure contains an axes object. The axes object contains 2 objects of type surface.

Постройте исходные векторы на сетке, чтобы видеть, как хорошо данные были растеризированы. Можно использовать инструмент Zoom на окне рисунка, чтобы исследовать результаты gridding более тесно.

plotm(inLat,inLon,'k')

Figure contains an axes object. The axes object contains 3 objects of type surface, line.

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