欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MeteoInfo-Java 解析和映射教程(二)

最编程 2024-05-05 14:38:15
...

MeteoInfo-Java解析与绘图教程(二)

上节说到了数据的简单解析,这节则说简单绘图

绘图的前置最重要的就是GridData,有了它,基本可以直接绘制出来

例如我们先放弃简单的自定义绘图的操作,直接绘图

        MeteoDataInfo meteo = new MeteoDataInfo();
        meteo.openAWXData("D:\\Download\\ANI_VIS_R04_20210812_0800_FY2G.AWX");
        GridData grid = meteo.getGridData();
        //绘制图层
        RasterLayer layer = DrawMeteoData.createRasterLayer(grid, "");
        //创建视图
        MapView view = new MapView();
        //叠加图层
        view.addLayer(layer);
        MapLayout layout  = new MapLayout();
        layout.getActiveMapFrame().setMapView(view);
        //绘制
        layout.exportToPicture(PathUtil.getDeskPath()+"/1.png");

我们可以看到简单的方法,就可以直接生成出卫星云图,这一切主要靠的是DrawMeteoData绘图方法,它包含多种绘图方式

createContourLayer:等值线图

createRasterLayer:栅格图

createShadedLayer:等值面图(色斑图)

createGridBarbLayer:风羽图(风场图)

createStreamlineLayer:流场图 

以上是主要绘图方式,当然DrawMeteoData方式有更多的绘图方式,这个我们后期再说

选择绘图方式需要判断两点

第一点,数据属于什么数据,例如卫星数据就应该用createRasterLayer,这是由于卫星图的数据量大,已经绘制更加细腻

第二点,所需要的呈现方式,这个容易懂,就不说了

当然绘制成上图这样可定不行,气象一般是有自己的色阶标准的,因为我们就需要去选择色阶

像卫星图我们一般和micaps的标准一致,选择.pal文件

        MeteoDataInfo meteo = new MeteoDataInfo();
        meteo.openAWXData("D:\\Download\\ANI_VIS_R04_20210812_0800_FY2G.AWX");
        GridData grid = meteo.getGridData();
        //色阶文件
        String colorPath = "D:\\apache-tomcat-8.0.50\\alt色阶\\V-01.pal";
        //绘制图层
        RasterLayer layer = DrawMeteoData.createRasterLayer(grid, "",colorPath);
        //创建视图
        MapView view = new MapView();
        //叠加图层
        view.addLayer(layer);
        MapLayout layout  = new MapLayout();
        layout.getActiveMapFrame().setMapView(view);
        //绘制
        layout.exportToPicture(PathUtil.getDeskPath()+"/1.png");

我们可以直接给createRasterLayer的方法加上色阶地址,这种方式只在createRasterLayer方法中可以使用,而其他绘制方法,需要去读取als文件,这个我会在第三节说明

下面就是加了色阶绘制的图片


通过不同的色阶可以做到不同的卫星云图样式

下节就是简单自定义绘图配置讲解

推荐阅读