疾风亦有龟途 | 搜索
综合排序时间浏览量
全部分类安卓/IOS后端运维web前端软件安装学习/科研疾风龟途月记还是月季技巧杂糅
找到约 12 条结果
在南信的日子⏳
1.春江潮水连海平 先放一张二次元。一开口就是老二刺猿了~哈哈哈🤞🤞🤞。本文记录一下,最后的校园生活哈哈哈。 2.海上明月共潮生 2020年9月16 本次聚餐依然是醉香缘。 归来的汽车 焕然一新的群英桥 来个近景 2020年9月18 大一新生来了,军训也来啦😁😁😁 还有夜晚的气象楼 2020年9月20 前几天楼上漏水,把我被子都搞湿了。换新的吧...倒霉啊😭😭😭😭😭😭 2020年9月22 安徽池州
2020/09/15 04:47
1484
南信大
校园
明天
北辰
硕园
气象数据读取(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
1829
Java
掩星
气象
COSMIC
面向对象
世间行乐亦如此,古来万事东流水
1.我有一幅画 千帆过尽,向新而行。又是阳历年的最后一天了,时间真是太快了,真的是想想都好烦。2022年就像一个成分复杂的彩盘,执笔人纵情挥洒,世界,国家,个人都被描绘得“多姿多彩”。这一年见证了太多,个人也经历了不少,在这花团锦簇的节日,回顾一下往昔,看看是否更进一步了呢。 2.描绘在2022年 2.1瑞雪照我影 这应该是2022年的第一场雪吧。下班路过经纬广场。 应该是2022年的第一场全民核酸吧。 领导说要不要再配个电脑。 网上学的空气炸锅炸鸡蛋教程,炸成这个b样了,不过吃着还行啊,普通的食材,只需要简单的烹饪方式。 玩了这么多年,终于在抽满点数时,抽到了一个水晶,麻花腾,你是真狗啊。 疫情,在楼下保安室当志愿者。 附一张自拍,那小子真帅 好像是又做核酸了,第一次当管长!!! 2.2送我归南阳 这应该是过农历年出来玩的场景了 紫荆山公园的梅花开了 应该是2022年第一次出差-新安。 沁园春---雪。 龙门石窟,好多佛像都被破坏了,很可惜。 自拍一张,留念。 吃了个比较火的小炒黄牛肉,不太行,我觉得嫩肉粉放的太多了,辣鸡 2.3我欲因之梦洛阳 出差来调查气象灾害 当地产业是制作
2022/12/31 05:30
1582
2022
你相信光吗
气象数据读取(5)---时空特征匹配
1.需求分析 对于学习气象,遥感,地信的同学来说。对于时空特征这一概念都比较熟悉。我们在做科研时,总喜欢拿自己得出的结果和其他的权威数据作比较。这时,就离不开对时间和空间特征的匹配。这篇文章开始,我们就使用Java语言对气象数据进行时空特征匹配。 2.代码时刻 2.1代码逻辑 利用ReadAllNcDataUtils计算GNOS的year,month,day,hour,minute,second,lat,lon 利用ReadAllNcDataUtils计算COSMIC的year,month,day,hour,minute,second,lat,lon 根据上述计算参数,设计相应get方法(要给用户提供相应接口,满足用户的时空匹配特征) coding 2.2工具类实现 通过上面的步骤分析,我相信大家已经能明白其中逻辑。我们在utils下新建RoMatchingUtils工具类,具体代码如下 public class RoMatchingUtils {
//case分析
//1.用户给定纬度,找出给定文件夹中所有满足的数据,并将数据名及其路径存入相应数组中、或者存入到
2020/09/02 06:40
1509
时空
经度
纬度
海拔
温度
气象数据读取(2)--- FY-3C(风云)掩星数据读取
1.前言 在上一篇文章里,我们构建了处理气象数据的Maven工程。相信大家已经构建好了。这一篇,我们将开始对 *.NC数据进行处理。 在windows系统下,NC文件预览如上图所示,看不到任何信息。我们使用相关软件打开NC数据,来对NC文件的数据结构一窥究竟。 通过上面两张图,我们可以看出,NC文件的大致数据结构如下: 主要包括两个部分:Global Attributes;Variables。我们接下来的任务也就是围绕着这两部分进行展开。这样看下来,是不是很简单? 2.风云卫星简介 风云三号(FY-3)气象卫星是我国的第二代极轨气象卫星,它是在FY-1气象卫星技术基础上的发展和提高,在功能和技术上向前跨进了一大步,具有质的变化,具体要求是解决三维大气探测,大幅度提高全球资料获取能力,进一步提高云区和地表特征遥感能力,从而能够获取全球、全天候、三维、定量、多光谱的大气、地表和海表特性参数。 3.工具类实现 3.1 任务分析 在面对一个任务时。我们要首先明白我们的业务逻辑。 在该任务中,我们要获取每一个掩星数据的Global Attributes和Variables。那么我们就要对每一个
2020/08/29 05:22
1910
风云
掩星
java
NC
数据提取
别了!学生时代最后一个暑假
,看到这个。真的是好久了啊。😁😁😁 游戏真的是个好东西,愿我永远热爱游戏。 5.疾风亦有归途 这个暑假在家做了好几个东西,其实都还挺好的。反正我自己觉得挺好的,哈哈哈。 5.1疾风亦有龟途网站 网站包括后端,后端管理,前端门户三个部分。 后端: 后端管理: 前端门户: 暂时这里面全是测试数据,哈哈哈。这也算是第一个版本吧,看上去还是有点简陋的。后期根据需求在慢慢改。慢慢的让它动起来。毕竟个人网站这些东西,就是要搞得花里胡哨的才好玩!!!🙈🙈🙈🙈 5.2Java与气象数据的优雅交汇 这是暑假写的第二个小demo,可能写的不太好。 为啥写这个呢,因为一开始我是想着尝试用Java去处理一些掩星数据。后来发现没有python方便。不过我还是把它写完了。 功能还是不错的,支持读取风云和cosmic两种掩星数据,支持一键匹配时空特征,支持多数据读取,支持一键写入Excel表格等操作。 后续可能不会再用Java处理气象数据了,哈哈哈哈。不过这个工具类还是蛮不错的,后期可以改写成Python版本的。把一些算法写成工具类,方便后人使用,哈哈哈 5.3疾风亦有龟途移动端 这个是对网站移动端的
2020/08/30 06:56
1460
诗
远方
生活
暑假
理想
气象数据读取(6)---事半功倍之存入Excel
1.数据的存储 在进行日常工作中,我们经常会遇到对数据的存储的需求。特别是在气象研究当中,对数据的存储,复现尤为重要。不同的编程语言,有不同的方法。今天我们来聊聊如何如何使用Java将Nc数据保存到Excel中。后续如果有时间,还可以做一下txt文件的读,存。 2.引入jar包 2.1jar包的引入 在第一篇文章的时候,我们介绍了pom文件和jar包。这里我们就不详细介绍了。我们在pom文件里加入
org.apache.poi
poi
3.9
org.apache.poi
poi-ooxml
2020/09/04 06:43
1561
excel
java
存储
掩星
气象数据读取(3)---COSMIC掩星数据读取
1.前言 在上一篇文章里,我们介绍了FY/GNOS数据的提取。并提供了相应数据的get方法供外界调用。是不是成就感满满?哈哈,这一小节,我们开始提取COSMIC数据。所谓一回生,二回熟。我们这次有了上节课的经验,快速把他搞定。 2.COSMIC卫星简介 COSMIC是台湾NSPO和美国UCAR合作的进行全球大气即时观测的卫星任务.本文介绍了COSMIC卫星星座和轨道,主要搭载仪器,科学目标和应用,COSMIC是国际上第一个同时6颗小卫星进行GPS掩星观测的卫星任务,是气象,电离层和大地测量等学科研究的前沿. 3. 工具类实现 其实,COSMIC卫星的数据结构和GNOS的数据结构基本一样。所以我们的代码要改的很少。只需要把getVariablesLists(); getGlobalVariablesLists(),在这两个方法中的String vbName和int position改掉就ok了。 我们在utils包下创建一个ReadCmNcDataUtils类 public class ReadFyNcDataUtils {
private static List<
2020/08/29 06:30
2110
cosmic
java
掩星
数据提取
气象数据读取(4)--- 优雅的交汇
getGlobalVariablesLists(),在这两个方法中,String vbName和int position
* 是我根据目前(2020-8-13)的数据结构给定的,后续有可能国家卫星气象中心提供的数据可能会不一样(但是一般不会变得),可以自行修改
* 提取数据包括:Global Attributes:掩星点坐标(经纬度),时间(年,月,日)
* Attributes:海拔,温度,压强
* 也可以根据自己需要提取其他相关参数,请自行配置
*
* 重要提醒:!!! 在实例化该工具类后,必须先实现getNcDataList()方法,这样写是为了实例化后少写代码。有利有弊 *
* 涉及到了文件读,应该要有关闭操作,请在使用后添加.close()进行关闭
*/
public class ReadAllNcDataUtils {
private static List
2020/08/29 06:39
1585
解耦
java
掩星
nc
优雅
气象数据读取(7)---事半功倍之存入Excel二
1.数据存储 variable里面的变量和全局变量还不太一样,它自己本身就是个具有长度大于一的数组。这也为我们的存储带来了一些困难。但是,我们程序员不怕困难啊,哈哈哈哈。 2.构建工具类 我们在utils下创建一个NcVrToExcellUtils类,此时项目结构如下: 考虑到实际情况,我们并不会创建大量的列。所以本工具类会对总的列数进行控制, 当然,如果你想不受控制,也可以直接修改源码,哈哈哈。 思路:还是分为两种情况: 直接给出目标文件夹,读取全部文件,并对目标数据进行存取。 给出你匹配过得文件全路径名,并对目标数据进行存取。 但是这个和全局变量还不太一样,全局变量可以放在一个列表里。这个不行,因为每一个文件都会是一个大列表。所以我们需要在读取之前,先创建excel对象,并赋予sheet。然后通过循环,每读一个文件,我就创建三列,alt,temp,press。 代码: package roDataDemo.utils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import ucar.ma2.Array;
import ucar.nc2.NetcdfFile;
import java.io.*;
import java.util.Arrays;
import java.util.List;
/**
* 考虑到实际情况,我们并不会创建大量的列。所以本工具类会对总的列数进行控制,
* 当然,如果你想不受控制,也可以直接修改源码,哈哈哈
* 思路:还是分为两种情况
* 1.直接给出目标文件夹,读取全部文件,并对目标数据进行存取。
* 但是这个和全局变量还不太一样,全局变量可以放在一个列表里。这个不行,因为每一个文件都会是一个大列表
* 所以我们需要在读取之前,先创建excel对象,并赋予sheet。然后通过循环,每读一个文件,我就创建三列,alt,temp,press
*/
// for (int i1 = 0; i1 < mAltList.get(0).size(); i1++) {
// HSSFRow row1 = sheet.createRow(i1 +1);
// row1.createCell(0*3).setCellValue(mAltList.get(0).get(i1).toString().substring(0, 5));
// row1.createCell(0*3+1).setCellValue(mTempList.get(0).get(i1).toString().substring(0, 7));
//
// String str = "/Variables.xls";
// makeExcel(filePath, str, hssfWorkbook); }
public class NcVrToExcellUtils {
private List mAltList;
private List mTempList;
private List mPressList;
private List mAltListByCondition;
private List mTempListByCondition;
private List mPressListByCondition;
public void setVariablesAsExcel(String filePath) {
getRoData(filePath);
//第一步,创建一个workbook对应一个excel文件
createExcel(filePath, mAltList, mTempList, mPressList);
}
public void setVariablesAsExcelByCondition(List filePathList, String filePath) {
getRoDataByCondition(filePathList);
//第一步,创建一个workbook对应一个excel文件
createExcel(filePath, mAltListByCondition, mTempListByCondition, mPressListByCondition);
}
private void createExcel(String filePath, List altListByCondition, List tempListByCondition, List pressListByCondition) {
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
for (int i = 0; i < altListByCondition.size(); i++) {
//第二部,在workbook中创建一个sheet对应excel中的sheet
HSSFSheet sheet = hssfWorkbook.createSheet("用户表" + i);
//第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
HSSFRow row = sheet.createRow(0);
HSSFCell cell;
cell = row.createCell(0);
cell.setCellValue("alt");
cell = row.createCell( 1);
cell.setCellValue("temp");
cell = row.createCell(2);
cell.setCellValue("pres");
for (long l = 0; l < altListByCondition.get(i).getSize(); l++) {
HSSFRow row1 = sheet.createRow((int) l);
row1.createCell(0).setCellValue(altListByCondition.get(i).getDouble((int) l));
row1.createCell(1).setCellValue(tempListByCondition.get(i).getDouble((int) l));
row1.createCell(2).setCellValue(pressListByCondition.get(i).getDouble((int) l));
}
}
String str = "/Variables.xls";
makeExcel(filePath, str, hssfWorkbook);
}
/**
* 获取数据
*
* @param filePath
*/
public void getRoData(String filePath) {
ReadAllNcDataUtils rd = new ReadAllNcDataUtils();
List nc = rd.getNcDataList(filePath);
mAltList = rd.getAltList(nc);
mTempList = rd.getTempList(nc);
mPressList = rd.getPressList(nc);
}
public void getRoDataByCondition(List filePathList) {
ReadAllNcDataUtils rd = new ReadAllNcDataUtils();
List nc = rd.getConditionNcDataList(filePathList);
mAltListByCondition = rd.getAltList(nc);
mTempListByCondition = rd.getTempList(nc);
mPressListByCondition = rd.getPressList(nc);
}
public void makeExcel(String filepath, String fpPlus, HSSFWorkbook hf) {
String str = filepath + fpPlus;
File file = new File(str);
if (file.exists()) {
file.deleteOnExit();
file = new File(str);
}
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file);
try {
hf.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3.总结 通过这两篇文章,我们也对使用Java操作Excel有了一定的了解。但是,这只是一些皮毛哈,要想深入了解,有兴趣的可以阅读相应的源码,哈哈哈。这里就不多深入了。 [x] 我们的征途是星辰大海。我就是我,我就是天! [x] 疾风亦有龟途对本文享有版权,转载请标明原文链接,禁止复制! [x] 欢迎访问我的个人博客网站---->夙夜星辰叹 [x] 欢迎关注我的微信公众号:
2020/09/05 06:44
1335
Excel
数据
存储
掩星
java
热门标签