Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedloadOverview.java @ 8782:4289930e276c
Issue1854: Adapt to QualityMeasurementFactory and filter with river distance.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Tue, 08 Dec 2015 16:03:30 +0100 |
parents | 2e11fc7f5d35 |
children | b251a6ad46bb |
comparison
equal
deleted
inserted
replaced
8781:9530a00056dd | 8782:4289930e276c |
---|---|
92 " JOIN station s" + | 92 " JOIN station s" + |
93 " ON m.stationid = s.stationid " + | 93 " ON m.stationid = s.stationid " + |
94 " JOIN gewaesser g " + | 94 " JOIN gewaesser g " + |
95 " ON s.gewaesserid = g.gewaesserid " + | 95 " ON s.gewaesserid = g.gewaesserid " + |
96 "WHERE" + | 96 "WHERE" + |
97 " g.name = :name AND " + | 97 " g.name = :name" + |
98 " m.km IS NOT NULL " + | 98 " AND m.km IS NOT NULL" + |
99 "ORDER by" + | 99 " AND m.km BETWEEN :from AND :to " + |
100 " m.km, m.datum"; | 100 " AND m.d10 IS NOT NULL" + |
101 | 101 "ORDER BY m.km, m.datum"; |
102 protected String riverName; | 102 |
103 protected String riverName; | |
104 protected String SeddbRiverName; | |
103 | 105 |
104 protected KMIndex<List<Date>> entries; | 106 protected KMIndex<List<Date>> entries; |
105 | 107 |
106 public BedloadOverview() { | 108 public BedloadOverview() { |
107 entries = new KMIndex<List<Date>>(); | 109 entries = new KMIndex<List<Date>>(); |
108 } | 110 } |
109 | 111 |
110 public BedloadOverview(String riverName) { | 112 public BedloadOverview(String riverName) { |
111 this(); | 113 this(); |
112 this.riverName = RiverFactory.getRiver(riverName).nameForSeddb(); | 114 this.riverName = riverName; |
115 this.SeddbRiverName = RiverFactory.getRiver(riverName).nameForSeddb(); | |
113 } | 116 } |
114 | 117 |
115 private static final boolean epsilonEquals(double a, double b) { | 118 private static final boolean epsilonEquals(double a, double b) { |
116 return Math.abs(a - b) < EPSILON; | 119 return Math.abs(a - b) < EPSILON; |
117 } | 120 } |
118 | 121 |
119 protected void loadData(Session session) { | 122 protected void loadData(Session session) { |
123 double [] fromTo = RiverFactory.getRiver(riverName) | |
124 .determineMinMaxDistance(); | |
125 | |
120 SQLQuery query = session.createSQLQuery(SQL_SQ) | 126 SQLQuery query = session.createSQLQuery(SQL_SQ) |
121 .addScalar("km", StandardBasicTypes.DOUBLE) | 127 .addScalar("km", StandardBasicTypes.DOUBLE) |
122 .addScalar("datum", StandardBasicTypes.DATE); | 128 .addScalar("datum", StandardBasicTypes.DATE); |
123 | 129 |
124 query.setString("name", riverName); | 130 query.setString("name", SeddbRiverName); |
131 query.setDouble("from", fromTo[0]); | |
132 query.setDouble("to", fromTo[1]); | |
125 | 133 |
126 List<Object []> list = query.list(); | 134 List<Object []> list = query.list(); |
127 | 135 |
128 if (list.isEmpty()) { | 136 if (list.isEmpty()) { |
129 log.warn("No river '" + riverName + "' found."); | 137 log.warn("No river '" + SeddbRiverName + "' found."); |
130 } | 138 } |
131 | 139 |
132 Double prevKm = -Double.MAX_VALUE; | 140 Double prevKm = -Double.MAX_VALUE; |
133 List<Date> dates = new ArrayList<Date>(); | 141 List<Date> dates = new ArrayList<Date>(); |
134 | 142 |
172 | 180 |
173 Element sqElement = document.createElement("bedload"); | 181 Element sqElement = document.createElement("bedload"); |
174 | 182 |
175 Element riverElement = document.createElement("river"); | 183 Element riverElement = document.createElement("river"); |
176 | 184 |
177 riverElement.setAttribute("name", riverName); | 185 riverElement.setAttribute("name", SeddbRiverName); |
178 | 186 |
179 sqElement.appendChild(riverElement); | 187 sqElement.appendChild(riverElement); |
180 | 188 |
181 SimpleDateFormat df = new SimpleDateFormat(DATE_FORMAT); | 189 SimpleDateFormat df = new SimpleDateFormat(DATE_FORMAT); |
182 | 190 |