comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java @ 6780:b8f94e865875

S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 08 Aug 2013 12:17:03 +0200
parents 876c797c2805
children e8283197d889
comparison
equal deleted inserted replaced
6779:8e5adc56385c 6780:b8f94e865875
64 }; 64 };
65 65
66 protected List<Measurement> measuments; 66 protected List<Measurement> measuments;
67 protected List<Measurement> accumulated; 67 protected List<Measurement> accumulated;
68 68
69 protected SQ.Factory sqFactory;
70
69 public Measurements() { 71 public Measurements() {
70 } 72 }
71 73
72 public Measurements( 74 public Measurements(
73 List<Measurement> measuments, 75 List<Measurement> measuments,
74 List<Measurement> accumulated 76 List<Measurement> accumulated,
77 SQ.Factory sqFactory
75 ) { 78 ) {
79 this.sqFactory = sqFactory;
76 if (log.isDebugEnabled()) { 80 if (log.isDebugEnabled()) {
77 log.debug("number of measuments: " + measuments.size()); 81 log.debug("number of measuments: " + measuments.size());
78 log.debug("number of accumulated: " + accumulated.size()); 82 log.debug("number of accumulated: " + accumulated.size());
79 } 83 }
80 this.measuments = measuments; 84 this.measuments = measuments;
81 this.accumulated = accumulated; 85 this.accumulated = accumulated;
82 } 86 }
83 87
84 public static List<SQ> extractSQ( 88 public List<SQ> extractSQ(
85 List<Measurement> measuments, 89 List<Measurement> measuments,
86 SExtractor extractor 90 SExtractor extractor
87 ) { 91 ) {
88 List<SQ> result = new ArrayList<SQ>(measuments.size()); 92 List<SQ> result = new ArrayList<SQ>(measuments.size());
89 int invalid = 0; 93 int invalid = 0;
90 for (Measurement measument: measuments) { 94 for (Measurement measument: measuments) {
91 SQ sq = new SQ(extractor.getS(measument), measument.Q()); 95 SQ sq = sqFactory.createSQ(extractor.getS(measument), measument.Q());
92 if (sq.isValid()) { 96 if (sq.isValid()) {
93 result.add(sq); 97 result.add(sq);
94 } 98 }
95 else { 99 else {
96 ++invalid; 100 ++invalid;

http://dive4elements.wald.intevation.org