气象数据读取(1)--- 创建Maven工程
1.写在前面
1.1项目介绍
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
正因如此,Java语言被运用到各种学科和软工开发当中。
本系列文章主要分为三个部分:
第一部分:使用Java对气象数据读,存,分析
第二部分:将第一部分中存入数据库的内容,通过springboot+vue+nuxt的方法将数据可视化展示到网页端
第三部分:制作移动端App,更加方便预览。
具体包括:
-
对气象数据(风云,COSMIC,ECMWF,探空气球)进行读取,并存入(Excel,txt)
-
对数据进行绘图(matlab/python),分析等
-
开发前后端分离项目,构建个人博客网站,将我们上诉步骤得到的数据,可视化图形接入博客,部署到公网,供其他人浏览。点击查看网页端
-
开发移动端项目,在Android(java/kotlin/flutter)端进行展示,方便在移动端预览。点击下载App
看上去是不是很简单,哈哈哈😁😁😁。实际上,聪明如你我,这些都不算什么!!!
在这一系列文章里,我会尽量将代码写的足够优雅。注释写的详细一点。并降低不同模块之间的耦合性,增加代码的复用性。为气象事业做出一些微小的贡献。但是由于对Java语言本身的理解问题,我可能在很多地方并不能使用最好的算法来实现相应的功能,另外,本系列文章较少涉及多线程开发,因为我对多线程开发暂时了解的较少,在代码执行效率上,存在较大问题,所以可能有些地方在高手眼里,显得极为可笑。后续将会学习相关知识,改正相应问题。也请各位看官多多指教,互相学习💪💪💪。
本文也是该系列文章的开篇,简单介绍一下该系列的任务与目标,并构建我们的Maven工程。
1.2写作目的
-
为了记录整个学习新技术的过程,避免日后忘记。说实话,现在我的记忆属实有点差。
-
为了构建相应的工具类,并将其打包到我们的工程当中。打包后,可以极大的方便我们以后的工作,减少代码量。开源后,也可以更好的帮助其他的小伙伴学习。做到良好的前人种树,后人乘凉的良好循环。
-
为了装逼,炫技。为了装逼,炫技。为了装逼,炫技。如果学习新技术不是为了装逼,那将毫无意义了😋😎😋😎!!!
声明:由于本人能力有限,难免会有错误出现,在喷我的时候,尽量轻一点。还请各位大佬批评指正,共同进步。
声明:由于本人能力有限,难免会有错误出现,在喷我的时候,尽量轻一点。还请各位大佬批评指正,共同进步。
声明:由于本人能力有限,难免会有错误出现,在喷我的时候,尽量轻一点。还请各位大佬批评指正,共同进步。
2.技术栈
2.1学习本系列文章之前。你需要对以下技术具有一定的了解。
- 一定的Java编程能力
- 一定的GNSS气象学相关知识
- IDEA,Webstorm,Android Studio的使用
- Springboot
- vue.js ,nuxt.js
- linux的基本操作
- docker ,mysql,redis,solr,nginx
- Android开发
下文将默认读者了解以上相关知识。如果不了解,也可以浏览一波,看着玩玩也行啊。
![image-20200815190337989](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200815190337989.png)
2.2项目成品展示
2.2.1web端
![image-20200815184123102](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200815184123102.png)
2.2.2安卓端
3.Maven工程构建
3.1 IDE工具
工欲善其事必先利其器!本文使用到的开发工具是地表最强IDE编辑器IDEA。
![image-20200813181418716](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200813181418716.png)
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一。Intellij IDEA 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。
下载安装请参考百度or谷歌。
3.2 工程构建
在构建之前,我们要了解什么是Maven工程。这里我引用一段网上看到的话:Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。用过python的同学可能知道,在使用一些模块时我们会使用import的操作。pom文件中的dependency就类似于python中导入的模块。
那么接下来让我们一步一步构建maven工程吧。
![image-20200813181647849](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200813181647849.png)
![image-20200813181839161](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200813181839161.png)
![image-20200817203916104](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/image-20200817203916104.png)
点击finish,完成项目构建。第一次使用时,会需要较长时间下载各种依赖包,请耐心等待。以后就会快起来。等待系统加载完成后,我们打开pom文件夹,加入下面代码,再次等待构建完成
<dependencies>
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>netcdf4</artifactId>
<version>4.5.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>compile</scope>
</dependency>
<!-- lombok-->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
上述代码,我们一共引入了三个jar包,前两个是针对Nc数据解析使用的。第三个是一个log工具
4. 项目结构
等待pom文件构建完成后,我们在包下面创建一个roDataDemo包,在其下再创建utils文件夹和一个ReadNcData类,用来存放我们将会使用到的工具类。再创建一个ReadNcData类进行对工具类的操作。
此时整个项目结构大致如下所示:
至此,我们的工程已经构建完毕,接下来就让我们愉快的开始操刀各种气象数据吧!!!
5.风云掩星数据读取
下一篇文章,我们将开始对FY-3C/GNOS数据进行解析,读取。
- [x] 我们的征途是星辰大海。我就是我,我就是天!
- [x] 疾风亦有龟途对本文享有版权,转载请标明原文链接,禁止复制!
- [x] 欢迎访问我的个人博客网站---->夙夜星辰叹
- [x] 欢迎关注我的微信公众号:
![QQ图片20200811144323](https://gitee.com/xiaoguoshuoshi/blog_img/raw/master/img/QQ%E5%9B%BE%E7%89%8720200811144323.png)
版权属于: 依依东望