comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 5103:15e856a64cdd

Partly fix flys/issue1142: Include specified W values at gauge for fix.real.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 26 Feb 2013 11:49:46 +0100
parents 4c76c5f69eaf
children 34baad34987f
comparison
equal deleted inserted replaced
5102:baf51f820838 5103:15e856a64cdd
30 import de.intevation.artifacts.CallMeta; 30 import de.intevation.artifacts.CallMeta;
31 import de.intevation.artifacts.common.utils.Config; 31 import de.intevation.artifacts.common.utils.Config;
32 32
33 import de.intevation.flys.model.Gauge; 33 import de.intevation.flys.model.Gauge;
34 34
35 import de.intevation.flys.artifacts.access.FixRealizingAccess;
35 import de.intevation.flys.artifacts.access.RangeAccess; 36 import de.intevation.flys.artifacts.access.RangeAccess;
37 import de.intevation.flys.artifacts.FixationArtifact;
36 import de.intevation.flys.artifacts.FLYSArtifact; 38 import de.intevation.flys.artifacts.FLYSArtifact;
37 import de.intevation.flys.artifacts.WINFOArtifact; 39 import de.intevation.flys.artifacts.WINFOArtifact;
38 import de.intevation.flys.artifacts.model.CalculationResult; 40 import de.intevation.flys.artifacts.model.CalculationResult;
41 import de.intevation.flys.artifacts.model.Segment;
39 import de.intevation.flys.artifacts.model.WQCKms; 42 import de.intevation.flys.artifacts.model.WQCKms;
40 import de.intevation.flys.artifacts.model.WQKms; 43 import de.intevation.flys.artifacts.model.WQKms;
41 import de.intevation.flys.artifacts.model.WKmsJRDataSource; 44 import de.intevation.flys.artifacts.model.WKmsJRDataSource;
42 import de.intevation.flys.artifacts.model.WQKmsResult; 45 import de.intevation.flys.artifacts.model.WQKmsResult;
43 import de.intevation.flys.artifacts.resources.Resources; 46 import de.intevation.flys.artifacts.resources.Resources;
491 } 494 }
492 495
493 long startTime = System.currentTimeMillis(); 496 long startTime = System.currentTimeMillis();
494 497
495 String colDesc = desc; 498 String colDesc = desc;
499 List<Segment> segments = null;
496 if (flys instanceof WINFOArtifact) { 500 if (flys instanceof WINFOArtifact) {
497 if (wqkms != null && wqkms.getRawValue() != null) { 501 if (wqkms != null && wqkms.getRawValue() != null) {
498 WINFOArtifact winfo = (WINFOArtifact) flys; 502 WINFOArtifact winfo = (WINFOArtifact) flys;
499 colDesc = FLYSUtils.getNamedMainValue(winfo, wqkms.getRawValue()); 503 colDesc = FLYSUtils.getNamedMainValue(winfo, wqkms.getRawValue());
500 } 504 }
501 } 505 }
506 else if (flys instanceof FixationArtifact) {
507 // Get W/Q input per gauge for this case.
508 FixRealizingAccess fixAccess = new FixRealizingAccess(flys, getCallContext());
509 segments = fixAccess.getSegments();
510 }
502 511
503 for (int i = 0; i < size; i ++) { 512 for (int i = 0; i < size; i ++) {
504 result = wqkms.get(i, result); 513 result = wqkms.get(i, result);
514
515 // Check if there has been W input per Gauge and use it.
516 if (segments != null) {
517 for (Segment segment: segments) {
518 if (segment.inside(result[2])) {
519 colDesc = "" + segment.getValues()[0];
520 }
521 }
522 }
505 523
506 if (atGauge) { 524 if (atGauge) {
507 writer.writeNext(new String[] { 525 writer.writeNext(new String[] {
508 kmf.format(result[2]), 526 kmf.format(result[2]),
509 wf.format(result[0]), 527 wf.format(result[0]),

http://dive4elements.wald.intevation.org