lenstest

Code to support non-interferometric testing of mirrors and lenses.

https://github.com/scottprahl/lenstest

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Code to support non-interferometric testing of mirrors and lenses.

Basic Info
  • Host: GitHub
  • Owner: scottprahl
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 13 MB
Statistics
  • Stars: 4
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created almost 5 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog License Citation

README.rst

.. |pypi| image:: https://img.shields.io/pypi/v/lenstest?color=68CA66
   :target: https://pypi.org/project/lenstest/
   :alt: pypi

.. |github| image:: https://img.shields.io/github/v/tag/scottprahl/lenstest?label=github&color=v
   :target: https://github.com/scottprahl/lenstest
   :alt: github

.. |conda| image:: https://img.shields.io/conda/vn/conda-forge/lenstest?label=conda&color=68CA66
   :target: https://github.com/conda-forge/lenstest-feedstock
   :alt: conda

.. |zenodo| image:: https://zenodo.org/badge/357035523.svg
   :target: https://zenodo.org/badge/latestdoi/357035523
   :alt: zenodo

.. |license| image:: https://img.shields.io/github/license/scottprahl/lenstest?color=68CA66
   :target: https://github.com/scottprahl/lenstest/blob/main/LICENSE.txt
   :alt: License

.. |test| image:: https://github.com/scottprahl/lenstest/actions/workflows/test.yaml/badge.svg
   :target: https://github.com/scottprahl/lenstest/actions/workflows/test.yaml
   :alt: testing

.. |docs| image:: https://readthedocs.org/projects/lenstest/badge?color=68CA66
  :target: https://lenstest.readthedocs.io
  :alt: docs

.. |downloads| image:: https://img.shields.io/pypi/dm/lenstest?color=68CA66
   :target: https://pypi.org/project/lenstest/
   :alt: Downloads

lenstest
========

by Scott Prahl

|pypi| |github| |conda| |zenodo|

|license| |test| |docs| |downloads|

__________

`lenstest` is a collection of routines for non-interferometric testing of lenses
and mirrors. Developed by Scott Prahl, this package contains code for the
Foucault Knife Edge Test and the Ronchi Ruling Test. With `lenstest`, users can
test the quality of their lenses and mirrors without the need for
interferometric equipment. 

Detailed documentation is available at
.


Installation
------------

* Install with ``pip``::
    
    pip install lenstest

* or with ``conda``::

    conda install -c conda-forge lenstest

or use immediately by clicking the Google Colaboratory button below

.. image:: https://colab.research.google.com/assets/colab-badge.svg
   :target: https://colab.research.google.com/github/scottprahl/lenstest/blob/main
   :alt: Colab

Foucault Example
----------------

.. code-block:: python

    import numpy as np
    import matplotlib.pyplot as plt
    import lenstest

    D = 200
    RoC = 400
    z_offset = 10
    x_offset = -0.5
    conic = 0
    phi = np.radians(0)

    foucault.plot_lens_layout(D, RoC, x_offset, z_offset)
    plt.show()

    foucault.plot_knife_and_screen(D, RoC, x_offset, z_offset, phi=phi)
    plt.show()

Produces

.. image:: https://raw.githubusercontent.com/scottprahl/lenstest/main/docs/foucault.png
   :alt: foucougram

Ronchi Example
--------------

10 meter parabolic mirror comparison.

.. code-block:: python

    import numpy as np
    import matplotlib.pyplot as plt
    import lenstest

    D = 10000  # 10 meter mirror
    F = 5
    conic = -1
    lp_per_mm = 0.133  # grating frequency lp/mm

    RoC =  F * D * 2

    print("    Mirror Diameter = %.0f mm" % D)
    print("                 F# = %.1f" % F)
    print("Radius of Curvature = %.0f mm" % RoC)
    print("       Focal Length = %.0f mm" % (RoC/2))
    print("   Ronchi Frequency = %.3f lp/mm" % lp_per_mm)

    plt.subplots(2,3,figsize=(13,8))

    for i, z_offset in enumerate([-63,35,133,231,329,429]):
        plt.subplot(2,3,i+1)
        x,y = lenstest.ronchi.gram(D, RoC, lp_per_mm, z_offset, conic=conic)
        plt.plot(x,y,'o', markersize=0.1, color='blue')
        lenstest.lenstest.draw_circle(D/2)
        plt.title("%.0fmm from focus"%z_offset)
        plt.gca().set_aspect("equal")
        if i in [1,2,4,5]:
            plt.yticks([])
        if i in [0,1,2]:
            plt.xticks([])
    plt.show()

Produces

.. image:: https://raw.githubusercontent.com/scottprahl/lenstest/main/docs/ronchi.png
   :alt: Ronchigram

License
-------

`lenstest` is licensed under the terms of the MIT license.

Owner

  • Name: Scott Prahl
  • Login: scottprahl
  • Kind: user
  • Location: Portland, Oregon
  • Company: Oregon Institute of Technology

Citation (CITATION.cff)

authors:
- family-names: Prahl
  given-names: Scott
  orcid: https://orcid.org/0000-0003-1468-6851
cff-version: 1.2.0
date-released: '2023-10-07'
doi: 10.5281/zenodo.8417591
message: If you use this software, please cite it as below.
title: 'lenstest: a python module for non-interferometric testing of mirrors and lenses..'
url: https://zenodo.org/badge/latestdoi/357035523
version: 0.9.0

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 104
  • Total Committers: 2
  • Avg Commits per committer: 52.0
  • Development Distribution Score (DDS): 0.01
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Scott Prahl s****t@p****m 103
GitHub Action a****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • scottprahl (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 15 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 3
  • Total maintainers: 1
pypi.org: lenstest

Routines for analysis of non-interfometric wavefront testing.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 15 Last month
Rankings
Dependent packages count: 9.8%
Dependent repos count: 21.8%
Average: 23.4%
Stargazers count: 25.1%
Forks count: 29.9%
Downloads: 30.2%
Maintainers (1)
Last synced: 7 months ago

Dependencies

docs/requirements.txt pypi
  • lenstest *
  • nbsphinx *
  • sphinx-automodapi *
  • sphinx-rtd-theme *
requirements.txt pypi
  • matplotlib *
  • numpy *
.github/workflows/citation.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/pypi.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python master composite
pyproject.toml pypi
setup.py pypi