爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4096|回复: 5

[求助] 关于CPC土壤水数据采样率的问题(如何将0.5°转为1°)

[复制链接]

新浪微博达人勋

发表于 2013-7-10 15:57:57 | 显示全部楼层 |阅读模式

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

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

x
大家好,我在学习的过程中又遇到了点问题,希望得到大家的帮助。

我在ftp://ftp.cpc.ncep.noaa.gov/wd51yf/global_monthly/gridded_binary/ 可以下载CPC的关于土壤水的以月为单位的数据的下载,通过简单的fortran程序也可以完成对数据的读取。

但是这里数据的分辨率为0.5°×0.5°的,我需要的数据为1°×1°的,如果我直接隔一个取一个数据的话,结果似乎和原来得到的差不多(通过画图,直观比较,没有太详细),我们知道这样得到的结果很不可靠,有些关键数据可能就被给采样丢失了,诸位有更好的方法吗?

1.png
如上简图,每个节点都由值,但是我们只需用红色节点的值(0.5°--->1°,间隔为0.5°),如果这样编程,似乎考虑的有点多,有好点的办法吗,求助各位大侠!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-10 16:04:21 | 显示全部楼层
取周围九点的加权平均?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-10 16:12:03 | 显示全部楼层

这个看起来有点麻烦啊。
我现在的策略是,分两步,第一步对经度方向每两个值进行一下平均,第二步对纬度方面每两个值进行一下平均,如果成功了,我再贴出来,同时更希望各位高手帮帮忙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-10 16:46:56 | 显示全部楼层
jeydragon 发表于 2013-7-10 16:12
这个看起来有点麻烦啊。
我现在的策略是,分两步,第一步对经度方向每两个值进行一下平均,第二步对纬度 ...

简单点嘛那就周围九点加起来平均下- -
复杂点嘛比如中间点是权重4 上下左右点权重2 斜着相邻权重是1 然后4*中间+2*上下左右+1*斜着 最后除以(4+2*4+1*4)- -我也就随便一说~你自己试试好了 其实都不难
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-10 20:00:49 | 显示全部楼层
我最后是这么实现的, 也算是如果大家有这方面需求,一个简单的借鉴,因为我并不需要太高精度的东西,诚如楼上推荐的,不过看起来听起来比较麻烦似的,所以我就先对精度方向相邻的进行一个平均作为一个新的值,然后再对纬度方面上每两个值进行平均得到一个新的值,这样我就得到一个新的数组。

代码如下:

     Program read_soil_moisture
     implicit none
     integer,parameter:: im=720,jm=360
      real:: w(im,jm)
      real*8:: sm1(im/2,jm)
      real*8:: sm(im/2,jm/2)
      
      
      integer:: i,j
      open(11,file='w.200912.mon',form='unformatted',convert='big_endian')
      open(12,file='200912_new.txt',status='replace')

      read(11) w
      do j=1,360
         do i=1,360
            sm1(i,j)=(w(2*i,j)+w(2*i-1,j))/2.d0
          enddo
       enddo
      
       do i=1,im/2
         do j=1,jm/2
             sm(i,j)=(sm1(i,2*j)+sm1(i,2*j-1))/2.d0
               write(12,'(2I5,f10.3)') i,j-90,sm(i,j)  
          enddo
       enddo
      End Program read_soil_moisture
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-7-19 11:43:45 | 显示全部楼层
jeydragon 发表于 2013-7-10 20:00
我最后是这么实现的, 也算是如果大家有这方面需求,一个简单的借鉴,因为我并不需要太高精度的东西,诚如 ...

楼主你好,我是用matlab读取的cpc文件,最后提取得到了每个月份的720*360excel文件,简单的改了后缀,用了你给出的代码处理,但是输出的结果都为0,因为对Fortran不是很懂,我觉得应该是输入文件格式问题,想问楼主输入文件应该为什么格式,我的文件应做如何修改才可以处理呢?盼回复,谢谢!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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