爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 海蓝蓝

关于MeteoInfo C#类库二次开发剖面图的小问题。

[复制链接]

新浪微博达人勋

 楼主| 发表于 2016-4-8 22:31:55 | 显示全部楼层
老大神速!感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-9 18:00:28 | 显示全部楼层
海蓝蓝 发表于 2016-4-8 22:31
老大神速!感谢!

其实MeteoInfo C#库的功能已经落后MeteoInfo Java库很多了,建议基于Java库进行二次开发,当然如果必须用C#就没办法了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-11 10:33:44 | 显示全部楼层
MeteoInfo 发表于 2016-4-9 18:00
其实MeteoInfo C#库的功能已经落后MeteoInfo Java库很多了,建议基于Java库进行二次开发,当然如果必须用 ...

我们这里流行C#,目前没人会用java,现学的话恐怕来不及。
有时间的话,学学java~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-11 10:35:27 | 显示全部楼层
MeteoInfo 发表于 2016-4-9 18:00
其实MeteoInfo C#库的功能已经落后MeteoInfo Java库很多了,建议基于Java库进行二次开发,当然如果必须用 ...

还有一个小问题,画剖面的时候,如果给的数据的经度范围从90-130度,但是我只想画其中的110-120度,该怎么搞? 好像没找到设定的方式呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-11 12:40:33 | 显示全部楼层
海蓝蓝 发表于 2016-4-11 10:35
还有一个小问题,画剖面的时候,如果给的数据的经度范围从90-130度,但是我只想画其中的110-120度,该怎 ...

用MapView的ZoomToExtent命令设置图形范围。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 00:13:18 | 显示全部楼层
MeteoInfo 发表于 2016-4-8 16:51
原先的库有bug,高度层没有读出来,做了更新,下载试试:

下载了新的dll,但是画的时间-高度图还是有问题。 怀疑是不是读取数据有bug?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 00:15:53 | 显示全部楼层
画错的图:
画错的.JPG

下面是正确的图,用GrDAS画的:
正确的(GrDAS画的).JPG

代码如下:
           aDataInfo.DimensionSet = PlotDimension.Level_Time;//PlotDimension.Level_Lat;
            double y = 36.1;
            double x = 115.8;
            aDataInfo.LonIndex = (int)((x - 114) * 10 + 1);//经度索引
            aDataInfo.LatIndex = (int)((y - 34) * 10); ;//纬度索引
            
            GridData qdata = aDataInfo.GetGridData("TmTd");//.GetGridData_LevelLat(aDataInfo.GetVariableNames()[8]);

            SetXYCoords(qdata);


           sPlot.LayersLegend1.ActiveMapFrame.MapView.XGridStrs = getTimeLabels(aDataInfo); //getLatLabels(aDataInfo);//

            sPlot.LayersLegend1.ActiveMapFrame.MapView.YGridStrs = getLevelLabels(aDataInfo);

            sPlot.LayersLegend1.ActiveMapFrame.AddLayer(aLayer);//(aLayer);

            Extent aExtent = new Extent();

            aExtent.minX = aLayer.Extent.minX;//- 0.1;

            aExtent.maxX = aLayer.Extent.maxX;//+ 0.1;

            aExtent.minY = aLayer.Extent.minY - 2;//10; //- 0.1;

            aExtent.maxY = aLayer.Extent.maxY + 5;// + 0.1;

            sPlot.LayersLegend1.ActiveMapFrame.MapView.ZoomToExtent(aExtent);

            sPlot.LayersLegend1.Refresh();


       private List<string> getTimeLabels(MeteoDataInfo aDataInfo)
        {
            List<string> latLabels = new List<string>();
            List<DateTime> times = aDataInfo.GetTimes();
            times.Reverse();
            string drawStr;
            foreach (DateTime tm in times)
            {
                drawStr = tm.ToString();
                latLabels.Add(drawStr);
            }
            return latLabels;
        }
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 00:21:48 | 显示全部楼层
test_small_area_20110428_18_diagnostic_out.nc (11.19 MB, 下载次数: 63)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 00:21:59 | 显示全部楼层
本帖最后由 海蓝蓝 于 2016-4-29 10:33 编辑

上面 画的是 这个位置(y = 36.1;  x = 115.8;)的温度露点差的时间-高度图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-2 22:24:55 | 显示全部楼层
海蓝蓝 发表于 2016-4-29 00:21
上面 画的是 这个位置(y = 36.1;  x = 115.8;)的温度露点差的时间-高度图

的确是有bug,C#对于netCDF的支持比较弱,改起来还挺费劲。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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