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文件,这个我会在第三节说明
下面就是加了色阶绘制的图片
通过不同的色阶可以做到不同的卫星云图样式
下节就是简单自定义绘图配置讲解