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文件,這個我會在第三節說明
下面就是加了色階繪制的圖片
通過不同的色階可以做到不同的衛星雲圖樣式
下節就是簡單自定義繪圖配置講解