爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4096|回复: 2

[求助] 格点插值到站点

[复制链接]

新浪微博达人勋

发表于 2017-7-8 18:19:08 | 显示全部楼层 |阅读模式

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

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

x
各位大神!本人最近刚好要用反距离插值法把格点数据插值到站点上,参考了论坛一位前辈分享的源程序,但输出数据不对,自己找不出问题,求指点
代码如下:
program id_interp
implicit none

!声明变量
real lat,lon,d,dtotal,temp(141,81,6)
integer i,j,k,irec
integer,parameter::nx=141,ny=81
real :: disdum(141,81,6)
real :: valstn(6)
!声明结束

!开始程序
open(11,file='e:\test\1981_1982.grd',form='unformatted',access='direct',recl=141*81*1)
open(12,file='e:\test\c52446.txt',form='formatted')
read(*,*) lon,lat
irec=0
do k=1,6
  irec=irec+1
  read(11,rec=irec) ((temp(i,j,k),i=1,141),j=1,81)
enddo

do k=1,6 !! 需要给出时间循环个数
dtotal=0.
disdum(:,:,:)=0.
do j=1,81
  do i=1,141
    if (abs((i-1)*0.5+70-lon)<=0.5.and.abs((j-1)*0.5+15-lat)<=0.5) then
        d=1/(((i-1)*0.5+70-lon)**2+((j-1)*0.5+15-lat)**2)
           disdum(i,j,k)=d
            dtotal=dtotal+d
    endif
  enddo
enddo
  
do j=1,81
  do i=1,141
    if(disdum(i,j,k)>0.) then
      valstn(k)=temp(i,j,k)*(disdum(i,j,k)/dtotal)     
    endif
  enddo
enddo

enddo !! 时间循环结束

write(12,*) (valstn(k),k=1,6)

end
!程序结束

万分感谢!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-8-19 16:48:25 | 显示全部楼层
您好 请问你是用的matlab还是用的payhon进行插值的呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 17:12:36 | 显示全部楼层
您好  请问您是用的什么进行插值呢 ?matlab吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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