爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9708|回复: 16

[秀图] [已解決]有關站點資料畫等值線圖問題想請教

[复制链接]

新浪微博达人勋

发表于 2016-3-21 14:46:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 addname 于 2016-3-24 14:01 编辑

想請教一下,讀取完站點資料後,將資料點畫圖出來很正常,

站點資料

站點資料

格點資料也可以正常畫圖,但是插值畫等值線圖時卻變成底下這模樣,不知道是哪裡出了問題

等值線圖

等值線圖



station.txt (13.5 KB, 下载次数: 102)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 15:55:18 | 显示全部楼层
addname 发表于 2016-3-22 09:36
謝謝您,已經可以畫出來了,原來是我的分辨率太大所以畫不出來,一直以為格點數要多,才夠多格 ...

凑个热闹:MeteoInfoLab脚本示例:站点数据读取插值http://bbs.06climate.com/forum.p ... 091&fromuid=106
(出处: 气象家园)

station_taiwan.png

密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

 成长值: 19710
发表于 2016-3-21 18:40:29 | 显示全部楼层
测试了下,你生成二进制文件的效率太低了,在你的基础上,重新改了下,还有你原来的程序读取温度的数据是有问题的,因为你的温度数据存在-9997的值,猜测可能是缺测值,所以你这样读“read(12,'(a6,1x,i10,10x,f4.1)') id,date,temp”不是一个robust的做法,给你做了相应的修改~具体看
  1. program test
  2.     Implicit none
  3.     integer,parameter :: nstid = 512, nrecord = 226800
  4.     Character*8       :: stid(nstid), id(nrecord)
  5.     Real              :: lon(nstid),lat(nstid),time,slp,temp(nrecord)
  6.     integer           :: nlev,nflag,i,j,it
  7.     integer           :: date(nrecord),dd,hh
  8.    
  9.     open(11, file='station.txt', form='formatted', status='old')
  10.     do i=1, nstid
  11.         read(11,*)stid(i),lon(i),lat(i)
  12.         !write(*,*) stid(i),lon(i),lat(i)
  13.     end do
  14.     open(12,file='201511_auto_hr.txt',form='formatted',status='old')
  15.     do j=1, nrecord
  16.         !read(12,'(a6,1x,i10,10x,f4.1)') id(j),date(j),temp(j)
  17.         read(12,*) id(j),date(j),slp,temp(j)
  18.         if(abs(temp(j)+9997).lt.1.e-6) temp(j) = 99.99
  19.     end do
  20.      
  21.     open(21,file='201511.dat',status='unknown',FORM='UNFORMATTED',ACCESS='STREAM')
  22.     do it=1,720
  23.         write(*,*) "time: ",it
  24.         
  25.         dd=int(it/24)
  26.         hh=it-dd*24
  27.         if(hh .eq. 0)then
  28.             dd=int(it/24)-1
  29.             hh=24
  30.         end if
  31.    
  32.         time=0.
  33.         nlev=1
  34.         nflag=1
  35.         do i=1, nstid
  36.             do j=1, nrecord
  37.                 if(id(j) .eq. stid(i) .and. date(j) .eq. (2015110100+dd*100+hh)) then
  38.                     write(21) id(j),lat(i),lon(i),time,nlev,nflag,temp(j)
  39.                     exit
  40.                 end if
  41.             end do
  42.         end do
  43.         nlev=0
  44.         write(21) stid(nstid),lat(nstid),lon(nstid),time,nlev,nflag
  45.     end do
  46.     close(21)
  47.    
  48.     stop
  49.     end


插值成网格数据是因为你的背景的网格分辨率太高(也就是格距太小),然后插值半径默认又太小,所以才会出现这样的结果~
可以把插值半径改大,比如'd oacres(g,temp.2,50,40,30,20,10,5,1)',当然我这是夸大了,或者你把背景的网格分辨率变粗一点,
比如把0.01改成0.1,即
xdef 220 linear 119.8 0.1
ydef 440 linear 21.9  0.1
当然最后还是自己慢慢调,自己觉得满意即可~Good luck!
@传说中的谁 @mofangbao 这活可好
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2016-3-21 15:16:37 | 显示全部楼层
可能的原因:一是插值背景网格的分辨率,二是插值的影响半径,即oacres函数后面的参数@兰溪之水

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-21 17:33:27 | 显示全部楼层
嗯,應該不是oacres函数后面的参数的問題,之前有修改過,結果也都差不多。
所以是分辨率嚕?您的意思是格點數的問題嗎?我再將每個格點的間隔變小看看,謝謝!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-21 17:55:56 | 显示全部楼层
本帖最后由 weiqiyun0049 于 2016-3-21 17:57 编辑
addname 发表于 2016-3-21 17:33
嗯,應該不是oacres函数后面的参数的問題,之前有修改過,結果也都差不多。
所以是分辨率嚕?您的意思是格 ...

不是变小吧。。。变大会好点,或者你用gxout shaded看看是什么鬼就好了,把gxout contour注释掉
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2016-3-21 18:43:57 | 显示全部楼层

简单测试图

简单测试图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-21 18:59:20 | 显示全部楼层
我是来看评论的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-22 09:12:14 | 显示全部楼层
看到大神出现很开心
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-22 09:36:21 | 显示全部楼层
本帖最后由 addname 于 2016-3-22 10:02 编辑


謝謝您,已經可以畫出來了,原來是我的分辨率太大所以畫不出來,一直以為格點數要多,才夠多格點來畫等值線,結果是相反的。
真是太感激您了,如果有問題再請教您。
test.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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