Uploaded image for project: 'Commons RNG'
  1. Commons RNG
  2. RNG-132

Package rng.sampling.shape for sampling coordinates from shapes

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Implemented
    • 1.4
    • 1.4
    • sampling
    • None

    Description

      Create a rng.sampling.shape package in the sampling module to contain work-in-progress samplers for shapes.

      • UnitSphereSampler (N-surface) [1]
      • UnitBallSampler (N-volume)
      • UnitSimplexSampler (N-surface)
      • LineSampler (N-dimension points on a line segment or polyline)
      • TriangleSampler (N-dimension points within a triangle in a 2D plane)
      • TetrahedronSampler (3D points inside a tetrahedron)
      • SurfaceSampler (ND points on a triangulated surface) [2]
      • VolumeSampler (3D points inside a volume composed of tetrahedrons)
      • UnitCubeSampler (N-volume)

      [1] The UnitSphereSampler can be deprecated and a new version created to use a factory method to create the sampler (allowing optimisation for low dimensions).

      [2] The SurfaceSampler would be a composite sampler. For sampling a surface the TriangleSampler can be combined with the AliasMethodSamplerDiscreteSampler. The surface should be triangulated. The area of each triangle is used to create a distribution of which triangle to pick using the alias method. A sample is then taken from the chosen triangle.

      Shape geometry will not be validated beyond basic testing for non-finite values of input coordinates. Validation of shapes could potentially be done by creating a commons-geometry-sampling module in the commons geometry project.
       

      Attachments

        Issue Links

          Activity

            People

              aherbert Alex Herbert
              aherbert Alex Herbert
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: