探空仪测得数据按照分层报表要求进行处理(程序)
来源:互联网 发布:免费站长源码 编辑:程序博客网 时间:2024/06/05 09:11
地面接收到的是GPS电子探空仪测得的是每个采样点的数据,而大气研究一般是按照高度对大气进行分层,研究每个高度区间大气的温度、湿度、气压、风场等参数的分布情况。提供给应用部门的气象产品往往也需要使用分层垂直剖面大气数据。因此,需要对探空仪测得的数据按高度区间进行处理,得到分层数据报表。
获得的GPS探空仪探测数据,需要对数据按照分层数据报表要求处理。由于低空大气活动比较强烈,高度2000m以下按照50m步长进行分层;高空大气活动相对平缓,因此2000m~10000m按照200m步长进行分层,10000m~30000m按照500m步长进行分层。
clear
clc
load D:\MATLAB7\work\qiu\snd1.tpu %存放有时间、温度、湿度、气压、高度
load D:\MATLAB7\work\qiu\snd2.wnd %存放有风向、风速
temp=snd1(:,2);%温度
shi=snd1(:,3);%湿度
pres=snd1(:,4);%压强
h=snd1(:,6);%高度
fx=snd2(:,3)*pi/180;%风向
fs=snd2(:,2);%风速
%高度0~2000m,40组数据,间隔50m
nn=1;
for i=1:40
xuhao=find(h<=(50*i) & h>(50*(i-1)));
n=length(xuhao);
%计算平均温度
sum1=sum(temp(xuhao));
temp_mean=sum1/n;
%计算平均湿度
sum2=sum(shi(xuhao));
shi_mean=sum2/n;
%计算平均气压
sum3=sum(pres(xuhao));
pres_mean=sum3/n;
%计算平均风速和风向
jxf=fs(xuhao).*cos(fx(xuhao));%经向风
wxf=fs(xuhao).*sin(fx(xuhao));%纬向风
jxf_mean=sum(jxf)/n;
wxf_mean=sum(wxf)/n;
fs_mean=sqrt(jxf_mean^2+wxf_mean^2);%平均风速
if wxf_mean>=0
fx_mean=acos(jxf_mean/fs_mean)*180/pi; %平均风向
else
fx_mean=(2*pi-acos(jxf_mean/fs_mean))*180/pi; %平均风向
end
store(nn,:)=[50*i temp_mean shi_mean pres_mean fs_mean fx_mean];
nn=nn+1;
end
%高度2000~10000m,80组数据,间隔100m
for i=1:80
xuhao=find(h<=(2000+100*i) & h>(2000+100*(i-1)));
n=length(xuhao);
%计算平均温度
sum1=sum(temp(xuhao));
temp_mean=sum1/n;
%计算平均湿度
sum2=sum(shi(xuhao));
shi_mean=sum2/n;
%计算平均气压
sum3=sum(pres(xuhao));
pres_mean=sum3/n;
%计算平均风速和风向
jxf=fs(xuhao).*cos(fx(xuhao));%经向风
wxf=fs(xuhao).*sin(fx(xuhao));%纬向风
jxf_mean=sum(jxf)/n;
wxf_mean=sum(wxf)/n;
fs_mean=sqrt(jxf_mean^2+wxf_mean^2);%平均风速
if wxf_mean>=0
fx_mean=acos(jxf_mean/fs_mean)*180/pi; %平均风向
else
fx_mean=(2*pi-acos(jxf_mean/fs_mean))*180/pi; %平均风向
end
store(nn,:)=[2000+100*i temp_mean shi_mean pres_mean fs_mean fx_mean];
nn=nn+1;
end
%高度10000m~30000,200组数据,间隔100m
for i=1:200
xuhao=find(h<=(10000+100*i) & h>(10000+100*(i-1)));
n=length(xuhao);
%计算平均温度
sum1=sum(temp(xuhao));
temp_mean=sum1/n;
%计算平均湿度
sum2=sum(shi(xuhao));
shi_mean=sum2/n;
%计算平均气压
sum3=sum(pres(xuhao));
pres_mean=sum3/n;
%计算平均风速和风向
jxf=fs(xuhao).*cos(fx(xuhao));%经向风
wxf=fs(xuhao).*sin(fx(xuhao));%纬向风
jxf_mean=sum(jxf)/n;
wxf_mean=sum(wxf)/n;
fs_mean=sqrt(jxf_mean^2+wxf_mean^2);%平均风速
if wxf_mean>=0
fx_mean=acos(jxf_mean/fs_mean)*180/pi; %平均风向
else
fx_mean=(2*pi-acos(jxf_mean/fs_mean))*180/pi; %平均风向
end
store(nn,:)=[10000+100*i temp_mean shi_mean pres_mean fs_mean fx_mean];
nn=nn+1;
end
xlswrite('shujubaobiao.xls',store);
figure(1)
plot(store(:,2),store(:,1)/1000)
ylabel('高度/km')
xlabel('平均温度/^oC')
grid on
figure(2)
plot(store(:,3),store(:,1)/1000)
ylabel('高度/km')
xlabel('平均湿度/%')
grid on
figure(3)
plot(store(:,4),store(:,1)/1000)
ylabel('高度/km')
xlabel('平均气压/hPa')
grid on
figure(4)
plot(store(:,5),store(:,1)/1000)
ylabel('高度/km')
xlabel('平均风速/(m/s)')
grid on
figure(5)
plot(store(:,6),store(:,1)/1000)
ylabel('高度/km')
xlabel('平均风向/^o')
grid on
0 0
- 探空仪测得数据按照分层报表要求进行处理(程序)
- 字符串按照要求对字符个数进行处理
- 如何对数据按某列进行分层处理
- 按照要求的输入输出格式进行日期字符串的转化
- RDLC报表处理程序(1)
- STM32:DMA方式接收SPI总线数据,并按照协议进行处理
- 对数据进行报表导出
- 上位机接收数据,并进行处理的一段程序
- (4.4.10)Android程序调试–LogCat按照日志信息级别进行输出和过滤
- C/C++写得一个计时器用于检查程序的处理数据性能
- 数据分层
- Report报表对数据进行分组显示
- FineReport报表如何进行数据可视化分析
- 【C语言】要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理:
- 实现数据按照自己的需要进行排序
- Treeview用于显示按照树形结构进行组织的数据
- List数据按照树状结构(tree)进行排序
- 【C++】按照下图的类层次要求编写程序【原创技术】
- C++控制台日志
- myeclipse装jad反编译插件
- Duilib介绍以及各个类的简介
- Yii框架学习-创建与设置默认控制器与载入模板
- 2014年9月创新工场校招笔试题
- 探空仪测得数据按照分层报表要求进行处理(程序)
- duilib中各控件响应的消息类型
- C语言算法
- 【iOS开发-11】UISlider滑动条的属性介绍以及于标签联合使用实时显示变动值
- 一个计算机高手的成长历程
- Make a Simple Gripper
- 黑马程序员——java拾遗之反射机制
- 自己定制spring的数据源
- 智能远程插排的设计