|
@@ -234,27 +234,29 @@ public class CloudFileParsing {
|
|
|
BigDecimal nwpDirectRadiation = new BigDecimal("0.7"); //直接辐射
|
|
|
BigDecimal nwpDiffuseRadiation = new BigDecimal("0.3"); //散接辐射
|
|
|
|
|
|
- String forecastModel = "";
|
|
|
+ String fileName = file.getName();
|
|
|
+ String forecastModel = fileName.split("_")[2];
|
|
|
|
|
|
|
|
|
while ((lineTxt = bufferedReaderNwp.readLine()) != null) {
|
|
|
//NWP文件按照Tab方式截取
|
|
|
String[] datas = lineTxt.split("\t");
|
|
|
|
|
|
- if (datas[0].startsWith("<集中")) {
|
|
|
- // 使用单引号分割字符串
|
|
|
- forecastModel = ParsingUtil.splitLineWithSpace(datas[0])[2].split("'")[1];
|
|
|
- }
|
|
|
+// if (datas[0].startsWith("<集中")) {
|
|
|
+// // 使用单引号分割字符串
|
|
|
+// forecastModel = ParsingUtil.splitLineWithSpace(datas[0])[2].split("'")[1];
|
|
|
+// }
|
|
|
|
|
|
|
|
|
- if (!stationCode.equals("") && !forecastModel.equals("") && datas.length >= 35 && datas[0].startsWith("#")) {
|
|
|
+// if (!stationCode.equals("") && !forecastModel.equals("") && datas.length >= 35 && datas[0].startsWith("#")) {
|
|
|
+ if (!stationCode.equals("") && datas.length >= 35 && datas[0].startsWith("#")) {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
//过滤当天的数据
|
|
|
//if (sdf.parse(datas[5]).getTime() >= TimeUtils.getMillisecondsSubDay() + 24 * 60 * 60 *
|
|
|
// 1000) {
|
|
|
|
|
|
|
|
|
- Date time = sdf.parse(datas[5]);
|
|
|
+ Date time = sdf.parse(datas[1]);
|
|
|
Integer howLongAgo = calcHowLongAgo(currentDate, time);
|
|
|
if (howLongAgo > 0) {
|
|
|
|
|
@@ -265,58 +267,58 @@ public class CloudFileParsing {
|
|
|
nwpData.setForecastModel(forecastModel);
|
|
|
nwpData.setStationCode(stationCode);
|
|
|
nwpData.setTime(time);//采集时间 与 短期预测时间关联
|
|
|
- nwpData.setT(NumberUtil.subtract(new BigDecimal(datas[6]), new BigDecimal("273.15")));//温度
|
|
|
-
|
|
|
- nwpData.setSenf(new BigDecimal(datas[11]).setScale(2, RoundingMode.HALF_UP));//感热
|
|
|
- nwpData.setSwr(new BigDecimal(datas[9]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
|
|
|
- nwpData.setLwr(new BigDecimal(datas[10]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
|
|
|
- nwpData.setPressure(new BigDecimal(datas[8]).setScale(2, RoundingMode.HALF_UP));//地表气压
|
|
|
- nwpData.setRh(new BigDecimal(datas[7]).setScale(2, RoundingMode.HALF_UP));//2m相对湿度
|
|
|
- nwpData.setDiffuseRadiation(new BigDecimal(datas[9]).multiply(nwpDiffuseRadiation).setScale(2, RoundingMode.HALF_UP));//散接辐射
|
|
|
- nwpData.setDirectRadiation(new BigDecimal(datas[9]).multiply(nwpDirectRadiation).setScale(2, RoundingMode.HALF_UP));//直接辐射
|
|
|
-
|
|
|
- nwpData.setWs10(new BigDecimal(datas[19]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs30(new BigDecimal(datas[20]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs50(new BigDecimal(datas[21]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs70(new BigDecimal(datas[22]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs80(new BigDecimal(datas[23]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs90(new BigDecimal(datas[24]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs100(new BigDecimal(datas[25]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs170(new BigDecimal(datas[26]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd10(new BigDecimal(datas[27]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setT(NumberUtil.subtract(new BigDecimal(datas[2]), new BigDecimal("273.15")));//温度
|
|
|
+
|
|
|
+// nwpData.setSenf(new BigDecimal(datas[11]).setScale(2, RoundingMode.HALF_UP));//感热
|
|
|
+ nwpData.setSwr(new BigDecimal(datas[5]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
|
|
|
+// nwpData.setLwr(new BigDecimal(datas[10]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
|
|
|
+ nwpData.setPressure(new BigDecimal(datas[4]).setScale(2, RoundingMode.HALF_UP));//地表气压
|
|
|
+ nwpData.setRh(new BigDecimal(datas[3]).setScale(2, RoundingMode.HALF_UP));//2m相对湿度
|
|
|
+ nwpData.setDiffuseRadiation(new BigDecimal(datas[5]).multiply(nwpDiffuseRadiation).setScale(2, RoundingMode.HALF_UP));//散接辐射
|
|
|
+ nwpData.setDirectRadiation(new BigDecimal(datas[5]).multiply(nwpDirectRadiation).setScale(2, RoundingMode.HALF_UP));//直接辐射
|
|
|
+
|
|
|
+ nwpData.setWs10(new BigDecimal(datas[6]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs30(new BigDecimal(datas[8]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs50(new BigDecimal(datas[10]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs70(new BigDecimal(datas[12]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs80(new BigDecimal(datas[13]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs90(new BigDecimal(datas[14]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs100(new BigDecimal(datas[15]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs170(new BigDecimal(datas[22]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd10(new BigDecimal(datas[26]).setScale(2, RoundingMode.HALF_UP));
|
|
|
nwpData.setWd30(new BigDecimal(datas[28]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd50(new BigDecimal(datas[29]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd70(new BigDecimal(datas[30]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd80(new BigDecimal(datas[31]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd90(new BigDecimal(datas[32]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd100(new BigDecimal(datas[33]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd170(new BigDecimal(datas[34]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd50(new BigDecimal(datas[30]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd70(new BigDecimal(datas[32]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd80(new BigDecimal(datas[33]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd90(new BigDecimal(datas[34]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd100(new BigDecimal(datas[35]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd170(new BigDecimal(datas[42]).setScale(2, RoundingMode.HALF_UP));
|
|
|
if (datas.length > 35) {
|
|
|
//nwp 新增解析内容
|
|
|
- nwpData.setWs20(new BigDecimal(datas[35]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs40(new BigDecimal(datas[36]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs60(new BigDecimal(datas[37]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs110(new BigDecimal(datas[38]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs120(new BigDecimal(datas[39]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs130(new BigDecimal(datas[40]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs140(new BigDecimal(datas[41]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs150(new BigDecimal(datas[42]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs160(new BigDecimal(datas[43]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs180(new BigDecimal(datas[44]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs190(new BigDecimal(datas[45]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWs200(new BigDecimal(datas[46]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd20(new BigDecimal(datas[47]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd40(new BigDecimal(datas[48]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd60(new BigDecimal(datas[49]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd110(new BigDecimal(datas[50]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd120(new BigDecimal(datas[51]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd130(new BigDecimal(datas[52]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd140(new BigDecimal(datas[53]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd150(new BigDecimal(datas[54]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd160(new BigDecimal(datas[55]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd180(new BigDecimal(datas[56]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd190(new BigDecimal(datas[57]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setWd200(new BigDecimal(datas[58]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs20(new BigDecimal(datas[7]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs40(new BigDecimal(datas[9]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs60(new BigDecimal(datas[11]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs110(new BigDecimal(datas[16]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs120(new BigDecimal(datas[17]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs130(new BigDecimal(datas[18]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs140(new BigDecimal(datas[19]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs150(new BigDecimal(datas[20]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs160(new BigDecimal(datas[21]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs180(new BigDecimal(datas[23]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs190(new BigDecimal(datas[24]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWs200(new BigDecimal(datas[25]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd20(new BigDecimal(datas[27]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd40(new BigDecimal(datas[29]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd60(new BigDecimal(datas[31]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd110(new BigDecimal(datas[36]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd120(new BigDecimal(datas[37]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd130(new BigDecimal(datas[38]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd140(new BigDecimal(datas[39]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd150(new BigDecimal(datas[40]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd160(new BigDecimal(datas[41]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd180(new BigDecimal(datas[43]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd190(new BigDecimal(datas[44]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setWd200(new BigDecimal(datas[45]).setScale(2, RoundingMode.HALF_UP));
|
|
|
//下面的感觉用不上,先注释
|
|
|
// nwpData.setT10(new BigDecimal(datas[59]).setScale(2, RoundingMode.HALF_UP));
|
|
|
// nwpData.setT20(new BigDecimal(datas[60]).setScale(2, RoundingMode.HALF_UP));
|
|
@@ -345,7 +347,7 @@ public class CloudFileParsing {
|
|
|
// nwpData.setMcc(new BigDecimal(datas[83]).setScale(2, RoundingMode.HALF_UP));
|
|
|
// nwpData.setHcc(new BigDecimal(datas[84]).setScale(2, RoundingMode.HALF_UP));
|
|
|
// nwpData.setTcc(new BigDecimal(datas[85]).setScale(2, RoundingMode.HALF_UP));
|
|
|
- nwpData.setTpr(new BigDecimal(datas[86]).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ nwpData.setTpr(new BigDecimal(datas[73]).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
}
|
|
|
listNwp.add(nwpData);
|