使用Matlab的mapping tool在球坐标系下画图

尝试了一下在Matlab下,在地图上绘制数据,但是效果没有python的basemap这个好。

这里以卫星重力数据画图为例,记录一下使用过程。

数据来源 :采用Eigen6C4全球重力位模型,用开源软件GrafLab,计算 g r g_r gr, g λ g_\lambda gλ, g ϕ g_\phi gϕ, 并画出其中的 g r g_r gr。该软件计算时自动加上了向心力。

将计算的结果输出到total.txt文件里,画图流程如下

clear all
close all
data=load('total.txt');
% data=load('total_magnitude.txt');
latitude=data(:,1);
longitude=data(:,2);
gx_topo_normal=data(:,3);
gy_topo_normal=data(:,4);
gz_topo_normal=data(:,5);

LATI=reshape(latitude,181,360);
LONGI=reshape(longitude,181,360);
GZ=reshape(gz_topo_normal,181,360);
GZ=-GZ*1e-5;%把方向改为朝下

%画图
clear all
close all
data=load('total.txt');
% data=load('total_magnitude.txt');
latitude=data(:,1);
longitude=data(:,2);
gx=data(:,3);
gy=data(:,4);
gz=data(:,5);

LATI=reshape(latitude,181,360);
LONGI=reshape(longitude,181,360);
GZ=reshape(gz,181,360);
GZ=-GZ*1e-5;%把方向改为朝下

%画图
close all
figure('Position',[100 100 850 450])
ax = worldmap('World');
geoshow(LATI,LONGI,GZ,'DisplayType', 'texturemap');
hcb = colorbar('eastoutside','fontsize',12);
geoshow('landareas.shp', 'FaceColor','none');
set(get(hcb,'Title'),'String','m/s^2','fontsize',14)
plabel('PlabelLocation',30)%纬线间隔
mlabel('MlabelLocation',90)%子午线间隔
setm(gca,'FontSize',12)
gridm('on')
axis off
tightmap

使用Matlab的mapping tool在球坐标系下画图_第1张图片

两极的重力比赤道大,主要是向心力的影响。

你可能感兴趣的:(Matlab,Matlab,Mapping,tool)