爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4292|回复: 5

格点插值到站点的问题

[复制链接]

新浪微博达人勋

发表于 2017-1-3 17:55:10 | 显示全部楼层 |阅读模式

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

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

x
  1.             string m4file = @"T:\17010208.000";
  2.             MICAPS4DataInfo m4data = new MICAPS4DataInfo();
  3.             m4data.ReadDataInfo(m4file);
  4.             richTextBox1.AppendText(m4data.Description.ToString());
  5.             
  6.             string sta_file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"altsta.csv");
  7.             string out_file=Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"tmp.csv");
  8.            
  9.             GridData gd=new GridData();
  10.             gd.Data =m4data.GridData;
  11.             gd.ToStation(sta_file,out_file);
  12.             //((GridData)m4data.GridData).ToStation(sta_file, out_file);
复制代码
@MeteoInfo
王老师,我想用格点插到站点,可是似乎MICAPS4DataInfo 和GridData之间传递数据出了问题,用类型强制转换也不行,请问有没有快捷的办法把MICAPS4DataInfo里的GridData 传到GridData变量里?  还有一个问题就是第2类和第11类的UV要插到站点上成为站点的风向和风速,是先把U和V分别插到站点然后通过站点的U和V用向量的办法计算出风向和风速,还是有其它的快捷的方法呢?

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

新浪微博达人勋

发表于 2017-1-3 18:05:32 | 显示全部楼层
参考这个帖子:格点插值为站点数据批量处理
http://bbs.06climate.com/forum.p ... 191&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-3 19:35:06 | 显示全部楼层
MeteoInfo 发表于 2017-1-3 18:05
参考这个帖子:格点插值为站点数据批量处理
http://bbs.06climate.com/forum.php?mod=viewthread&tid=3519 ...

好的,谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-14 00:18:08 | 显示全部楼层
MeteoInfo 发表于 2017-1-3 18:05
参考这个帖子:格点插值为站点数据批量处理
http://bbs.06climate.com/forum.php?mod=viewthread&tid=3519 ...

王老师,我也遇到类似问题,
读取micaps第四类数据,想获取距离站点最近的格点数据,这个我用meteoInfo Lab可以实现,那在C#类库可以做吗?我需要用c#类库实现这个功能,盼指教。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-14 00:24:51 | 显示全部楼层
  1.         /// <summary>
  2.         /// Interpolate grid data to a station point
  3.         /// </summary>
  4.         /// <param name="x">x coordinate of the station</param>
  5.         /// <param name="y">y coordinate of the station</param>
  6.         /// <returns>interpolated value</returns>
  7.         public double ToStation(double x, double y)
  8.         {
  9.             double iValue = MissingValue;
  10.             if (x < X[0] || x > X[XNum - 1] || y < Y[0] || y > Y[YNum - 1])
  11.                 return iValue;

  12.             //Get x/y index
  13.             int xIdx = 0, yIdx = 0;
  14.             xIdx = (int)((x - X[0]) / XDelt);
  15.             yIdx = (int)((y - Y[0]) / YDelt);
复制代码


在类库里面找到上面一段代码,这里面的xIdx   yIdx是不是结合网格点数据及经纬网格间隔,直接找到距离站点经纬度最近的序号?那我在这里,增加一个函数,不去做插值,直接输出value,就是距离站点最近的格点数据了吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-14 02:07:34 | 显示全部楼层
本帖最后由 孤蓝et 于 2018-12-18 00:25 编辑

老师的dll的确很有用。
1.PNG
2.PNG
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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