los2

Видимость угла обзора между двумя точками в ландшафте

Синтаксис

vis = los2(Z,R,lat1,lon1,lat2,lon2)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt,alt2opt)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt, ...
  alt2opt,actualradius)
vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt, ...
  alt2opt,actualradius,effectiveradius)
[vis,visprofile,dist,H,lattrk,lontrk] = los2(...)
los2(...)

Описание

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

vis = los2(Z,R,lat1,lon1,lat2,lon2) вычисляет взаимную видимость между парами точек на цифровой карте вертикального изменения. Вертикальные изменения обеспечиваются как обычная сетка данных Z содержа вертикальные изменения в модулях метров. Две точки обеспечиваются как векторы из широт и долгот в модулях степеней. Получившаяся логическая переменная vis равно тому, когда две точки отображаются друг другу и нулю, когда угол обзора затенен ландшафтом. Если какой-либо из входных параметров пуст, los2 попытки собрать данные из текущей системы координат. С одним или несколькими выходными аргументами не создаются никакие фигуры, и только данные возвращены.

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 матрица привязки, она должна задать (невращательный, нескошенный) отношение, в котором каждый столбец сетки данных падает вдоль меридиана и каждой строки падения вдоль параллели. Интерполяция ближайшего соседа используется по умолчанию. NaN возвращен для точек вне пределов сетки или для который lat или lon содержите NaN. Все углы находятся в модулях степеней.

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1) помещает первую точку на заданной высоте в метрах выше поверхности (на башне, например). Это эквивалентно помещению точки на башне. Если не использовано, точка 1 принята, чтобы быть на поверхности. alt1 может быть или скаляр или вектор с той же длиной как lat1, lon1, lat2, и lon2.

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2) места обе точки в заданные высоты в метрах выше поверхности. alt2 может быть или скаляр или вектор с той же длиной как lat1, lon1, lat2, и lon2. Если alt2 не использован, точка 2 принята, чтобы быть на поверхности.

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt) управляет интерпретацией alt1 как любой относительная высота (alt1opt равняется 'AGL', значение по умолчанию) или абсолютная высота (alt1opt равняется 'MSL'). Если высотной опцией является 'AGL', alt1 интерпретирован как высота точки 1 в метрах выше ландшафта (“над уровнем земли”). Если alt1opt 'MSL', alt1 интерпретирован как высота выше нуля (“средний уровень моря”).

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt,alt2opt) управляет интерпретацией ALT2.

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt, ...
  alt2opt,actualradius)
делает вычисление видимости на сфере с заданным радиусом. Если не использовано, радиус земли в метрах принят. Высоты, вертикальные изменения и радиус должны быть в тех же модулях. Эта форма вызова является самой полезной для расчетов на телах кроме земли.

vis = los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt2,alt1opt, ...
  alt2opt,actualradius,effectiveradius)
принимает больший радиус для распространения угла обзора. Это может составлять искривление пути прохождения сигнала из-за преломления в атмосфере. Например, радио-распространение в атмосфере обычно обрабатывается как распространение прямой линии на сфере с 4/3 радиус земли. В этом случае последними двумя аргументами был бы R_e и 4/3*R_e, где R_e радиус земли. Используйте Inf как эффективный радиус для плоских наземных вычислений видимости. Высоты, вертикальные изменения и радиусы должны быть в тех же модулях.

[vis,visprofile,dist,H,lattrk,lontrk] = los2(...), для скалярных входных параметров (lat1, lon1, и т.д.), возвращает векторы из точек вдоль пути между двумя точками. visprofile логический вектор, содержащий верный (logical(1)) где промежуточные точки отображаются и являются ложными (logical(0)) в противном случае. dist расстояние вдоль пути (в метрах или модулях радиуса). H содержит профиль ландшафта относительно вертикальной данной величины вдоль пути. lattrk и lontrk широты и долготы точек вдоль пути. Для векторных входных параметров los2 возвращает visprofiledist , H, lattrk, и lontrk как массивы ячеек, с одной ячейкой на элемент lat1,lon1, и т.д.

los2(...), без выходных аргументов, отображает профиль видимости между двумя точками на новом рисунке.

Примеры

Найдите угол возвышения степеней точки 90 от наблюдателя

Найдите угол возвышения точки 90 степенями от наблюдателя, принимающего, что наблюдатель и цель оба на 1 000 км выше Земли.

lat1 = 0; 
lon1 = 0; 
alt1 = 1000*1000;
lat2 = 0; 
lon2 = 90; 
alt2 = 1000*1000;
[az, elev, r] = geodetic2aer(lat2,lon2,alt2,lat1,lon1,alt1,referenceEllipsoid('grs 80'))
az = 90
elev = -45
r = 1.0434e+07

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

Z = zeros(181,361);
R = georefpostings([-90 90],[-180 180], size(Z))
R = 
  GeographicPostingsReference with properties:

              LatitudeLimits: [-90 90]
             LongitudeLimits: [-180 180]
                  RasterSize: [181 361]
        RasterInterpretation: 'postings'
            ColumnsStartFrom: 'south'
               RowsStartFrom: 'west'
     SampleSpacingInLatitude: 1
    SampleSpacingInLongitude: 1
      RasterExtentInLatitude: 180
     RasterExtentInLongitude: 360
            XIntrinsicLimits: [1 361]
            YIntrinsicLimits: [1 181]
        CoordinateSystemType: 'geographic'
               GeographicCRS: []
                   AngleUnit: 'degree'


los2(Z,R,lat1,lon1,lat2,lon2,alt1,alt1); 

Определите угол обзора

Z = 500*peaks(100);
refvec = [1000 0 0];
[lat1, lon1, lat2, lon2] = deal(-0.027, 0.05, -0.093, 0.042);
los2(Z,refvec,lat1,lon1,lat2,lon2,100);

figure;
axesm('globe','geoid',earthRadius('meters'))
meshm(Z, refvec, size(Z), Z); axis tight
camposm(-10,-10,1e6); camupm(0,0)
demcmap('inc', Z, 1000); shading interp; camlight
[vis,visprofile,dist,h,lattrk,lontrk] = ... 
los2(Z,refvec,lat1,lon1,lat2,lon2,100);
plot3m(lattrk([1;end]),lontrk([1; end]),...
h([1; end])+[100; 0],'r','linewidth',2)
plotm(lattrk(~visprofile),lontrk(~visprofile),...
h(~visprofile),'r.','markersize',10)
plotm(lattrk(visprofile),lontrk(visprofile),...
h(visprofile),'g.','markersize',10)

Смотрите также

|

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