gpxread

Описание

пример

P = gpxread(filename) считывает данные точки из файла GPS Exchange Format (GPX), filename, и возвращает n -by-1 геоточка, P, где n количество точек пути или точек, которые определяют маршрут или трассу.

gpxread выполняет поиск в файле сначала путевых точек, затем маршрутов, а затем отслеживает, и возвращает первый тип найденных данных. Поле Метаданных P определяет тип функции ('waypoint', 'track', или 'route') и любые дополнительные метаданные, связанные с путевой точкой, маршрутом или дорожкой. Если файл содержит несколько дорожек или маршрутов, P содержит точки, которые определяют первую дорожку или маршрут в файле. Если gpxread не удается найти функции в файле, он возвращает пустую геоточку.

P = gpxread(URL) считывает данные GPX из URL. The URL должен включать тип протокола (для примера, http://).

пример

S = gpxread(___,'Index',V) возвращает данные из файла GPX в векторе geoshape, а не в геоточке, только если файл содержит данные о дорожке или маршруте, и вы задаете значение 'Index' как вектор, V. Используйте этот синтаксис, когда вы хотите работать с данными как с линией, а не как с набором точек.

пример

___ = gpxread(___,Name,Value) считывает данные из файла GPX с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар, которые управляют различными характеристиками импорта. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек ('') и является нечувствительным к регистру. Можно задать несколько аргументы пары "имя-значение" в любом порядке.

Примеры

свернуть все

Чтение и отображение путевых точек из boston_placenames.gpx файл и наложение точек на boston.tif изображение.

Во-первых, импортируйте путевые точки и файл GeoTIFF.

p = gpxread('boston_placenames.gpx');
[A,R] = readgeoraster('boston.tif');

Получите проекционную структуру изображения GeoTIFF. Преобразуйте модуль длины пределов X и Y в метры для использования с проекционной структурой.

proj = geotiffinfo('boston.tif');
mstruct = geotiff2mstruct(proj);
R.XWorldLimits = R.XWorldLimits * proj.UOMLengthInMeters;
R.YWorldLimits = R.YWorldLimits * proj.UOMLengthInMeters;

Отобразите карту.

axesm(mstruct)
mapshow(A,R)

Отображать имена и положения каждой точки.

for k=1:length(p)
   textm(p(k).Latitude, p(k).Longitude, p(k).Name, ...
      'Color','k','BackgroundColor',[0.9 0.9 0],...
      'Interpreter','none');
end
geoshow(p)
xlim(R.XWorldLimits)
ylim(R.YWorldLimits)

Ознакомьтесь и отобразите маршрут от международного аэропорта Бостон Логан до MathWorks в Натике, штат Массачусетс.

Считайте информацию о маршруте из файла GPX.

route = gpxread('sample_route');

Вычислите latlim и lonlim с буфером 0,05.

[latlim, lonlim] = geoquadline(route.Latitude, route.Longitude);
[latlim, lonlim] = bufgeoquad(latlim, lonlim, .05, .05);

Отобразите маршрут.

fig = figure;
pos = fig.Position;
fig.Position = [300 300 1.25*pos(3) 1.25*pos(4)];
ax = usamap(latlim, lonlim);
setm(ax, 'MLabelParallel', 43.5)
geoshow(route.Latitude, route.Longitude)

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

turns = route(~cellfun(@isempty, route.Description));
turns = turns(end:-1:1);
n = length(turns);
colors = cool(n);
for k=1:n
   geoshow(turns(k).Latitude, turns(k).Longitude, ...
       'DisplayType','point','MarkerEdgeColor',colors(k,:),...
       'Tag','turn','DisplayName',turns(k).Description)
end
legend(findobj(ax,'Tag','turn'),'Location','SouthOutside')

Чтение журнала треков из файла GPX и отображение наложенных на веб-карту.

Чтение журналов треков из файла GPX. gpxread возвращает данные в объект geoshape.

tracks = gpxread('sample_tracks', 'Index', 1:2);

Отображение журналов треков на веб-карте с другим цветом для каждого журнала треков.

webmap('openstreetmap')
colors = {'cyan', 'red'};
wmline(tracks, 'Color', colors)

Измените масштаб веб-карты, чтобы просмотреть первый трек возле кампуса MathWorks в Натике.

[latlim, lonlim] = geoquadline(tracks(1).Latitude, tracks(1).Longitude);
wmlimits(latlim, lonlim)

Чтение путевых точек и отслеживание журнала из sample_mixed.gpx файл.

wpt = gpxread('sample_mixed');
trk = gpxread('sample_mixed', 'FeatureType', 'track');

Отобразите путевые точки и журнал трека на веб-карте.

webmap('worldimagery')
wmline(trk, 'OverlayName', 'Track Logs');

Добавьте веб- маркеров, чтобы отметить положения каждой точки пути.

wmmarker(wpt, 'FeatureName', wpt.Name, 'OverlayName', 'Waypoints')

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

Чтение журнала треков из sample_mixed.gpx файл.

trk = gpxread('sample_mixed', 'FeatureType', 'track');

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

timeStr = strrep(trk.Time, 'T', ' ');
timeStr = strrep(timeStr, '.000Z', '');
trk.DateNumber = datenum(timeStr, 31);
day = fix(trk.DateNumber(1));
trk.TimeOfDay = trk.DateNumber - day;

Отображение графика площади для значений повышения и времени.

figure
area(trk.TimeOfDay, trk.Elevation)
datetick('x', 13, 'keepticks', 'keeplimits')
ylabel('elevation (meters)')
xlabel('time(Z) hours:minutes:seconds')
title({'Elevation Area Plot', datestr(day)});

Figure contains an axes. The axes with title Elevation Area Plot 28-Aug-2010 contains an object of type area.

Вычислите и отобразите расстояние наземного пути. Преобразуйте расстояние в метрах в расстояние в американских съемочных милях.

e = wgs84Ellipsoid;
lat = trk.Latitude;
lon = trk.Longitude;
d = distance(lat(1:end-1), lon(1:end-1), lat(2:end), lon(2:end), e);
d = d * unitsratio('sm', 'meter');

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

trk.ElapsedTime = trk.TimeOfDay - trk.TimeOfDay(1);
figure
line(trk.ElapsedTime(2:end), cumsum(d))
datetick('x', 13)
ylabel('cumulative ground track distance (statute mile)')
xlabel('elapsed time  (hours:minutes:seconds)')
title({'Cumulative Ground Track Distance in Miles', datestr(day),  ...
   ['Total Distance in Miles: ' num2str(sum(d))]});

Figure contains an axes. The axes with title Cumulative Ground Track Distance in Miles 28-Aug-2010 Total Distance in Miles: 46.0637 contains an object of type line.

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

свернуть все

Имя файла GPX для открытия, заданное как строковый скаляр или вектор символов. Если файл находится не в текущей папке или в папке на MATLAB® путь, необходимо указать путь к папке. Если имя файла включает расширение '.gpx' (верхний или нижний регистр), можно опустить внутренний номер из filename.

Пример: 'boston_placenames'

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

Расположение в Интернете, содержащее данные GPX, заданное в виде URL. URL-адрес должен включать тип протокола (для примера, https://).

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

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

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

Пример: 'FeatureType','track'

Тип функции для чтения из файла, заданный как один из следующих: 'track', 'route', 'waypoint', или 'auto'. Если gpxread не удается найти указанную функцию в файле, он возвращает пустую геоточку.

Пример: 'FeatureType','waypoint'

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

Индекс путевой точки, дорожки или маршрута данных в файле, заданный как скаляр или вектор положительных целых чисел.

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

  • Если значение является вектором, а файл содержит путевые точки, gpxread возвращает точки пути, заданные вектором. Если файл содержит маршруты или дорожки (и не содержит путевых точек), gpxread возвращает указанные маршруты или журналы треков в векторе геосхемы. gpxread устанавливает поле Geometry вектора geoshape равным 'line'.

Пример: 'Index', [1:2] считывал бы до двух маршрутов или дорожек, если бы файл содержал маршруты или дорожки, в векторе геосхемы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Данные путевой точки, дорожки или маршрута возвращаются как n-на-1 геоточка, где n - количество точек.

Для журнала дорожек или маршрута с несколькими сегментами, gpxread конкатенирует координаты сегментов с NaN диафрагмы. NaN обозначает числовые элементы, не найденные в файле. Пустой символьный вектор ('') используется для обозначения текстовых элементов, не найденных в файле.

Отслеживайте или маршрутируйте данные, возвращенные как n-на-1 геоточка вектор

Подробнее о

свернуть все

waypoint

Интересующая точка или именованная функция на карте.

след

Упорядоченный список путевых точек, которые описывают путь.

маршрут

Упорядоченный список путевых точек, представляющих ряд поворотных точек, ведущих к месту назначения.

Совет

  • Кроме расширений, GPX версии 1.1 полностью поддерживается. При обнаружении любой другой версии выдается предупреждение. Однако в большинстве случаев файлы GPX версии 1.0 можно считать успешно, если они не содержат определенных тегов метаданных. Для получения дополнительной информации см. документацию по схеме GPX 1.1.

См. также

| |

Введенный в R2012a