diff --git a/src/main/java/net/ipmdecisions/model/entity/LocationResult.java b/src/main/java/net/ipmdecisions/model/entity/LocationResult.java index ef2ed6cb86e5de509f45cc912c721c693b76f5bc..a075a153dd18568281459039c641cb990c62098f 100644 --- a/src/main/java/net/ipmdecisions/model/entity/LocationResult.java +++ b/src/main/java/net/ipmdecisions/model/entity/LocationResult.java @@ -28,12 +28,14 @@ public class LocationResult { private Double latitude; private Double altitude; private Double[][] data; + private Integer[] warningStatus; public LocationResult(Double longitude, Double latitude, Double altitude, int rows, int columns){ this.longitude = longitude; this.latitude = latitude; this.altitude = altitude; this.data = new Double[rows][columns]; + this.warningStatus = new Integer[rows]; } public LocationResult(){ @@ -150,4 +152,18 @@ public class LocationResult { public void setAltitude(Double altitude) { this.altitude = altitude; } + + /** + * @return the warningStatus + */ + public Integer[] getWarningStatus() { + return warningStatus; + } + + /** + * @param warningStatus the warningStatus to set + */ + public void setWarningStatus(Integer[] warningStatus) { + this.warningStatus = warningStatus; + } } diff --git a/src/main/java/no/nibio/vips/ipmdecisions/DataTransformer.java b/src/main/java/no/nibio/vips/ipmdecisions/DataTransformer.java index 3c66ac2b7212aa9dc0f36a52a934c0b6329bef92..d25a362b2a05eb6b56bf72d2a032ad1f585547a1 100644 --- a/src/main/java/no/nibio/vips/ipmdecisions/DataTransformer.java +++ b/src/main/java/no/nibio/vips/ipmdecisions/DataTransformer.java @@ -83,7 +83,7 @@ public class DataTransformer { // b) check all possible result parameters Collections.sort(VIPSResults); Set<String> resultParameters = new HashSet<>(); - resultParameters.add("WARNING_STATUS"); + //resultParameters.add("WARNING_STATUS"); Long minSecondsBetween = null; Long lastTime = null; for(Result r:VIPSResults) @@ -113,20 +113,18 @@ public class DataTransformer { retVal.setTimeEnd(VIPSResults.get(VIPSResults.size()-1).getValidTimeStart().toInstant()); LocationResult locationResult = new LocationResult(); Long rows = 1 + (retVal.getTimeEnd().getEpochSecond() - retVal.getTimeStart().getEpochSecond()) / retVal.getInterval(); - Double[][] data = new Double[rows.intValue()][retVal.getResultParameters().length]; // TODO Set correct dimensions + Double[][] data = new Double[rows.intValue()][retVal.getResultParameters().length]; + Integer[] warningStatus = new Integer[rows.intValue()]; for(Result r:VIPSResults) { // Calculate which row, based on Long row = (r.getValidTimeStart().getTime()/1000 - retVal.getTimeStart().getEpochSecond()) / retVal.getInterval(); + warningStatus[row.intValue()] = r.getWarningStatus(); // Using the ordering in the resultParameters for(int i=0;i<retVal.getResultParameters().length;i++) { data[row.intValue()][i] = null; - if(VIPSResultParameters[i].equals("WARNING_STATUS")) - { - data[row.intValue()][i] = r.getWarningStatus().doubleValue(); - } - else if(VIPSResultParameters[i] != null) + if(VIPSResultParameters[i] != null) { if(r.getAllValues().get(VIPSResultParameters[i]) != null) { @@ -135,6 +133,7 @@ public class DataTransformer { } } } + locationResult.setWarningStatus(warningStatus); locationResult.setData(data); retVal.addLocationResult(locationResult); return retVal;