Skip to content
Snippets Groups Projects
Commit 4614f41a authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Bugfix in wind data collection

parent 7e3c7f4b
No related branches found
No related tags found
2 merge requests!17Develop,!13Spotit septoria map models
This commit is part of merge request !13. Comments created here will be created in the context of that merge request.
...@@ -2,6 +2,7 @@ package no.nibio.vips.logic.scheduling.model.preprocessor; ...@@ -2,6 +2,7 @@ package no.nibio.vips.logic.scheduling.model.preprocessor;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -54,6 +55,7 @@ public class FinnCerealModelsPreprocessor extends ModelRunPreprocessor { ...@@ -54,6 +55,7 @@ public class FinnCerealModelsPreprocessor extends ModelRunPreprocessor {
}, },
sowingDate, sowingDate,
configuration.getDateEndInTimeZone()); configuration.getDateEndInTimeZone());
Collections.sort(observations);
observations = wUtil.checkForAndFixHourlyTimeSeriesHoles(observations); observations = wUtil.checkForAndFixHourlyTimeSeriesHoles(observations);
List<WeatherObservation> temperature = observations.stream().filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.TEMPERATURE_MEAN)) List<WeatherObservation> temperature = observations.stream().filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.TEMPERATURE_MEAN))
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -63,11 +65,30 @@ public class FinnCerealModelsPreprocessor extends ModelRunPreprocessor { ...@@ -63,11 +65,30 @@ public class FinnCerealModelsPreprocessor extends ModelRunPreprocessor {
.collect(Collectors.toList()); .collect(Collectors.toList());
List<WeatherObservation> windSpeedAll = observations.stream().filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.WIND_SPEED_2M)) List<WeatherObservation> windSpeedAll = observations.stream().filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.WIND_SPEED_2M))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(windSpeedAll.isEmpty()) {
windSpeedAll = observations.stream().filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.WIND_SPEED_10MIN_2M)) // Dealing with wind, which may be dodgy with regards to forecasts etc.
.collect(Collectors.toList()); if(windSpeedAll.isEmpty() || windSpeedAll.size() != temperature.size()) {
List<WeatherObservation> windFallback = observations.stream()
.filter(t -> t.getElementMeasurementTypeId().equals(WeatherElements.WIND_SPEED_10MIN_2M))
.collect(Collectors.toList());
if(windSpeedAll.isEmpty())
{
windSpeedAll.addAll(windFallback);
}
else
{
Collections.sort(windSpeedAll);
Date lastWindTime = windSpeedAll.get(windSpeedAll.size()-1).getTimeMeasured();
windSpeedAll.addAll(windFallback.stream().filter(o->o.getTimeMeasured().after(lastWindTime)).collect(Collectors.toList()));
}
} }
/*System.out.println("Observations size = " + observations.size());
/*
Collections.sort(temperature);
System.out.println("First temp is at " + temperature.get(0).getTimeMeasured());
System.out.println("Last temp is at " + temperature.get(temperature.size()-1).getTimeMeasured());
System.out.println("Observations size = " + observations.size());
System.out.println("temperature size=" + temperature.size()); System.out.println("temperature size=" + temperature.size());
System.out.println("rainfall size=" + rainfall.size()); System.out.println("rainfall size=" + rainfall.size());
System.out.println("rh size =" + rh.size()); System.out.println("rh size =" + rh.size());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment