exponenta event banner

mapprofile

Интерполяция между ППМ на регулярной сетке данных

Синтаксис

[zi,ri,lat,lon] = mapprofile
[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon)
[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon,units)
[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon,ellipsoid)
[zi,ri,lat,lon] = mapprofile(___,'trackmethod','interpmethod')

Описание

mapprofile отображает профиль значений между ППМ на отображаемой регулярной сетке данных. mapprofile использует текущий объект, если это обычная сетка данных или первая регулярная сетка данных, найденная на текущих осях. Сетка zdata используется для профиля. Цветовые данные используются при отсутствии zdata. Результат отображается на новом рисунке.

[zi,ri,lat,lon] = mapprofile возвращает значения профиля без их отображения. Продукция zi содержит интерполированные значения вдоль больших окружностей между ППМ. ri - вектор связанных расстояний от первого ППМ в единицах степеней дуги вдоль поверхности. lat и lon - соответствующие широты и долготы.

[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon) принимает в качестве входных данных обычную сетку данных и векторы ППМ. Отображение сетки не требуется. Наборы ППМ могут быть разделены NaNs на линейные последовательности. Выходные диапазоны измеряются от первого ППМ в последовательности. R может быть объектом географической растровой ссылки, ссылочным вектором или ссылочной матрицей.

Если R - объект географической растровой ссылки, RasterSize свойство должно быть совместимым с size(Z).

Если R является ссылочным вектором, он должен быть 1 на 3 с элементами:

[cells/degree northern_latitude_limit western_longitude_limit]

Если R является ссылочной матрицей, она должна быть 3 на 2 и преобразовывать индексы растровых строк и столбцов в географические координаты или из них в соответствии с:

[lon lat] = [row col 1] * R

Если R является ссылочной матрицей, она должна определять (без вращения, без перекоса) соотношение, в котором каждый столбец сетки данных падает вдоль меридиана, а каждая строка падает вдоль параллели.

[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon,units) определяет единицы выходного диапазона вдоль профиля. Допустимые единицы измерения диапазона - любое значение расстояния, распознаваемое unitsratio. Расстояния поверхности вычисляются с использованием радиуса земли по умолчанию. Если опущено, 'degrees' предполагается.

[zi,ri,lat,lon] = mapprofile(Z,R,lat,lon,ellipsoid) использует предоставленное определение эллипсоида при вычислении диапазона вдоль профиля. ellipsoid является referenceSphere, referenceEllipsoid, или oblateSpheroid объект или вектор формы [semimajor_axis eccentricity]. Выходной диапазон указывается в тех же единицах расстояния, что и основные полуоси эллипсоида. Если не указать ellipsoid и R является ссылочным объектом с непустым GeographicCRS собственность, то mapprofile использует эллипсоид, содержащийся в Spheroid имущества geocrs объект в GeographicCRS имущество R. В противном случае mapprofile использует единичную сферу.

[zi,ri,lat,lon] = mapprofile(___,'trackmethod','interpmethod') управление используемыми методами интерполяции. Допустимые методы дорожки: 'gc' для дорожек большого круга между ППМ, и 'rh' для линий румба. Допустимыми методами интерполяции в матрице являются 'bilinear' для линейной интерполяции, 'bicubic' для кубической интерполяции, и 'nearest' для интерполяции ближайшего соседа. Если опущено, 'gc' и 'bilinear' предполагается.

Примеры

свернуть все

Загрузить растровые данные отметки и объект привязки географических ячеек для Корейского полуострова. Задайте профиль фасада. Затем постройте график вместе с данными о береговой линии и городских маркерах. При выборе более двух ППМ автоматически сгенерированный рисунок отображает результат в 3-D.

load korea5c
plat = [ 43  43  41  38];
plon = [116 120 126 128];
mapprofile(korea5c,korea5cR,plat,plon)
load coastlines
plotm(coastlat,coastlon)
geoshow('worldcities.shp','Marker','.','Color', 'red')

Этот пример показывает относительные размеры гор на севере Китая (верхний левый) по сравнению с глубинами Японского моря (нижний правый).

Во-первых, растровые данные высоты нагрузки и справочный объект географических ячеек для Корейского полуострова. Создайте объект оси карты с соответствующими пределами и отобразите данные как поверхность. Затем интерактивно выбирайте ППМ путем вызова mapprofile без входных аргументов. Выберите две ППМ: одну в верхнем левом углу и одну в нижнем правом углу, щелкнув мышью. После выбора последней точки нажмите Enter.

load korea5c
worldmap(korea5c,korea5cR)
meshm(korea5c,korea5cR)
demcmap(korea5c)
[zi,ri,lat,lon] = mapprofile;

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

figure
plot(deg2km(ri),zi/1000)
daspect([ 1 1/50 1 ]);
xlabel 'Range (km)'
ylabel 'Elevation (km)'

Получаемый профиль зависит от выбранных местоположений пересечений.

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

Показать, какие сухопутные и океанические районы лежат под большим кругом от Франкфурта до Сиэтла:

cities = shaperead('worldcities.shp', 'UseGeoCoords', true);
Seattle = strcmp('Seattle', {cities(:).Name});
Frankfurt = strcmp('Frankfurt', {cities(:).Name});
lat = [cities(Seattle).Lat cities(Frankfurt).Lat];
lon = [cities(Seattle).Lon cities(Frankfurt).Lon];
load topo60c
[valp,rp,latp,lonp] = ...
   mapprofile(topo60c,topo60cR, ...
   lat,lon,'km','gc','nearest');
figure
worldmap([40 80],[-135 20])
land = shaperead('landareas.shp', 'UseGeoCoords', true);
faceColors = makesymbolspec('Polygon',...
   {'INDEX', [1 numel(land)], 'FaceColor', ...
   polcmap(numel(land))});
geoshow(land,'SymbolSpec',faceColors)
plotm(latp,lonp,'r')
plotm(lat,lon,'ro')
axis off

См. также

|