Class CutProfile
- java.lang.Object
-
- org.noise_planet.noisemodelling.pathfinder.profilebuilder.CutProfile
-
public class CutProfile extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCutProfile.PROFILE_TYPEProfile type from source to receiver Left and Right are a path using the convex hull on the intersection plane with buildings
-
Field Summary
Fields Modifier and Type Field Description booleancurvedPathTrue if the path between source and receiver is curved, the coordinates are the original, only the cutting planes for left and right are not the sameArrayList<CutPoint>cutPointsList of cut points.booleanhasBuildingIntersectionTrue if Source-Receiver linestring is below building intersection, only used at the generation of the profile to skip searching for lateral cut planesbooleanhasTopographyIntersectionTrue if Source-Receiver linestring is below topography cutting point., only used at the generation of the profile to skip searching for lateral cut planesCutProfile.PROFILE_TYPEprofileType
-
Constructor Summary
Constructors Constructor Description CutProfile()Empty constructor for deserializationCutProfile(CutPointSource source, CutPointReceiver receiver)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<org.locationtech.jts.geom.Coordinate>computePts2D()List<org.locationtech.jts.geom.Coordinate>computePts2D(boolean curvedPath)List<org.locationtech.jts.geom.Coordinate>computePts2DGround()From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system.List<org.locationtech.jts.geom.Coordinate>computePts2DGround(double tolerance, List<Integer> index)From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system.List<org.locationtech.jts.geom.Coordinate>computePts2DGround(List<Integer> index)From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system.static List<org.locationtech.jts.geom.Coordinate>computePts2DGround(List<CutPoint> pts, double tolerance, List<Integer> index)From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system.static List<org.locationtech.jts.geom.Coordinate>computePtsGround(List<CutPoint> pts, List<Integer> index)From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings)List<Integer>getConvexHullIndices(List<org.locationtech.jts.geom.Coordinate> coordinates2d)ArrayList<CutPoint>getCutPoints()doublegetGPath()doublegetGPath(CutPoint p0, CutPoint p1, double buildingRoofG)compute the path between two pointsCutProfile.PROFILE_TYPEgetProfileType()CutPointReceivergetReceiver()CutPointSourcegetSource()voidinsertCutPoint(boolean sortBySourcePosition, CutPoint... cutPointsToInsert)Insert and sort cut points,booleanisCurvedPath()booleanisFreeField()voidsetCurvedPath(boolean curvedPath)voidsetProfileType(CutProfile.PROFILE_TYPE profileType)voidsort(org.locationtech.jts.geom.Coordinate c0)Sort the CutPoints by distance with c0StringtoString()
-
-
-
Field Detail
-
cutPoints
public ArrayList<CutPoint> cutPoints
List of cut points. First point is source, last point is receiver
-
hasBuildingIntersection
public boolean hasBuildingIntersection
True if Source-Receiver linestring is below building intersection, only used at the generation of the profile to skip searching for lateral cut planes
-
hasTopographyIntersection
public boolean hasTopographyIntersection
True if Source-Receiver linestring is below topography cutting point., only used at the generation of the profile to skip searching for lateral cut planes
-
curvedPath
public boolean curvedPath
True if the path between source and receiver is curved, the coordinates are the original, only the cutting planes for left and right are not the same
-
profileType
public CutProfile.PROFILE_TYPE profileType
-
-
Constructor Detail
-
CutProfile
public CutProfile()
Empty constructor for deserialization
-
CutProfile
public CutProfile(CutPointSource source, CutPointReceiver receiver)
-
-
Method Detail
-
getProfileType
public CutProfile.PROFILE_TYPE getProfileType()
- Returns:
- Cut Profile type
-
setProfileType
public void setProfileType(CutProfile.PROFILE_TYPE profileType)
- Parameters:
profileType- The cut profile type
-
setCurvedPath
public void setCurvedPath(boolean curvedPath)
- Parameters:
curvedPath- True if the path between source and receiver is curved, the coordinates are the original, only the cutting planes for left and right are not the same
-
isCurvedPath
public boolean isCurvedPath()
- Returns:
- True if the path between source and receiver is curved
-
insertCutPoint
public void insertCutPoint(boolean sortBySourcePosition, CutPoint... cutPointsToInsert)Insert and sort cut points,- Parameters:
sortBySourcePosition- After inserting points, sort the by the distance from the sourcecutPointsToInsert-
-
sort
public void sort(org.locationtech.jts.geom.Coordinate c0)
Sort the CutPoints by distance with c0
-
getGPath
public double getGPath(CutPoint p0, CutPoint p1, double buildingRoofG)
compute the path between two points- Parameters:
p0-p1-- Returns:
- the absorption coefficient of this path
-
getGPath
public double getGPath()
-
isFreeField
public boolean isFreeField()
- Returns:
-
computePts2DGround
public List<org.locationtech.jts.geom.Coordinate> computePts2DGround()
From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system. The first point is always x=0.- Returns:
- the computed 2D coordinate list of DEM
-
computePts2D
public List<org.locationtech.jts.geom.Coordinate> computePts2D(boolean curvedPath)
- Returns:
-
computePts2D
public List<org.locationtech.jts.geom.Coordinate> computePts2D()
- Returns:
-
getConvexHullIndices
public List<Integer> getConvexHullIndices(List<org.locationtech.jts.geom.Coordinate> coordinates2d)
-
computePts2DGround
public List<org.locationtech.jts.geom.Coordinate> computePts2DGround(List<Integer> index)
From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system. The first point is always x=0.- Parameters:
index- Corresponding index from parameter to return list items- Returns:
- the computed 2D coordinate list of DEM
-
computePtsGround
public static List<org.locationtech.jts.geom.Coordinate> computePtsGround(List<CutPoint> pts, List<Integer> index)
From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings)- Parameters:
pts- Cut pointsindex- Corresponding index from parameter to return list items- Returns:
- the computed coordinate list of the vertical cut
-
computePts2DGround
public static List<org.locationtech.jts.geom.Coordinate> computePts2DGround(List<CutPoint> pts, double tolerance, List<Integer> index)
From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system. The first point is always x=0.- Parameters:
pts- Cut pointstolerance- Simplify the point list by not adding points where the distance from the line segments formed from the previous and the next point is inferior to this tolerance (remove intermediate collinear points)index- Corresponding index from parameter to return list items- Returns:
- the computed 2D coordinate list of DEM
-
computePts2DGround
public List<org.locationtech.jts.geom.Coordinate> computePts2DGround(double tolerance, List<Integer> index)
From the vertical plane cut, extract only the top elevation points (buildings/walls top or ground if no buildings) then re-project it into a 2d coordinate system. The first point is always x=0.- Parameters:
tolerance- Simplify the point list by not adding points where the distance from the line segments formed from the previous and the next point is inferior to this tolerance (remove intermediate collinear points)index- Corresponding index from parameter to return list items- Returns:
- the computed 2D coordinate list of DEM
-
getSource
public CutPointSource getSource()
-
getReceiver
public CutPointReceiver getReceiver()
-
-