![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
气象软件使用开发
wap168
这个作者很懒,什么都没留下…
展开
-
surfer画等值线
用了将近两周的时间来学习surfer画等值线,稍有点成果,拿来跟各位分享。做出的营口地图降雨量分布图: http://hi.csdn.net/cp.php?ac=album&op=editpic&albumid=54316作图主要思路为:(1)生成站点数据:从excel等导出数据保存为txt格式,修改为bln格式即可;(2)用surfer的Grid菜单下的Data提供的各种插值方法进行插值计算,生成.grd文件;在此用可设置插值方法的参数,重要的是可能需要设置插图边界x,y坐标的最小和最大值。(原创 2010-08-15 08:16:00 · 14675 阅读 · 10 评论 -
Surfer画等值线(二)
之前研究过一段时间用Surfer画等值线,后来项目需要把它改进了一下,做成了一个exe,方便在Java中传参调用。现在有时间整理一下把代码贴出来,也简单解释下,共同探讨改进之。 我把用sufer画等值线的过程写成了一个带参函数。主要参数如下:string DataFile, 用来生成气象站等值线的bln文件及路径;string BlankFile, 用来白化地区界的bln文件;string flag, 一个用'0' '1'(我实际传参用的,其它任何字符也都可以) 表示是画等值线还是等值原创 2010-10-22 21:47:00 · 5555 阅读 · 2 评论 -
Grads画等值线(一)-----心得感言
之前研究了如何用surfer画等值线,总体来说还算不错,在实际项目中得到了应用。但是在surfer等软件中使用的插值法都是纯数学差值法,在孤立点附近容易产生一些不合理区域。后来知道Grads中有在气象学中经常用到的客观分析法----Cressman分析法,它能够有效地解决IDW等纯数学插值法产生的不合理现象,于是试着研究如何用Grads画等值线。看了个把月,也没有画出比较好的等值线效果来。因为要开始别的项目了,只得暂时放弃研究。 虽然失败了,但还是有些心得。多少有些进展,也记录下来,以后有空了,原创 2010-11-06 20:38:00 · 4970 阅读 · 3 评论 -
用Grads画等值线(三)-----等值线的生成
上文中已经生成了.map文件,要想生成等值线,还需要生成grid.dat文件。生成grid的Fortran代码比较简单如下所示: program grid real gtd(26,24) open(10,file='D:/YK/grid.dat',form='binary') do i=1,26 do j=1,24 gtd(i,j)=0原创 2010-11-09 20:08:00 · 4210 阅读 · 0 评论 -
用Grads画等值线(二)------.map生成
要生成.map文件,需要以下四步: (一)准备一个.ch文件,其中有需要的站点数据; (二)编写一个简单的程序把.ch中的数据写成二进制格式的.dat文件。(三)编写一个站点控制文件.ctl。(四)运行如下Grads命令:stnmap -i C:/Grads/rain.ctl,其中"C:/Grads/rain.ctl"指站点控制文件的路径及名称。 上面生成.map文件的例子在论坛中也有不少,大都是用fortran写的程序,也有少数用C写的。但是我自己写的到了第四步总是报错。我相信对刚学G原创 2010-11-08 21:52:00 · 3786 阅读 · 0 评论 -
用Grads画等值线(四)------底图生成
上文中生成的等值线村子一条曲线,通过放大gs中坐标范围可以发现,这是默认的世界底图的一部分。可以通过在gs文件中添加'set map draw off' 使底图不显示。但我要绘制的是营口地区的降雨量等值线图,所以需要营口市底图。而Grads中并没有市级底图,所以需要自己动手绘制。 一种方式是通过Grads命令画线生成边界,需要准备边界数据文件。我的是通过在surfer中有shapefile底图得来,数据如下,供598个点: 122.148436592239原创 2010-11-09 21:04:00 · 5056 阅读 · 0 评论 -
用Grads画等值线(五)-------等值线边界控制
上文中声称了带底图的等值线,但此等值线是越界的。要控制等值线边界,在Grads中要使用maskout函数。要使用此函数,需要设置边界内外不同的值。因此对grid.dat文件进行了如下修改: program grid real gtd(26,24) real mm(26,2) real yCol(24) real xCol(26) xCol(1)=121.9 xCol(2)=121.95 xCol(3)=122.0 xCol(原创 2010-11-09 21:29:00 · 3868 阅读 · 2 评论 -
Surfer画等值线----包括参数及文件数据,源代码
一直有好友想要完整的源文件数据,现在我把这些都共享出来,有兴趣的可以自已运行试试看,相互学习探讨。 下面是完整的可执行exe代码,由于比较简单代码有很多重复的地方,没有重构,不够规范,但是参考下还是可以的。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Tex原创 2010-11-24 16:33:00 · 7140 阅读 · 5 评论