Recent Releases of laserbeamsize
laserbeamsize - Fixed beam angle fully supported
This version fixes a number of issues when specifying a fixed angle for the major axis of the elliptical beam. This introduces an api change because now specifying the angle requires using the phi_fixed instead of phi
python
xc, yc, d_major, d_minor, phi = lbs.basic_beam_size(image, phi_fixed=np.pi/2)
As part of this fix, the program now always reports the major and minor axis sizes (diameters). The angle returned is always between the major axis and the horizontal axis and will always be between -𝜋/2 < ɸ ≤ 𝜋/2
2.1.0
- make fixed angle work much better (thanks @przemororo)
- use major axis (d_major) instead of dx (near x-axis)
- trim distribution down to core files
- eliminate dependence on pillow and scikit-image
- correct angle definitions
- use black for all formatting
- adopt
pyproject.tomlwith PEP 621 metadata and eliminate setup.cfg - lint YAML files and run
ruffduringmake rcheck - allow
iso_noiseoption in display and background functions - rename
tests/test_all_notebooks.pytotests/all_test_notebooks.py - replace
masterbranch references withmainin docs - numerous style and docstring improvements
- remove flake8
- bump minimum python version to 3.9
- eliminate non-standard use of semi-major and semi-minor
- Python
Published by scottprahl 9 months ago
laserbeamsize - fix error in focused_diameter
2.0.5
- fix mistake in focused_diameter (thanks @rdgraham)
2.0.4
- fix zenodo and CITATION.cff
- fix pypi github action
- fix copyright
- fix manifest
- correct README.rst to use
plot_image_analysis() - tweak badges
- allow fixed phi angle of 0° (thanks @cptyannick)
- Python
Published by scottprahl about 2 years ago
laserbeamsize - First release with new github actions
2.0.4
- allow fixed phi angle of 0° (thanks @cptyannick)
- fix zenodo and CITATION.cff
- fix pypi github action
- fix copyright
- fix manifest
- correct README.rst to use
plot_image_analysis() - tweak badges
Major changes from 2.0.0
- change default background removal to match ISO recommendation
- split monolithic laserbeamsize module in separate modules
- rationalized functions names (API changes!)
- Python
Published by scottprahl over 2 years ago
laserbeamsize - ISO background handling, better packaging
2.0.3
- readthedocs does not do well with new module names
2.0.2
- splitting monolithic m2.py
- added tests for functions in gaussian.py
- improved docstrings in gaussian.py
- improved module docstrings in m2fit and m2display
2.0.1
- trying to get conda release working
2.0.0
- change default background removal to match ISO recommendation
- split monolithic laserbeamsize module in separate modules
- rationalized functions names
- add citation stuff
- add github actions to test and update citation
- improve readme so images work on pypi.org
- add conda-forge support
- update copyright years
- more badges
- Python
Published by scottprahl over 2 years ago
laserbeamsize - Support fixed laser beam orientation
v1.9.4
- allow beam angle to be specified during fitting
- new notebook to illustrate constrained fits
- improve docstrings and therefore api documentation
- still better ellipse and rect outlines
- start adding examples
v1.9.3
- use faster version of creating rotated rect mask
- move tests to their own directory
- avoid deprecated np.float
- improve drawing of rect and ellipse outlines
- improve some docstrings
- Python
Published by scottprahl almost 4 years ago
laserbeamsize - Faster rotated rect mask
v1.9.3
- use faster version of creating rotated rect mask
- move tests to their own directory
- avoid deprecated np.float
- improve drawing of rect and ellipse outlines
- improve some docstrings
v1.9.2
- use both black and white dashed lines
- fit to d and not d**2
- add more dunders to init.py
- fix residual calculation broken in v1.9.1
- Python
Published by scottprahl almost 4 years ago
laserbeamsize - Changed M2 fitting
M² is found by fitting to a hyperbola. Heretofore the hyperbola was fit using d², laserbeamsize now uses d. Both methods give nearly identical results, but I believe fitting to d is more correct.
v1.9.2
- use both black and white dashed lines
- fit to d and not d**2
- add more dunders to init.py
- fix residual calculation broken in v1.9.1
v1.9.1
- centralize version number to a single place
v1.9.0
- add beam_ellipticity()
- add beamparameterproduct()
- rotate x-tick labels when more than 10 ticks
- removed deprecated use of np.matrix()
- M2_report now includes BPP values
- improve API docs
- code linting
- Python
Published by scottprahl almost 4 years ago
laserbeamsize - Nothing new, just improving versioning
No features. This just reduces the number of places version numbers are used from 3 (setup.cfg, docs/conf.py, laserbeamsize/__init__.py) down to just the __init__.py file.
v1.9.1
- centralize version number to a single place
v1.9.0
- add beam_ellipticity()
- add beamparameterproduct()
- rotate x-tick labels when more than 10 ticks
- removed deprecated use of np.matrix()
- M2_report now includes BPP values
- improve API docs
- code linting
- Python
Published by scottprahl almost 4 years ago
laserbeamsize - Add ellipticity and Beam Parameter Product calculations
v1.9.0
- add beam_ellipticity()
- add beamparameterproduct()
- rotate x-tick labels when more than 10 ticks
- removed deprecated use of np.matrix()
- M2_report now includes BPP values
- improve API docs
- code linting
v1.8.0
- handle rotated masks properly
- fix readthedoc configuration
- Python
Published by scottprahl almost 4 years ago
laserbeamsize - Fix masking
Internally, laserbeamsize masks the laser spot in the image. This involves rotating a binary mask which sometimes creates pixels that are not exactly 1. Guilhem noticed this and suggested a fix.
Additionally, building of doc files on readthedocs.io has been made more robust.
- Python
Published by scottprahl about 4 years ago
laserbeamsize - Pure Python Release
v1.7.3
- create pure python packaging
- include wheel file
- package as python3 only
v1.7.2
- allow non-integer beam centers
- add badges to docs
- use sphinx-book-theme for docs
v1.7.1
- explicit warning for non-monochrome images in
beam_size() - improve help() messages
v1.7.0
- fix error in identifying major/minor axes in
beam_size_plot()
- Python
Published by scottprahl over 4 years ago
laserbeamsize - Allow fractional pixel beam centers
v1.7.2
- allow non-integer beam centers
- add badges to docs
- use sphinx-book-theme for docs
v1.7.1
- explicit warning for non-monochrome images in
beam_size() - improve help() messages
v1.7.0
- fix error in identifying major/minor axes in
beam_size_plot()
- Python
Published by scottprahl almost 5 years ago
laserbeamsize - Better help()
Improve help(laserbeamsize) so it actually says something useful
Add links in help for modules to https://laserbeamsize.readthedocs.io
Add explicit warning when trying to use color files
- Python
Published by scottprahl about 5 years ago
laserbeamsize - Fix bug in `beam_plot_size()`
Semi-major and semi-minor axes were not identified correctly for all astigmatic beam orientations
- Python
Published by scottprahl over 5 years ago
laserbeamsize - Fix annoying deprecation warning
Minor release.
- Fix the deprecation warning for register_cmap
- a sphinx and pydocstyle warnings
- use all points on background rect for fitting tilted background
- Python
Published by scottprahl over 5 years ago
laserbeamsize - Tilted background removal
A number of small changes and
- new function
subtract_tilted_background() - M²=1 line added
M2_radius_plot() - autoselect line color on images for visibility (still imperfect)
- documentation tweaks
- Python
Published by scottprahl over 5 years ago
laserbeamsize - M² Support!
Support for ISO 11146 measurement of M² now. If you have an array of images, then analysis can be as simple as::
import imageio
import matplotlib.pyplot as plt
import laserbeamsize as lbs
images = [imageio.imread(name) for name in list_of_filenames]
dy, dx= lbs.beam_size_montage(images, pixel_size=3.75) # pixel_size in microns
plt.show()
lbs.M2_diameter_plot(z10, dx*1e-6, lambda0, dy=dy*1e-6)
plt.show()
- Python
Published by scottprahl over 5 years ago
laserbeamsize - Add visual report
New feature. visual_report() creates four subplots to show the beam analysis. Other updates include::
- Add routines to plot values along semi axes
- Fix error when calculating circular radius
- Add missing scipy requirement
- Improve README.rst with figure
- Python
Published by scottprahl over 5 years ago
laserbeamsize - Now uses standard ISO 11146 integration areas
Previously, laserbeamsize used the standard definitions for the first and second order moments of the WIgner distribution to calculate beam parameters.
This version now also follows ISO 11146 for * integration areas * background using corners * background subtraction
The overall result is that beam parameters extraction is much more robust.
- Python
Published by scottprahl over 5 years ago
laserbeamsize - Better API documentation
Many changes to improve packaging and automatic documentation of functions.
- Python
Published by scottprahl almost 6 years ago