6、卫星测高数据处理:指定经纬度计算Height

1、计算原理

Height=Altitude-Range

  • Height为水面到参考椭球的距离,此为大地高
  • Altitude为卫星轨道至参考椭球的距离
  • Range为卫星至水位的距离

2、matlab代码

fname_in     = 'JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
cycle_number = ncreadatt(fname_in,'/','cycle_number');
pass_number  = ncreadatt(fname_in, '/', 'pass_number');
time         = ncread(fname_in,'time'); % 时间
lat          = ncread(fname_in,'lat');  % 纬度
lon          = ncread(fname_in,'lon');  % 经度
alt          = ncread(fname_in,'alt');  % 轨道高
range        = ncread(fname_in, 'range_ku');
 
lat_index     = find(lat >= 22.2484 & lat <= 22.3975); % 选出纬度在该区域的数据
is_range_nan  = isnan(range);          % 返回与range一样大小的向量,判断range的值是否为NaN,是则为1,不是则为0
out_file_id   = fopen('data.txt','w'); % 存放数据文件
 
for j = min(lat_index) : max(lat_index)
    if(is_range_nan(j) == 0)        % 不为缺省值才做计算
        height = alt(j) - range(j); % 计算水位高
        fprintf(out_file_id, '%d\t%d\t%.3f\t%.3f\t', cycle_number, pass_number, lon(j), lat(j));
        fprintf(out_file_id, '%.3f\t%.3f\t%.3f\t%.8f\n', alt(j), range(j), height, time(j));
    end
end
fclose(out_file_id);

3、结果

6	240	123.979	22.356	1341770.279	1341764.618	5.661	274231709.82634497
6	240	124.001	22.307	1341759.464	1341735.933	23.531	274231710.84649801
6	240	124.022	22.258	1341748.669	1341725.692	22.977	274231711.86665201

每一列一次解释为:

  • 6 cycle
  • 240 pass
  • 123.979 经度lon
  • 22.356 纬度lat
  • 1341770.279 轨道高alt
  • 1341764.618 测距值range
  • 5.661 计算得到的高程
  • 274231709.82634497 时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kangkang康米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值