lenstest


Namelenstest JSON
Version 0.9.0 PyPI version JSON
download
home_pagehttps://github.com/scottprahl/lenstest
SummaryRoutines for analysis of non-interfometric wavefront testing.
upload_time2023-10-07 20:45:21
maintainer
docs_urlNone
authorScott Prahl
requires_python>=3.8
licenseMIT
keywords ronchi foucault knife edge ronchigram foucaugram fringe lens mirror parabolic hyperbolic paraboloid hyperboloid oblate spheroid prolate spheroid
VCS
bugtrack_url
requirements numpy matplotlib pytest
Travis-CI No Travis.
coveralls test coverage No coveralls.
            lenstest
========

by Scott Prahl

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

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

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

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

|

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

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

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

.. image:: https://img.shields.io/pypi/dm/lenstest?color=68CA66
   :target: https://pypi.org/project/lenstest/
   :alt: 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
<https://lenstest.readthedocs.io>.


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/master
   :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/master/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/master/docs/ronchi.png
   :alt: Ronchigram

License
-------

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/scottprahl/lenstest",
    "name": "lenstest",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "Ronchi,Foucault,Knife Edge,Ronchigram,Foucaugram,fringe,lens,mirror,parabolic,hyperbolic,paraboloid,hyperboloid,oblate spheroid,prolate spheroid",
    "author": "Scott Prahl",
    "author_email": "scott.prahl@oit.edu",
    "download_url": "https://files.pythonhosted.org/packages/fa/38/b6d5aae750a5867dc439efb7bbfa979a8e272d237313c57ed409993ae964/lenstest-0.9.0.tar.gz",
    "platform": null,
    "description": "lenstest\n========\n\nby Scott Prahl\n\n.. image:: https://img.shields.io/pypi/v/lenstest?color=68CA66\n   :target: https://pypi.org/project/lenstest/\n   :alt: pypi\n\n.. image:: https://img.shields.io/github/v/tag/scottprahl/lenstest?label=github&color=v\n   :target: https://github.com/scottprahl/lenstest\n   :alt: github\n\n.. image:: https://img.shields.io/conda/vn/conda-forge/lenstest?label=conda&color=68CA66\n   :target: https://github.com/conda-forge/lenstest-feedstock\n   :alt: conda\n\n.. image:: https://zenodo.org/badge/107437651.svg\n   :target: https://zenodo.org/badge/latestdoi/107437651\n   :alt: zenodo\n\n|\n\n.. image:: https://img.shields.io/github/license/scottprahl/lenstest?color=68CA66\n   :target: https://github.com/scottprahl/lenstest/blob/master/LICENSE.txt\n   :alt: License\n\n.. image:: https://github.com/scottprahl/lenstest/actions/workflows/test.yaml/badge.svg\n   :target: https://github.com/scottprahl/lenstest/actions/workflows/test.yaml\n   :alt: testing\n\n.. image:: https://readthedocs.org/projects/lenstest/badge?color=68CA66\n  :target: https://lenstest.readthedocs.io\n  :alt: docs\n\n.. image:: https://img.shields.io/pypi/dm/lenstest?color=68CA66\n   :target: https://pypi.org/project/lenstest/\n   :alt: Downloads\n\n__________\n\n`lenstest` is a collection of routines for non-interferometric testing of lenses\nand mirrors. Developed by Scott Prahl, this package contains code for the\nFoucault Knife Edge Test and the Ronchi Ruling Test. With `lenstest`, users can\ntest the quality of their lenses and mirrors without the need for\ninterferometric equipment. \n\nDetailed documentation is available at\n<https://lenstest.readthedocs.io>.\n\n\nInstallation\n------------\n\n* Install with ``pip``::\n    \n    pip install lenstest\n\n* or with ``conda``::\n\n    conda install -c conda-forge lenstest\n\nor use immediately by clicking the Google Colaboratory button below\n\n.. image:: https://colab.research.google.com/assets/colab-badge.svg\n   :target: https://colab.research.google.com/github/scottprahl/lenstest/blob/master\n   :alt: Colab\n\nFoucault Example\n----------------\n\n.. code-block:: python\n\n    import numpy as np\n    import matplotlib.pyplot as plt\n    import lenstest\n\n    D = 200\n    RoC = 400\n    z_offset = 10\n    x_offset = -0.5\n    conic = 0\n    phi = np.radians(0)\n\n    foucault.plot_lens_layout(D, RoC, x_offset, z_offset)\n    plt.show()\n\n    foucault.plot_knife_and_screen(D, RoC, x_offset, z_offset, phi=phi)\n    plt.show()\n\nProduces\n\n.. image:: https://raw.githubusercontent.com/scottprahl/lenstest/master/docs/foucault.png\n   :alt: foucougram\n\nRonchi Example\n--------------\n\n10 meter parabolic mirror comparison.\n\n.. code-block:: python\n\n    import numpy as np\n    import matplotlib.pyplot as plt\n    import lenstest\n\n    D = 10000  # 10 meter mirror\n    F = 5\n    conic = -1\n    lp_per_mm = 0.133  # grating frequency lp/mm\n\n    RoC =  F * D * 2\n\n    print(\"    Mirror Diameter = %.0f mm\" % D)\n    print(\"                 F# = %.1f\" % F)\n    print(\"Radius of Curvature = %.0f mm\" % RoC)\n    print(\"       Focal Length = %.0f mm\" % (RoC/2))\n    print(\"   Ronchi Frequency = %.3f lp/mm\" % lp_per_mm)\n\n    plt.subplots(2,3,figsize=(13,8))\n\n    for i, z_offset in enumerate([-63,35,133,231,329,429]):\n        plt.subplot(2,3,i+1)\n        x,y = lenstest.ronchi.gram(D, RoC, lp_per_mm, z_offset, conic=conic)\n        plt.plot(x,y,'o', markersize=0.1, color='blue')\n        lenstest.lenstest.draw_circle(D/2)\n        plt.title(\"%.0fmm from focus\"%z_offset)\n        plt.gca().set_aspect(\"equal\")\n        if i in [1,2,4,5]:\n            plt.yticks([])\n        if i in [0,1,2]:\n            plt.xticks([])\n    plt.show()\n\nProduces\n\n.. image:: https://raw.githubusercontent.com/scottprahl/lenstest/master/docs/ronchi.png\n   :alt: Ronchigram\n\nLicense\n-------\n\n`lenstest` is licensed under the terms of the MIT license.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Routines for analysis of non-interfometric wavefront testing.",
    "version": "0.9.0",
    "project_urls": {
        "Homepage": "https://github.com/scottprahl/lenstest"
    },
    "split_keywords": [
        "ronchi",
        "foucault",
        "knife edge",
        "ronchigram",
        "foucaugram",
        "fringe",
        "lens",
        "mirror",
        "parabolic",
        "hyperbolic",
        "paraboloid",
        "hyperboloid",
        "oblate spheroid",
        "prolate spheroid"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11c3a54a17455a3e0ab14f901a3685c9321fdf928c062151d14a810fce95e4f0",
                "md5": "8abe8582a30c6777d8c4b19f8ed31d9f",
                "sha256": "7330fb8d51274599ab42d70ccb02399e04d716dfc8ca7bbc7d41bcb4c0ca4b0e"
            },
            "downloads": -1,
            "filename": "lenstest-0.9.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8abe8582a30c6777d8c4b19f8ed31d9f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12651,
            "upload_time": "2023-10-07T20:45:20",
            "upload_time_iso_8601": "2023-10-07T20:45:20.040459Z",
            "url": "https://files.pythonhosted.org/packages/11/c3/a54a17455a3e0ab14f901a3685c9321fdf928c062151d14a810fce95e4f0/lenstest-0.9.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa38b6d5aae750a5867dc439efb7bbfa979a8e272d237313c57ed409993ae964",
                "md5": "b7e5d005d14c3e2754b8d79f4973866b",
                "sha256": "4dcb5d0c8ef33d8d9ff16c26967b82fd45def45a1450bbbac7a15785ed21d631"
            },
            "downloads": -1,
            "filename": "lenstest-0.9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b7e5d005d14c3e2754b8d79f4973866b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15469,
            "upload_time": "2023-10-07T20:45:21",
            "upload_time_iso_8601": "2023-10-07T20:45:21.589512Z",
            "url": "https://files.pythonhosted.org/packages/fa/38/b6d5aae750a5867dc439efb7bbfa979a8e272d237313c57ed409993ae964/lenstest-0.9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-07 20:45:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "scottprahl",
    "github_project": "lenstest",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        }
    ],
    "lcname": "lenstest"
}
        
Elapsed time: 0.11798s