浏览代码

解析云端nwp新格式代码调整。

xusl 6 月之前
父节点
当前提交
604a5e40b5
共有 1 个文件被更改,包括 59 次插入57 次删除
  1. 59 57
      cpp-admin/src/main/java/com/cpp/web/service/datafactory/CloudFileParsing.java

+ 59 - 57
cpp-admin/src/main/java/com/cpp/web/service/datafactory/CloudFileParsing.java

@@ -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);