helios icon indicating copy to clipboard operation
helios copied to clipboard

`pyhelios` deflector and detector settings

Open han16nah opened this issue 2 years ago • 0 comments

Problem

1) verticalAngleMin and verticalAngleMax

verticalAngleMin and verticalAngleMax can be accessed in pyhelios for the scanner like:

# load and build a simulation
simBuilder = pyhelios.SimulationBuilder(
        'data/surveys/demo/tls_arbaro_demo.xml',
        'assets/',
        'output/'
    )
simBuilder.setNumThreads(0)
simBuilder.setLasOutput(True)
simBuilder.setZipOutput(True)
simB = simBuilder.build()


scanner = simB.sim.getScanner()
deflector = scanner.getBeamDeflector()
deflector.verticalAngleMin
deflector.verticalAngleMax

However, verticalAngleMin and verticalAngleMax can not be specified at the scanner level (i.e., in the scanner XML files) and will therefore be 0.0. As long as we do not have sth like verticalAngleMin_deg in the scanner XMLs, we should not have them as deflector attributes in pyhelios either imo

2) deflector type not accessible via pyhelios

The deflector type (optics, i.e., rotating, oscillating, etc.) is not accessible from pyhelios.

3) maxNOR not accessible via pyhelios

The maxNOR is not yet accessible from pyhelios.

**4) Notebook kernel dies when trying to acces lasScale

There is a property lasScale available for the detector in pyhelios, but it crashed when trying to access it.

Solution

  • remove verticalAngleMin and verticalAngleMax from pyhelios scanner deflector properties
  • add optics to pyhelios scanner deflector properties: simB.sim.getScanner().getBeamDeflector().optics (as str)
  • add maxNOR to pyhelios scanner detector properties: simB.sim.getScanner().getBeamDetector().maxNOR (as int`)
  • fix or remove lasScale property of scanner setector: simB.sim.getScanner().getBeamDetector().lasScale

Note:

It's commented out here, but the stuff can be checked in example notebook 2-the-survey.ipynb

han16nah avatar Jul 09 '22 10:07 han16nah