爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3026|回复: 6

求助:C#调用meteoinfo显示micaps第四类数据

[复制链接]

新浪微博达人勋

发表于 2018-4-2 23:02:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ouhuining 于 2018-4-3 08:23 编辑



首先感谢王老师出的教程,全部拜读了。

但是里面没有讲到怎么做到显示Micaps第四类数据,我根据第十三类数据试着做了一下,都不成功,在网上下载了官方的demo,竟然是0.9.9.8版本的MeteoinfoC,我现在用的是1.1.3.5版本,改动还是蛮大的。。。

原demo:
            MICAPS4DataInfo aDataInfo = new MICAPS4DataInfo();
            string aFile = @"D:\18032908.024";
            aDataInfo.ReadDataInfo(aFile);

            GridData gridData = aDataInfo.GetGridData();//这个新版本已经没有了
            bool hasNoData = true;
            LegendScheme aLS = LegendManage.CreateLegendSchemeFromGridData(gridData, LegendType.GraduatedColor,
                ShapeTypes.Polygon, ref hasNoData);

            VectorLayer aLayer = new VectorLayer(ShapeTypes.Polygon);
            aLayer = DrawMeteoData.CreateShadedLayer(gridData, aLS, "MICAPS4_Layer");//这句方法重载参数改了
            aLayer.IsMaskout = true;
            int aLayerHandle = G_LayerLegend.AddLayer(aLayer, true);


            GridData gridData = aDataInfo.GetGridData();   新版本已经没有GetGridData()了,尝试了很多方法,比如用数组提取GridData等等,都不能成功。。。完全没有思路怎么能出图。。。。网上没有找到。。。心好累,哈

            望大神指导!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-3 00:55:25 | 显示全部楼层
本帖最后由 孤蓝et 于 2018-4-3 01:12 编辑

你这个demo版本太老了。
这个是我今天在群主的GitHub下载的最新的demo,你可以编译看下。 MeteoInfoDemo_2013-3-2.zip (13.12 MB, 下载次数: 41)
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2018-4-3 01:03:04 | 显示全部楼层
本帖最后由 孤蓝et 于 2018-4-3 01:13 编辑

最新demo的sample目录下,09041700.036就是micaps 第四类数据。
我把demo中的TSMI_Grid_Fill_Click稍加修改,具体代码如下,可以直接展示第四类数据的显示,你试试。

其实关键就是使用openMicapsData(file_name)。
string aFile = Application.StartupPath + "\\Sample\\09041700.036";
aDataInfo.OpenMICAPSData(aFile);



  1. private void TSMI_Grid_Fill_Click(object sender, EventArgs e)
  2.         {
  3.             //创建MeteoDataInfo object
  4.             MeteoDataInfo aDataInfo = new MeteoDataInfo();

  5.             //打开Micaps第四类数据
  6.             string aFile = Application.StartupPath + "\\Sample\\09041700.036";
  7.             aDataInfo.OpenMICAPSData(aFile);

  8.             //获取格点数据,变量名默认为 var
  9.             GridData press = aDataInfo.GetGridData("var");

  10.             //根据数据,创建配色方案
  11.             bool hasUndefData = false;
  12.             LegendScheme aLS = LegendManage.CreateLegendSchemeFromGridData(press,
  13.                         LegendType.GraduatedColor, ShapeTypes.Polygon, ref hasUndefData);

  14.             //创建格点填色图层  CreateGridFillLayer
  15.             VectorLayer aLayer = DrawMeteoData.CreateGridFillLayer(press, aLS, "GridFill_PS", "PS");

  16.            
  17.             //Add layer
  18.             layersLegend1.ActiveMapFrame.AddLayer(aLayer);
  19.             layersLegend1.ActiveMapFrame.MoveLayer(aLayer.Handle, 0);
  20.             layersLegend1.Refresh();

  21.         }
复制代码
效果图:
捕获.PNG


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

新浪微博达人勋

发表于 2018-4-3 08:24:13 | 显示全部楼层
孤蓝et 发表于 2018-4-3 00:55
你这个demo版本太老了。
这个是我今天在群主的GitHub下载的最新的demo,你可以编译看下。

骚的很撒
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-4-3 08:28:26 | 显示全部楼层
孤蓝et 发表于 2018-4-3 00:55
你这个demo版本太老了。
这个是我今天在群主的GitHub下载的最新的demo,你可以编译看下。

最新的demo看了,解决了问题,非常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-3 10:31:43 | 显示全部楼层
厉害了,楼主实在是高
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-3 20:03:30 | 显示全部楼层

.....你这天天都在逛论坛啊。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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