comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/ChartFactory.java @ 82:5eb62df21f9a

Added Support for Vertical Profiles Marnet, STAUN, IMIS gnv-artifacts/trunk@111 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 22 Sep 2009 13:20:30 +0000
parents d117fd4b82e5
children 5d4f5d26bb7a
comparison
equal deleted inserted replaced
81:9b41f3688610 82:5eb62df21f9a
242 maxGap = (dEnd.getTime() - dStart.getTime())/(pEnd-pStart) + 1000; 242 maxGap = (dEnd.getTime() - dStart.getTime())/(pEnd-pStart) + 1000;
243 243
244 if (sDebug) 244 if (sDebug)
245 sLogger.debug("MaxGap : "+maxGap/1000+" Länge : "+(dEnd.getTime() - dStart.getTime())/1000+ 245 sLogger.debug("MaxGap : "+maxGap/1000+" Länge : "+(dEnd.getTime() - dStart.getTime())/1000+
246 "Intervall "+(dEnd.getTime() - dStart.getTime())/(pEnd-pStart)/1000); 246 "Intervall "+(dEnd.getTime() - dStart.getTime())/(pEnd-pStart)/1000);
247 lDate = lRow0.getDate("TIMEVALUE"); 247 lDate = lRow0.getDate("XORDINATE");
248 lDate0 = lDate; 248 lDate0 = lDate;
249 lValue = lRow0.getDouble("DATAVALUE"); 249 lValue = lRow0.getDouble("YORDINATE");
250 if (lValue > lLowerCut && lValue < lUpperCut){ 250 if (lValue > lLowerCut && lValue < lUpperCut){
251 //lTimeseries.addOrUpdate(new Minute(lDate), lValue); 251 //lTimeseries.addOrUpdate(new Minute(lDate), lValue);
252 lTimeseries.add(new Minute(lDate), lValue); 252 lTimeseries.add(new Minute(lDate), lValue);
253 } 253 }
254 } 254 }
255 //for (int i = pStart+1; i <= pEnd; i++) { 255 //for (int i = pStart+1; i <= pEnd; i++) {
256 lRow1 =lRow; 256 lRow1 =lRow;
257 lDate = lRow1.getDate("TIMEVALUE"); 257 lDate = lRow1.getDate("XORDINATE");
258 lValue = lRow1.getDouble("DATAVALUE"); 258 lValue = lRow1.getDouble("YORDINATE");
259 lDateDiff = lDate.getTime() - lDate0.getTime(); 259 lDateDiff = lDate.getTime() - lDate0.getTime();
260 if (lDateDiff > maxGap) { 260 if (lDateDiff > maxGap) {
261 // add 1 minute in millisecs to left hand side Date 261 // add 1 minute in millisecs to left hand side Date
262 // and insert Dummy to break line 262 // and insert Dummy to break line
263 lDate0.setTime((lDate0.getTime() + 60000)); 263 lDate0.setTime((lDate0.getTime() + 60000));
296 int lUpperCut, int lLowerCut,Collection<KeyValueDescibeData> parameters, Collection<KeyValueDescibeData> measurements) throws TechnicalChartException { 296 int lUpperCut, int lLowerCut,Collection<KeyValueDescibeData> parameters, Collection<KeyValueDescibeData> measurements) throws TechnicalChartException {
297 297
298 TimeSeriesCollection lTimeSeriesCollection = new TimeSeriesCollection(); 298 TimeSeriesCollection lTimeSeriesCollection = new TimeSeriesCollection();
299 try{ 299 try{
300 Date dStart = null, dEnd= null; 300 Date dStart = null, dEnd= null;
301 int break1, break2, break3; 301 String break1, break2, break3;
302 int mStart = 0; 302 int mStart = 0;
303 int mEnd = 0; 303 int mEnd = 0;
304 304
305 305
306 Iterator<Result> resultIterator = resultSet.iterator(); 306 Iterator<Result> resultIterator = resultSet.iterator();
307 if (resultIterator.hasNext()){ 307 if (resultIterator.hasNext()){
308 // Row row = new Row(sArrayStrLine); 308 // Row row = new Row(sArrayStrLine);
309 Result row = resultIterator.next(); 309 Result row = resultIterator.next();
310 310
311 break1 = row.getInteger("PARAMETERID").intValue(); // 2 311 break1 = row.getString("GROUP1"); // 2
312 break2 = row.getInteger("MEASUREMENTID").intValue(); //3 312 break2 = row.getString("GROUP2"); //3
313 break3 = row.getInteger("TIMESERIESID").intValue(); // 4 313 break3 = row.getString("GROUP3"); // 4
314 dStart = row.getDate("TIMEVALUE"); 314 dStart = row.getDate("XORDINATE");
315 int i = 1; 315 int i = 1;
316 while (resultIterator.hasNext()) { 316 while (resultIterator.hasNext()) {
317 row = resultIterator.next(); 317 row = resultIterator.next();
318 if (break1 != row.getInteger("PARAMETERID").intValue() 318 if (!break1.equals(row.getString("GROUP1"))
319 || break2 != row.getInteger("MEASUREMENTID").intValue() 319 || !break2 .equals(row.getString("GROUP2"))
320 || break3 != row.getInteger("TIMESERIESID").intValue()){ 320 || !break3.equals(row.getString("GROUP3"))){
321 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ 321 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+
322 findValueTitle(measurements,break2)+"m"; 322 findValueTitle(measurements,break2)+"m";
323 323
324 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName, 324 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName,
325 resultSet, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd)); 325 resultSet, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd));
326 mStart = i; 326 mStart = i;
327 dStart = row.getDate("TIMEVALUE"); 327 dStart = row.getDate("XORDINATE");
328 break1 = row.getInteger("PARAMETERID").intValue(); 328 break1 = row.getString("GROUP1");
329 break2 = row.getInteger("MEASUREMENTID").intValue(); //3 329 break2 = row.getString("GROUP2"); //3
330 break3 = row.getInteger("TIMESERIESID").intValue(); // 4 330 break3 = row.getString("GROUP3"); // 4
331 331
332 } 332 }
333 mEnd = i; 333 mEnd = i;
334 //mEnd ++; 334 //mEnd ++;
335 dEnd = row.getDate("TIMEVALUE"); 335 dEnd = row.getDate("XORDINATE");
336 i = i + 1; 336 i = i + 1;
337 } 337 }
338 338
339 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ 339 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+
340 findValueTitle(measurements,break2)+"m"; 340 findValueTitle(measurements,break2)+"m";
367 367
368 lEncoder.encode(lImage, outputStream); 368 lEncoder.encode(lImage, outputStream);
369 369
370 } 370 }
371 371
372 private String findValueTitle(Collection<KeyValueDescibeData> values,int pMmtId){ 372 private String findValueTitle(Collection<KeyValueDescibeData> values, String pMmtId){
373 Iterator<KeyValueDescibeData> it = values.iterator(); 373 int id = 0;
374 try {
375 id = Integer.parseInt(pMmtId);
376 } catch (NumberFormatException e) {
377 sLogger.warn(e,e);
378 return pMmtId;
379 }
380
381 Iterator<KeyValueDescibeData> it = values.iterator();
374 while(it.hasNext()){ 382 while(it.hasNext()){
375 KeyValueDescibeData data = it.next(); 383 KeyValueDescibeData data = it.next();
376 if ((long) pMmtId ==data.getKey()){ 384 if (id ==Integer.parseInt(data.getKey())){ // TODO just a hack
377 return data.getValue(); 385 return data.getValue();
378 } 386 }
379 } 387 }
380 return ""; 388 return "";
381 } 389 }

http://dive4elements.wald.intevation.org