/** * ***************************************************************************** * Copyright 2013 Johannes Mitlmeier * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * **************************************************************************** */ package de.fub.agg2graph.input; import de.fub.agg2graph.agg.AggCleaner; /** * Container class for several options to be used with {@link GPSCleaner} or * {@link AggCleaner}. * * @author Johannes Mitlmeier * */ public class CleaningOptions { // number of edges allowed per segment public boolean filterBySegmentLength = false; public long minSegmentLength = 1; public long maxSegmentLength = Long.MAX_VALUE; // min/max distance between two points (meters) public boolean filterByEdgeLength = true; public double minEdgeLength = 0.1; public double maxEdgeLength = 500; // length change between two consecutive edges public boolean filterByEdgeLengthIncrease = true; public double minEdgeLengthIncreaseFactor = 10; public double minEdgeLengthAfterIncrease = 30; // zigzag public boolean filterZigzag = true; public double maxZigzagAngle = 30; // fake circle public boolean filterFakeCircle = true; public double maxFakeCircleAngle = 50; // outliers public boolean filterOutliers = true; public int maxNumOutliers = 2; @Override public String toString() { return "CleaningOptions{" + "filterBySegmentLength=" + filterBySegmentLength + ", minSegmentLength=" + minSegmentLength + ", maxSegmentLength=" + maxSegmentLength + ", filterByEdgeLength=" + filterByEdgeLength + ", minEdgeLength=" + minEdgeLength + ", maxEdgeLength=" + maxEdgeLength + ", filterByEdgeLengthIncrease=" + filterByEdgeLengthIncrease + ", minEdgeLengthIncreaseFactor=" + minEdgeLengthIncreaseFactor + ", minEdgeLengthAfterIncrease=" + minEdgeLengthAfterIncrease + ", filterZigzag=" + filterZigzag + ", maxZigzagAngle=" + maxZigzagAngle + ", filterFakeCircle=" + filterFakeCircle + ", maxFakeCircleAngle=" + maxFakeCircleAngle + ", filterOutliers=" + filterOutliers + ", maxNumOutliers=" + maxNumOutliers + '}'; } }