MeteoInfo-Java解析與繪圖教程(二)
阿新 • • 發佈:2021-08-13
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檔案,這個我會在第三節說明
下面就是加了色階繪製的圖片
通過不同的色階可以做到不同的衛星雲圖樣式
下節就是簡單自定義繪圖配置講解