exponenta event banner

Растрирование полигонов в интерактивном режиме

В этом примере показано, как использовать encodem с начальными точками, найденными с помощью getseeds функция для заполнения нескольких многоугольников после того, как они будут привязаны к сетке. Пример извлекает данные для Индианы и окружающих ее штатов, а затем удаляет нежелательные области этих полигонов с помощью maptrimp .

Извлеките данные для Индианы и ее соседей, передав их имена в массиве ячеек shaperead.

pcs = {'Indiana', 'Michigan', 'Ohio', 'Kentucky', 'Illinois'};

centralUS = shaperead('usastatelo.shp',...
    'UseGeoCoords', true,...
    'Selector',{@(name)any(strcmpi(name,pcs),2), 'Name'});

meLat = [centralUS.Lat];
meLon = [centralUS.Lon];

Растрируйте обрезанные многоугольники с разрешением 1 дуга (60 ячеек на градус), также создавая растровый опорный объект.

[meGrid,meR] = vec2mtx(meLat,meLon,60);

Настройте рисунок карты и отобразите только что созданную двоичную сетку.

figure
axesm eqdcyl
geoshow(meLat,meLon,'Color','black');

Используйте getseeds функция для выбора пяти начальных точек, по одной в каждом из контуров Индианы, Мичигана, Огайо, Кентукки и Иллинойса. getseeds функция изменяет курсор на перекрестие. Начальные точки выбираются путем установки курсора в пределах границы состояния и щелчка мыши. getseeds функция возвращает элемент управления в командную строку после выбора пяти расположений в окне рисунка.

[row,col,val] = getseeds(meGrid,meR,5,[3 4 5 6 7]);

Заполните каждое состояние уникальным значением, создав новую сетку, используя encodem функция.

meGrid5 = encodem(meGrid,[row col val],1);

Показ meGrid5 чтобы увидеть результат.

clma
meshm(meGrid5,meR)