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文件,这个我会在第三节说明

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

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

补充色阶

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

MeteoInfo-Java解析与绘图教程(二)的更多相关文章

  1. MeteoInfo-Java解析与绘图教程(一)

    MeteoInfo-Java解析与绘图教程(一) 已经进入开发行业很多年了,这两年一直从事气象开发行业,为此对气象绘图有了新的见解 像色斑图与卫星图一直都有python去绘制,在偶然的情况下,我接触到 ...

  2. MeteoInfo-Java解析与绘图教程(八)_java解析卫星FY-4A一级产品文件(HDF举例)

    MeteoInfo-Java解析与绘图教程(八)_java解析卫星一级产品文件(HDF举例) 最近解析卫星数据遇到了一级产品,它的解析方式与之前文章说的有些不同,特此补充一下 卫星的一级产品,里面是没 ...

  3. MeteoInfo-Java解析与绘图教程(三)

    MeteoInfo-Java解析与绘图教程(三) 上文我们说到简单绘制色斑图(卫星云图),但那种效果可定不符合要求,一般来说,客户需要的是在地图上色斑图的叠加,或者是将图片导出分别是这两种效果 当然还 ...

  4. MeteoInfo-Java解析与绘图教程(四)

    MeteoInfo-Java解析与绘图教程(四) 上文我们说到,将地图叠加在色斑图上,但大部分都是卫星绘图,现在开始讲解micaps数据绘图,同样也是更多自定义配置 首先我们解析micaps数据,将之 ...

  5. MeteoInfo-Java解析与绘图教程(五)

    MeteoInfo-Java解析与绘图教程(五) 最近太忙了,终于有时间继续写了,上文说到了基本上的绘图方法,但缺少色阶呈现,一般图叠加着地图上,后端不需要管色阶,但也要注意web页面色阶和我们的生成 ...

  6. MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称

    MeteoInfo-Java解析与绘图教程(七)_图层添加站点名称或区域名称 在上文说了用自动站的数据经过插值绘制色斑图,这种一般是在geoserver上叠加图片呈现,但遇到后端导出图片,我们又想添加 ...

  7. java利用Google Zxing实现 二维码生成与解析

    1.引入zxing 2.使用下面两个类:QRCodeUtil.java和BufferedImageLuminanceSource.java 3.新建单元测试类 复制下面测试代码即可. 1.pom文件中 ...

  8. Java解析json(二):jackson

    Java解析json(二):jackson   官方参考 Jackson Home Page:https://github.com/FasterXML/jackson Jackson Wiki:htt ...

  9. Java实现带logo的二维码

    Java实现带logo的二维码 二维码应用到生活的各个方面,会用代码实现二维码,我想一定是一项加分的技能.好了,我们来一起实现一下吧. 我们实现的二维码是基于QR Code的标准的,QR Code是由 ...

  10. XML基础+Java解析XML +几种解析方式的性能比较

    XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...

随机推荐

  1. 使用GRUB Multiboot2引导自制操作系统

    使用GRUB Multiboot2引导自制操作系统 前言 之前花了一周时间,从头学习了传统 BIOS 的启动流程.惊讶于背后丰富的技术细节的同时,也感叹 x86 架构那厚重的历史包袱.毕竟,谁能想到, ...

  2. BUUCTF BUU SQL COURSE 1

    方法一:手工注入 启动靶机 寻找注入点,使用burp抓包得到传参页面 得到注入点 /backend/content_detail.php?id=1 用and 1 =1 和 and 1 =2 判断存在s ...

  3. 云原生爱好者周刊:你听过 DevOps 元素周期表吗?

    云原生一周动态要闻: HashiCorp 的云战略状况调查结果公布 Gloo Mesh 1.1 和 Gloo Mesh Gateway 1.0 发布 GKE 增加了 OIDC 身份提供商和 gVNIC ...

  4. 在 KubeSphere 中使用 DevOps 部署 Java 微服务配置监控预警

    作者:酱油瓶,携程后端技术专家, KubeSphere 社区用户 开发 Java 微服务并引入监控组件 我们基于 Spring Cloud +Nacos 开发 Java 微服务,Java 服务开发不做 ...

  5. 什么是前后端分离应用(Full-stack Separation),想当然就会理解错

    前后端分离应用指的是将应用的前端部分(用户界面与交互逻辑)和后端部分(业务逻辑.数据处理.服务器响应)拆分成独立的模块,各自通过 API 进行通信.这种架构设计的目的是提高开发效率.增强可扩展性和灵活 ...

  6. 7 个非常实用的 Shell 拿来就用脚本实例!

    前天,在群里看到有一位读者分享了几道 Shell 脚本实例题目,索性看到了,不如来写写巩固下基础知识,如下: 1. 并发从数台机器中获取 hostname,并记录返回信息花费的时长,重定向到一个文件 ...

  7. mysql的执行流程

    本篇章为构建mysql在执行过程中简单的业务流程,为后续的代码优化和面试构建基础. 1.首先一条sql在执行时sql会通过网络传送给mysql 2.在Mysql收到sql语句后会先在分析器中先判断一下 ...

  8. 使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

    本教程以一个智能合约(使用 NEAR 的一个官方 Fungible Tokens 来实现)的例子来介绍一下 Devbox 的强大功能,轻松构建环境,轻松发布. NEAR 是一个去中心化的应用平台,使用 ...

  9. CSS动画(毛玻璃按钮)

    1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa4ofJ9W4ibgD5asQcBesp1f1CXVnrQmicnzqDPskBNEQC4ia0 ...

  10. FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频

    ​ijkplayer是Bilibili公司(简称B站)基于FFmpeg3.4研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接. 之前的 ...