{ "info": { "author": "Robert Jordens", "author_email": "robert@joerdens.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Physics" ], "description": "RayOpt\n========\n\n.. image:: https://travis-ci.org/jordens/rayopt.svg\n :target: https://travis-ci.org/jordens/rayopt\n\n.. image:: https://ci.appveyor.com/api/projects/status/6e97f8o94v7r5bpb/branch/master?svg=true\n :target: https://ci.appveyor.com/project/jordens/rayopt\n\n.. image:: https://codecov.io/github/jordens/rayopt/coverage.svg?branch=master\n :target: https://codecov.io/github/jordens/rayopt?branch=master\n\n.. image:: https://anaconda.org/jordens/rayopt/badges/installer/conda.svg\n :target: https://anaconda.org/jordens/rayopt\n\n.. image:: https://img.shields.io/pypi/l/rayopt.svg\n :target: https://pypi.python.org/pypi/rayopt\n\n\nIntroduction\n------------\n\nOptics design (lenses, cavities, gaussian optics, lasers).\nGeometric, paraxial, and gaussian ray tracing.\n\n\nInstallation\n------------\n\nInstall like any usual Python package using `pip`, `easy_install`, or plain\n`setup.py`. Anaconda packages from three operating systems and three current\nPython versions are available through `Anaconda\n`_. Install with::\n\n conda install -c https://conda.anaconda.org/jordens/channel/ci rayopt\n\nThe distribution already contains all materials from http://refractiveindex.info/.\n\nMore materials and lenses catalogs can be obtained from the freely available\nversions of Oslo and Zemax, copied to `catalog/` and then parsed using\n`rayopt/library.py` (see there for details on where the files are expected)::\n\n get and install http://www.lambdares.com/images/OSLO/OSLO662_EDU_Installer.exe\n get and install http://downloads.radiantsourcemodels.com/Downloads/Zemax_2015-03-03_x32.exe\n $ python -m rayopt.library \\\n Users/Public/Documents/OSLO66\\ EDU/bin/lmo \\\n Users/Public/Documents/OSLO66\\ EDU/bin/glc \\\n Users/$USER/My\\ Documents/Zemax/Glasscat \\\n Users/$USER/My\\ Documents/Zemax/Stockcat\n\nExamples\n--------\n\nUsage examples are at in their `own repository\n`_ as `IPython\nNotebooks\n`_,\nspecifically also the `Tutorial\n`_.\n\nNotes\n-----\n\nDistance\n........\n\nThe choice of prescription specification is a little different from most other\nlens design and ray tracing programs. RayOpt associates with an element\n(surface):\n\n* `distance` (or directional `offset`, measured in the global, unrotated coordinate\n system) of the element's apex relative to the previous element's apex.\n* orientation (x-y-z Euler `angles` in the rotating frame) with respect to\n the directional offset\n* element properties (type of element, `curvature`, aspheric and conic coefficients,\n focal length of an ideal element)\n* optionally, the `material` after the element (behind the surface)\n\nRay data are given at (ray intercepts) or just after (direction cosines,\nparaxial slopes) the respective element unless stated otherwise (e.g. incidence\nangles).\n\nThe choice of associating the \"distance to\" and not the \"thickness after\"\nwith a surface has several advantages: shifts, offsets, tolerances can be implemented\nin a more straight forward manner, ray propagation becomes more natural and\nefficient (transfer, intercept, refraction), ray data at the surfaces' apex planes does\nnot need to be tracked. The \"thickness after\" does not have much meaning in\nray trace data as it can only be used later when tracing toward the next element and its\ndirection is typically ill defined. Compared to most other programs the\ndistance data is the thickness data shifted by one element towards the object.\n\nObject and Image\n................\n\nObject and image are located at the first (index 0) and last (index -1)\nsurface respectively. This naturally allows tracking their positions,\nmaterial and shape data and supports curved objects and images naturally.\nFurther data like pupils data are maintained in the two\n`Conjugate` s of the `System`.\n\nTherefore, a minimal system of a single lens consists of fours surfaces: object,\nthe two lens surfaces (one of which can be the aperture stop) and the image\nsurface. The `offset` data of the first (object) surface does play a role in\nray tracing but it can be useful as it locates the global coordinate system's\norigin. The `material` of the last (image) surface is used as it can cause\nincident rays to be evanescent at the image surface. This can also be compared\nto other programs where the thickness of the image surface is never relevant or\nthe material in object space and the position of the lens has to be tracked\nsomewhere else depending on the implementation.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jordens/rayopt", "keywords": "optics lens design raytracing optimization point spread opd aberration", "license": "LGPLv3+", "maintainer": "", "maintainer_email": "", "name": "rayopt", "package_url": "https://pypi.org/project/rayopt/", "platform": "", "project_url": "https://pypi.org/project/rayopt/", "project_urls": { "Homepage": "https://github.com/jordens/rayopt" }, "release_url": "https://pypi.org/project/rayopt/0.2/", "requires_dist": null, "requires_python": "", "summary": "raytracing and lens design framework", "version": "0.2" }, "last_serial": 3227181, "releases": { "0.0": [], "0.1": [ { "comment_text": "", "digests": { "md5": "89ebaf7546a52ab249f01f960e7912fd", "sha256": "da3c694e0b9f29fa2c2e073c0baf1651f7431b590d38e0246b7f2ebf8e035618" }, "downloads": -1, "filename": "rayopt-0.1.tar.gz", "has_sig": false, "md5_digest": "89ebaf7546a52ab249f01f960e7912fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1259147, "upload_time": "2017-02-17T15:03:28", "url": "https://files.pythonhosted.org/packages/ff/8d/65d9426db43ab76462007f004954f52ff9afb46bb51d7fe7b1f136ad0f94/rayopt-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "e60aa4eb4cdaaaba8dcc60f03c7e680d", "sha256": "aa4f4bbca362083f01b19365d2f3ba6aeba6fced3a122f9675c9cd45ef5e441c" }, "downloads": -1, "filename": "rayopt-0.2.tar.gz", "has_sig": false, "md5_digest": "e60aa4eb4cdaaaba8dcc60f03c7e680d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1260978, "upload_time": "2017-10-05T07:02:08", "url": "https://files.pythonhosted.org/packages/83/81/7cb43697df1f49667485ee4179ef9962dc91b0d1e5ac0d2a19994ef7130c/rayopt-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e60aa4eb4cdaaaba8dcc60f03c7e680d", "sha256": "aa4f4bbca362083f01b19365d2f3ba6aeba6fced3a122f9675c9cd45ef5e441c" }, "downloads": -1, "filename": "rayopt-0.2.tar.gz", "has_sig": false, "md5_digest": "e60aa4eb4cdaaaba8dcc60f03c7e680d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1260978, "upload_time": "2017-10-05T07:02:08", "url": "https://files.pythonhosted.org/packages/83/81/7cb43697df1f49667485ee4179ef9962dc91b0d1e5ac0d2a19994ef7130c/rayopt-0.2.tar.gz" } ] }