Class CnossosPathBuilder

java.lang.Object
org.noise_planet.noisemodelling.propagation.cnossos.CnossosPathBuilder

public class CnossosPathBuilder extends Object
Generate a CnossosPath from a vertical cut plane data
  • Field Details

  • Constructor Details

    • CnossosPathBuilder

      public CnossosPathBuilder()
  • Method Details

    • computeRayleighDiff

      public static void computeRayleighDiff(SegmentPath srSeg, CutProfile cutProfile, CnossosPath pathParameters, org.locationtech.jts.geom.LineSegment dSR, List<SegmentPath> segments, List<PointPath> points, List<org.locationtech.jts.geom.Coordinate> pts2D, org.locationtech.jts.geom.Coordinate[] pts2DGround, List<Integer> cut2DGroundIndex, List<Double> exactFrequencyArray)
    • computeSegment

      public static SegmentPath computeSegment(org.locationtech.jts.geom.Coordinate src, org.locationtech.jts.geom.Coordinate rcv, double[] meanPlane)
      Compute the segment path
      Parameters:
      src - source coordinate
      rcv - receiver coordinate
      meanPlane - mean plane coefficients
      Returns:
      the calculated segment
    • computeSegment

      public static SegmentPath computeSegment(org.locationtech.jts.geom.Coordinate src, org.locationtech.jts.geom.Coordinate rcv, double[] meanPlane, double gPath, double gS)
      Compute the segment path with more attribute
      Parameters:
      src - source coordinate
      rcv - receiver coordinate
      meanPlane - mean plane coefficients
      gPath - ground factor of the path
      gS - ground factor of the source
      Returns:
      the computed segment path
    • computeCnossosPathsFromCutProfile

      public static List<CnossosPath> computeCnossosPathsFromCutProfile(CutProfile cutProfile, boolean bodyBarrier, List<Double> exactFrequencyArray, double gS)
      Given the vertical cut profile (can be a single plane or multiple like a folding panel) return the multiple contribution ray paths following Cnossos specification, or empty if there is no valid path.
      Parameters:
      cutProfile - Vertical cut of a domain
      bodyBarrier - True if there is a body barrier on the path
      exactFrequencyArray - Expected frequencies
      gS - Ground factor of the source area
      Returns:
      The cnossos path or null
    • computeCnossosPathFromCutProfile

      public static CnossosPath computeCnossosPathFromCutProfile(CutProfile cutProfile, boolean bodyBarrier, List<Double> exactFrequencyArray, double gS, boolean favourable)
      Given the vertical cut profile (can be a single plane or multiple like a folding panel) return the ray path following Cnossos specification, or null if there is no valid path.
      Parameters:
      cutProfile - Vertical cut of a domain
      bodyBarrier - True if there is a body barrier on the path
      exactFrequencyArray - Expected frequencies
      gS - Ground factor of the source area
      favourable - Compute the favourable contribution for the provided profile
      Returns:
      The cnossos path or null