interp

Интерполяция географических данных

Описание

interpvalue = interp(pd,lat,lon) возвращает интерполированные значения из данных распространения для каждой точки запроса, заданной в векторах широты и долготы. Интерполяция выполняется с использованием метода данного , имеющего разброса. Значениям, соответствующим точкам запроса за пределами области данных, присваивается NaN.

пример

interpvalue = interp(pd,Name,Value) возвращает интерполированные значения с дополнительными опциями, заданными аргументами пары "имя-значение".

Примеры

свернуть все

Определите имена и местоположения сайтов вокруг Бостона.

names = ["Fenway Park","Faneuil Hall","Bunker Hill Monument"];
lats = [42.3467,42.3598,42.3763];
lons = [-71.0972,-71.0545,-71.0611];

Создайте массив сайтов передатчика.

txs = txsite("Name", names,...
       "Latitude",lats,...
       "Longitude",lons, ...
       "TransmitterFrequency",2.5e9);

Вычислите мощность приемника данные для каждой площадки передатчика.

maxr = 20000;
pd1 = coverage(txs(1),"MaxRange",maxr);
pd2 = coverage(txs(2),"MaxRange",maxr);
pd3 = coverage(txs(3),"MaxRange",maxr);

Вычислите прямоугольник, содержащий местоположения всех данных.

locs = [location(pd1); location(pd2); location(pd3)];
[minlatlon, maxlatlon] = bounds(locs);

Создайте сетку расположений по прямоугольнику.

gridlength = 300;
latv = linspace(minlatlon(1),maxlatlon(1),gridlength);
lonv = linspace(minlatlon(2),maxlatlon(2),gridlength);
[lons,lats] = meshgrid(lonv,latv);
lats = lats(:);
lons = lons(:);

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

v1 = interp(pd1,lats,lons);
v2 = interp(pd2,lats,lons);
v3 = interp(pd3,lats,lons);

Создайте данные распространения, содержащие минимальные мощности приемника значения.

minReceivedPower = min([v1 v2 v3],[],2,"includenan");
pd = propagationData(lats,lons,"MinReceivedPower",minReceivedPower);

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

sensitivity = -110;
contour(pd,"Levels",sensitivity:-5,"Type","power")

Входные параметры

свернуть все

Данные распространения, заданные как propagationData объект.

Значения координат широты, заданные в виде вектора в десятичных степенях со ссылкой на эллипсоид Земли. моделируйте WGS-84. Координаты широты должны быть в области значений [-90 90].

Значения координат долготы, заданные в виде вектора в десятичных степенях со ссылкой на эллипсоид Земли. моделируйте WGS-84.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Method','linear'

Переменная данных для интерполяции, заданная как разделенная разделенными запятой парами, состоящая из 'DataVariableName' и вектор символов или строковый скаляр, соответствующий имени переменной в таблице данных, используемой для создания propagationData объект контейнера. Значение по умолчанию является DataVariableName свойство в propagationData.

Типы данных: char | string

Метод, используемый для интерполяции данных, заданный как разделенная запятыми пара, состоящая 'Method' и одно из следующих:

  • 'natural' - Естественная соседняя интерполяция

  • 'linear' - Линейная интерполяция

  • 'nearest' - Интерполяция по ближайшему соседу

Типы данных: char | string

Выходные аргументы

свернуть все

Интерполированные значения из данных распространения для каждой точки запроса, заданные в векторах широты и долготы, возвращаются как числовой вектор.

Введенный в R2020a