疾风亦有龟途 | 搜索
综合排序时间浏览量
全部分类安卓/IOS后端运维web前端软件安装学习/科研疾风龟途月记还是月季技巧杂糅
找到约 6 条结果
气象数据读取(4)--- 优雅的交汇
false 是不是一下子豁然开朗了,哈哈哈 3. 优雅的交汇 好了,经过上面的分析,我们首先在utils里新建一个ReadAllNcDataUtils类,代码内容如下: package roDataDemo.utils;
import ucar.ma2.Array;
import ucar.nc2.Attribute;
import ucar.nc2.NetcdfFile;
import ucar.nc2.Variable;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//TODO:对文件夹里的文件类型进行过滤,因为这个工作其实挺烦的,特别是COSMIC数据文件含有较多的.符号,所以这里就不操作了。
/**
* 该工具类针对FY-3C卫星的GNOS掩星数据和COSMIC数据进行数据提取
* 提示:getVariablesLists();
2020/08/29 06:39
1585
解耦
java
掩星
nc
优雅
气象数据读取(3)---COSMIC掩星数据读取
.add(aDouble);
}
mVrsList.add(mVrs);
}
return mVrsList;
}
}
从上述代码中可以看出,COSMIC的代码和GNOS的代码99%的地方都是一样的。只是改了很少的地方。 4. 优雅的交汇 从上文中我们可以看出,重复代码实在是太多了,并且有的代码我们是为了实现功能而实现功能,一点都不优雅。这对一个程序员来说是不能忍的,那我们要如何抽取来实现代码复用? 另外这里的代码在某些情况下也会出现一个小bug,至于是什么bug,我们先卖个关子,后面用到时,我们细讲一下。。 [x] 我们的征途是星辰大海。我就是我,我就是天! [x] 疾风亦有龟途对本文享有版权,转载请标明原文链接,禁止复制! [x] 欢迎访问我的个人博客网站---->夙夜星辰叹 [x] 欢迎关注我的微信公众号:
2020/08/29 06:30
2111
cosmic
java
掩星
数据提取
气象数据读取(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
2020/08/28 04:12
1830
Java
掩星
气象
COSMIC
面向对象
别了!学生时代最后一个暑假
,看到这个。真的是好久了啊。😁😁😁 游戏真的是个好东西,愿我永远热爱游戏。 5.疾风亦有归途 这个暑假在家做了好几个东西,其实都还挺好的。反正我自己觉得挺好的,哈哈哈。 5.1疾风亦有龟途网站 网站包括后端,后端管理,前端门户三个部分。 后端: 后端管理: 前端门户: 暂时这里面全是测试数据,哈哈哈。这也算是第一个版本吧,看上去还是有点简陋的。后期根据需求在慢慢改。慢慢的让它动起来。毕竟个人网站这些东西,就是要搞得花里胡哨的才好玩!!!🙈🙈🙈🙈 5.2Java与气象数据的优雅交汇 这是暑假写的第二个小demo,可能写的不太好。 为啥写这个呢,因为一开始我是想着尝试用Java去处理一些掩星数据。后来发现没有python方便。不过我还是把它写完了。 功能还是不错的,支持读取风云和cosmic两种掩星数据,支持一键匹配时空特征,支持多数据读取,支持一键写入Excel表格等操作。 后续可能不会再用Java处理气象数据了,哈哈哈哈。不过这个工具类还是蛮不错的,后期可以改写成Python版本的。把一些算法写成工具类,方便后人使用,哈哈哈 5.3疾风亦有龟途移动端 这个是对网站移动端的
2020/08/30 06:56
1461
诗
远方
生活
暑假
理想
Python制图+Java数据处理---高效制作雷评报告
1.前言 1.1总体思路 最近接到一个任务,通过使用近11年的雷电数据对给定经纬度站点的雷击情况进行统计分析,并制作相应的统计图。任务很简单,需求也很简单。无非就是数据提取,筛选,计算,并画图,但是就是烦,站点很多,数据很杂,格式不统一。可以做的工具有很多,matlab,python,java,Arcgis等等。善其事,利其器。本次项目,我们使用Python(画图),用Java完成数据的处理与雷评报告的自动生成。其实python可以完成整个操作流程,但是因为一些原因,还是配合使用处理吧。下图是整个工程的流程思路。整个流程很简单。最重要的是预处理环节,涉及到各种工具类的编写。接下来我们针对每一个环节写代码。 1.2工程结构 工程的结构也比较简单。为了优雅一点。我们仍然创建一个maven工程。还是老三样,实体类,任务,以及工具类。后续如果想部署到服务器,并给出相应的Api接口,需要更改项目结构,并引入其他东西。这都是后话了,有空再搞。 2.工具类编写 工具类的使用,可以大幅优化我们的项目结构,减少代码量。完成代码的复用。 2.1距离工具类编写getDistance 为了提取站点周围2km
2021/11/08 11:13
1412
雷评
闪电
java
python
皮卡丘
python优雅绘图--Matplotlib的使用
一图胜千言,画图的工具很多。今天我们开一个python的画图系列。第一篇我们介绍折线图的绘制。 1.折线图 1.最简单的折线图 import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.show() # 在编辑器里显示图片
2.添加横纵坐标名称 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.grid() # 给背景加入网格
plt.show() # 在编辑器里显示图片
3.将坐标的刻度转换为自己想要的标签 需要创建一个和原来坐标轴刻度大小一样的数组,来一一对应。 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
4.设置坐标轴范围 我们有时需要指定坐标轴的范围。 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制y1
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
5.再添加一条曲线 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
plt.plot(x, y) # 绘制第一条曲线
plt.plot(x, x*y) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
6.美化图像 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记形状,linewidth表示线宽,markersize表示标记的大小
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
7.显示图例 只用加入plt.legend() # 图例即可 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
plt.xlabel('x轴标题') # 纵坐标轴标题
plt.ylabel('y轴标题') # 纵坐标轴标题
plt.legend() # 图例
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
plt.xticks(x, x_tag)
plt.show() # 在编辑器里显示图片
8.修改字体 import matplotlib.pyplot as plt
import numpy as np
# 画图时尽量加上这两行,避免中文显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 11, 1) # x坐标
y = x * x # y坐标
# c表示颜色,marker表示标记
plt.plot(x, y, color='red', marker='s', label='Y1', linewidth=2, markersize=12) # 绘制第一条曲线
plt.plot(x, x * y, color='g', marker='o', label='Y2', linewidth=2, markersize=12) # 再叠加一副图像
# 定义一个字典类型
font = {'fontsize': '20'}
plt.xlabel('x轴标题', font) # 纵坐标轴标题
plt.ylabel('y轴标题',font) # 纵坐标轴标题
plt.legend(fontsize=20) # 图例
plt.xlim(0, 11) # x轴坐标范围
plt.ylim(0, 200) # y轴坐标范围
plt.grid() # 给背景加入网格
# 更换坐标轴刻度标签
x_tag = []
for i in range(len(x)):
x_tag.append(str(x[i]) + '标签')
# 修改坐标轴刻度字体大小
plt.xticks(x, x_tag, fontsize=10)
plt.show() # 在编辑器里显示图片
9.图片的保存 plt.savefig('保存图形名字', bbox_inches='tight') #加上这一句bbox_inches='tight',可以让保存的图形没有白色的边框。也可选择不加
2022/02/09 09:41
1169
python
matplotlib
热门标签