在进行车载定位算法开发时,为方便分析定位传感器的精度,往往需要将经纬度数据投影到真实地图上,除了能够很直观的展现定位性能外,在出现问题的时候,也能够辅助问题排查。Google Earth是最常用的轨迹投影分析工具,但在无法直接访问的情况下,有没有更为方便快捷的工具进行替代?
MATLAB是最常使用的数据分析工具,今天给大家介绍MATLAB里面非常实用的函数,利用十行代码画出优美轨迹图。Matlab在2018b版本开始引入geoscatter函数,用于在地理坐标中绘制散点图,其详细介绍页面为:geoscatter。
对于geoscatter函数的使用方法,代码介绍如下:
%加载经纬度数据
latitude = data1;%%
longitude = data2;%%
%调用函数画轨迹图
geoscatter(latitude, longitude);
geobasemap streets; %选择底图格式
grid on;
%设置栅格线格式
set(gca,'LineWidth',1.5,'GridLineStyle','--','GridColor','k','Gridalpha',1);
title('geoscatter画轨迹图');
效果图如图所示,可以很方面的通过鼠标滚轮进行局部放大缩小等操作。
其中geobasemap是用于设置地图底图格式,从官网上看,有街道图,道路图,卫星图等多种底图格式可选,本次选择卫星地图,详见:geobasemap。
有时候如果需要结合分析接收机CN/0,精度误差及RTK定位状态等多种第三变量时,如果能结合轨迹图更方便展示出定位数据在哪个具体场景的表现,这个时候就需要在地理轨迹图上添加一列数据信息。具体使用方法如下:
%加载数据
latitude = ; %加载数据
longitude = ;
u = ; %增加第三显示数据
geoscatter(latitude, longitude, 100, u, 'filled'); %增加第三状态显示数据
geobasemap streets;
grid on;
set(gca,'LineWidth',1.5,'GridLineStyle','--','GridColor','k','Gridalpha',1);
colormap jet; % 选择颜色映射
colorbar; % 显示颜色条
title('geoscatter画轨迹图');
如果选取卫星接收机的CN/0值作为第三分析数据,画图效果如下:
同理可分析定位误差,差分状态等信息。
通过以上方式可以快速将经纬度数据投影至地图,并结合第三状态信息,快速分析定位性能。