1. 程式人生 > 其它 >MeteoInfo-Java解析與繪圖教程(二)

MeteoInfo-Java解析與繪圖教程(二)

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檔案,這個我會在第三節說明

下面就是加了色階繪製的圖片


通過不同的色階可以做到不同的衛星雲圖樣式

下節就是簡單自定義繪圖配置講解