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

http://dive4elements.wald.intevation.org