Mercurial > dive4elements > river
changeset 8195:67b663ed0496
Anti programming: Removed TIM parser which ist not needed any longer.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 05 Sep 2014 10:09:16 +0200 |
parents | 59e50aa0c6c2 |
children | f799db6b1219 |
files | backend/src/main/java/org/dive4elements/river/importer/parsers/tim/LexiComparator.java backend/src/main/java/org/dive4elements/river/importer/parsers/tim/Line.java backend/src/main/java/org/dive4elements/river/importer/parsers/tim/TIMParser.java |
diffstat | 3 files changed, 0 insertions(+), 169 deletions(-) [+] |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/tim/LexiComparator.java Thu Sep 04 17:47:32 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU AGPL (>=v3) - * and comes with ABSOLUTELY NO WARRANTY! Check out the - * documentation coming with Dive4Elements River for details. - */ - -package org.dive4elements.river.importer.parsers.tim; - -import java.util.Comparator; - -public class LexiComparator implements Comparator<Coordinate> { - - public static final LexiComparator CMP = new LexiComparator(); - - @Override - public int compare(Coordinate a, Coordinate b) { - if (a.x < b.x) return -1; - if (a.x > b.x) return +1; - if (a.y < b.y) return -1; - if (a.y > b.y) return +1; - return 0; - } -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/tim/Line.java Thu Sep 04 17:47:32 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU AGPL (>=v3) - * and comes with ABSOLUTELY NO WARRANTY! Check out the - * documentation coming with Dive4Elements River for details. - */ - -package org.dive4elements.river.importer.parsers.tim; - -/** Two coordinates and a helper. */ -public class Line { - - public Coordinate a; - public Coordinate b; - - public Line() { - } - - public Line(Coordinate a, Coordinate b) { - this.a = a; - this.b = b; - } - - /** Project coordinate to line. */ - public double distanceToFirst(Coordinate c) { - - double nx = b.x - a.x; - double ny = b.y - a.y; - - double len = Math.sqrt(nx*nx + ny*ny); - - nx /= len; - ny /= len; - - double px = c.x - a.x; - double py = c.y - a.y; - - return nx*px + ny*py; - } -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/tim/TIMParser.java Thu Sep 04 17:47:32 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU AGPL (>=v3) - * and comes with ABSOLUTELY NO WARRANTY! Check out the - * documentation coming with Dive4Elements River for details. - */ - -package org.dive4elements.river.importer.parsers.tim; - -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import org.apache.log4j.Logger; - -import org.dive4elements.river.backend.utils.EpsilonComparator; - -/** Parser for single .tim files. */ -public class TIMParser -{ - /** Private logger. */ - private static Logger logger = Logger.getLogger(TIMParser.class); - - /** Proper encoding. */ - public static final String ENCODING = - System.getProperty("tim.encoding", "ISO-8859-1"); - - /** Map of stations (km) to points (xyz). */ - protected Map<Double, List<Coordinate>> lines; - - public TIMParser() { - lines = new TreeMap<Double, List<Coordinate>>(EpsilonComparator.CMP); - } - - /** Access map of stations (km) to coordinates (xyz). */ - public Map<Double, List<Coordinate>> getLines() { - return lines; - } - - /** Get number of lines (data). */ - public int numLines() { - return lines.size(); - } - - /** Parse single .tim file. */ - public void load(String filename) throws IOException { - BufferedReader reader = - new BufferedReader( - new InputStreamReader( - new FileInputStream(filename), ENCODING)); - try { - String row; - while ((row = reader.readLine()) != null) { - if (row.length() < 54) { - logger.warn("row too short"); - continue; - } - double station, x, y, z; - try { - station = Double.parseDouble(row.substring( 9, 16))/1000d; - x = Double.parseDouble(row.substring(20, 30))/1000d; - y = Double.parseDouble(row.substring(30, 40))/1000d; - z = Double.parseDouble(row.substring(47, 54))/10000d; - } catch (NumberFormatException nfe) { - logger.warn("Invalid row"); - continue; - } - - Double km = station; - - List<Coordinate> line = lines.get(km); - if (line == null) { - line = new ArrayList<Coordinate>(); - lines.put(km, line); - } - - line.add(new Coordinate(x, y, z)); - } - // Bring coords in lexicographical order. - sortCoordinates(); - } finally { - reader.close(); - } - } - - /** Sort coordinates of lines lexicographically. */ - protected void sortCoordinates() { - for (List<Coordinate> line: lines.values()) { - Collections.sort(line, LexiComparator.CMP); - } - } -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :