爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8949|回复: 23

[程序设计] Matlab处理Saber大气数据遇到的一些问题

[复制链接]

新浪微博达人勋

发表于 2016-3-27 21:05:16 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
最近在做毕设,要求利用TIMED卫星SABER探测器所得到的数据进行大气建模。由于数据是NC文件,在用Mtlab对文件进行提取和处理时遇到一些问题。搜索了网上广为流传的批量处理程序,但是感觉有点问题,单个文件是209*17、210*24左右,共有48个文件,循环48次得到的却是210*8、210*8,不懂这个8是什么意思。还有就是我需要对温度、密度先平均,然后代入特定公式计算风场之类的,还需要提高分辨率,应该要用到三维插值或者神经网络?,请问一下我该怎么做呢,或者有什么好的方法呀?刚用Matlab不知道怎么办,求大神们指教呀!跪谢!!!{:eb511:}{:eb511:}

下面是我的程序和一些结果:

1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-28 08:35:50 | 显示全部楼层
每次读取都将之前的覆盖掉了,你重新改一下for循环中的变量赋值语句,将等号的左边加个{s}试试
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2016-3-31 19:23:28 | 显示全部楼层
本帖最后由 Carol_CHH 于 2016-3-31 19:45 编辑
rs06 发表于 2016-3-28 08:35
每次读取都将之前的覆盖掉了,你重新改一下for循环中的变量赋值语句,将等号的左边加个{s}试试

太感谢您啦~真的好使耶!都读出来了!
这个因为读取的数据是矩阵,所以要用元胞来存储的,对吗?
不过我发现数据里边有很多异常值(如图),我想把这些异常值处理掉,编了一个循环程序,可是数据并没有发生变化。是我编的程序有问题吗?

for i=1:48
    A=LonData{1,i};
    [M,N]=size(A);
    for m=1:M
        for n=1:N
            d=A(m,n);
            if d>200
               d=0;
            end
        end
    end
end

数值超大的异常数据

数值超大的异常数据
工作区.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-1 08:21:15 | 显示全部楼层
第一个问题:元胞数组一般是存储数据类型不一致的数组,或者行列数不一致的数组;
第二个问题:
for i=1:48
   
    [M,N]=size(LonData{1,i}(:,:));
    for m=1:M
        for n=1:N
            
            if LonData{1,i}(m,n)>200
               LonData{1,i}(m,n)=0;
            end
        end
    end
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-1 11:01:38 | 显示全部楼层
rs06 发表于 2016-4-1 08:21
第一个问题:元胞数组一般是存储数据类型不一致的数组,或者行列数不一致的数组;
第二个问题:
for i=1: ...

O(∩_∩)O谢谢~
不过不是很懂,为什么赋值给a之后再判断就不成功呢?
if LonData{1,i}(m,n)>200                改为:a=LonData{1,i}(m,n)
   LonData{1,i}(m,n)=0;                           if  a>200
       成功                                                   a=0;        失败
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-1 11:09:01 | 显示全部楼层
不明觉厉
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-4-1 11:41:16 | 显示全部楼层
Carol_CHH 发表于 2016-4-1 11:01
O(∩_∩)O谢谢~
不过不是很懂,为什么赋值给a之后再判断就不成功呢?
if LonData{1,i}(m,n)>200        ...

判断是成功了,但是你让a每次重新赋值为0,对你最终想要获取的结果没有影响哇
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-1 12:38:57 | 显示全部楼层
rs06 发表于 2016-4-1 11:41
判断是成功了,但是你让a每次重新赋值为0,对你最终想要获取的结果没有影响哇

(⊙v⊙)嗯,谢谢~
还有个问题就是,nc文件里的温度是二维(altitude*event)的,经纬度也是二维(。。。*event)。但是我想建立经纬度、高度构成的三维网格,每个格点对应一个温度值。我应该如何处理呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-1 12:39:02 | 显示全部楼层
rs06 发表于 2016-4-1 11:41
判断是成功了,但是你让a每次重新赋值为0,对你最终想要获取的结果没有影响哇

(⊙v⊙)嗯,谢谢~
还有个问题就是,nc文件里的温度是二维(altitude*event)的,经纬度也是二维(。。。*event)。但是我想建立经纬度、高度构成的三维网格,每个格点对应一个温度值。我应该如何处理呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-1 12:39:22 | 显示全部楼层
rs06 发表于 2016-4-1 11:41
判断是成功了,但是你让a每次重新赋值为0,对你最终想要获取的结果没有影响哇

(⊙v⊙)嗯,谢谢~
还有个问题就是,nc文件里的温度是二维(altitude*event)的,经纬度也是二维(。。。*event)。但是我想建立经纬度、高度构成的三维网格,每个格点对应一个温度值。我应该如何处理呢?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表