Можно преобразовать данные о векторе долготы широты в сетку в любом разрешении, вы принимаете решение сделать растровую базовую карту или слой сетки. Определенные инструменты 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)
Настройте пределы карты.
setm(gca,'Flatlimit',R.LatitudeLimits,'FlonLimit',R.LongitudeLimits) tightmap
Задайте точку seed и начальное значение. Чтобы заполнить (перекод) внутреннюю часть Индианы, вам нужна точка seed (который должен быть идентифицирован строкой и столбцом), и начальное значение (чтобы быть выделенным всем ячейкам в многоугольнике). Выберите среднюю строку и столбец сетки и выберите значение индекса 3, чтобы идентифицировать территорию при вызове encodem
сгенерировать новую сетку. Последний аргумент (1) идентифицирует код для граничных ячеек, где заполнение должно остановиться.
inPt = round([size(inGrid)/2,3]); inGrid3 = encodem(inGrid,inPt,1);
Очистите и перерисуйте карту с помощью заполненной сетки.
meshm(inGrid3,R)
Постройте исходные векторы на сетке, чтобы видеть, как хорошо данные были растеризированы. Можно использовать инструмент Zoom на окне рисунка, чтобы исследовать результаты gridding более тесно.
plotm(inLat,inLon,'k')