exponenta event banner

reducem

Уменьшение плотности точек в векторных данных

Синтаксис

[latout,lonout] = reducem(latin,lonin)
[latout,lonout] = reducem(latin,lonin,tol)
[latout,lonout,cerr] = reducem(...)
[latout,lonout,cerr,tol] = reducem(...)

Описание

[latout,lonout] = reducem(latin,lonin) уменьшает количество точек в данных векторной карты. В этом случае допуск вычисляется автоматически.

[latout,lonout] = reducem(latin,lonin,tol) использует предоставленный допуск. Единицами измерения допуска являются степени дуги на поверхности сферы.

[latout,lonout,cerr] = reducem(...) кроме того, возвращает меру ошибки, вносимой упрощением. Продукция cerr - разница в длине дуги исходных и уменьшенных данных, нормированная исходной длиной.

[latout,lonout,cerr,tol] = reducem(...) также возвращает допуск, используемый в понижении, который полезен при автоматическом вычислении допуска.

Примеры

Сравните оригинальные и уменьшенные очертания округа Колумбия из usastatehi данные структуры состояния:

dc = shaperead('usastatehi',...
    'UseGeoCoords', true,...
    'Selector',{@(name) ...
     strcmpi(name,'district of columbia'), 'Name'});
lat = extractfield(dc, 'Lat')';
lon = extractfield(dc, 'Lon')';
[latreduced, lonreduced] = reducem(lat, lon);

lonlim = dc.BoundingBox(:,1)' + [-0.02 0.02];
latlim = dc.BoundingBox(:,2)' + [-0.02 0.02];

subplot(1,2,1)
usamap(latlim, lonlim); axis off
geoshow(lat, lon,...
    'DisplayType', 'polygon', 'FaceColor', 'blue')

subplot(1,2,2)
usamap(latlim, lonlim); axis off
geoshow(latreduced, lonreduced,...
    'DisplayType', 'polygon', 'FaceColor', 'yellow')

Совет

Векторные данные уменьшаются с использованием алгоритма упрощения линии Дугласа-Пекера. Этот метод рекурсивно подразделяет многоугольник до тех пор, пока ряд точек не может быть заменен сегментом прямой линии, при этом ни одна точка на этом участке не отклоняется от прямой линии больше, чем допуск. Расстояния, используемые для определения того, какие участки точек следует устранить, вычисляются в проекции Плита Карре.

Сокращенные географические данные не всегда могут быть пригодны для отображения. Если все промежуточные точки в наборе данных уменьшены, то линии, появляющиеся прямо в одной проекции, неправильно отображаются как прямые в других.

См. также

|

Представлен до R2006a