{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Enhancing ZOS API using PyZOS library"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from __future__ import print_function\n",
"import os\n",
"import sys\n",
"import numpy as np\n",
"from IPython.display import display, Image, YouTubeVideo\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Imports for using ZOS API in Python directly with pywin32\n",
"# (not required if using PyZOS)\n",
"from win32com.client.gencache import EnsureDispatch, EnsureModule\n",
"from win32com.client import CastTo, constants\n",
"\n",
"# Import for using ZOS API in Python using PyZOS\n",
"import pyzos.zos as zos"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reference\n",
"\n",
"We will use the following two Zemax knowledgebase articles as base material for this discussion. Especially, the code from the first article is used to compare and illustrate the enhanced features of PyZOS library.\n",
"\n",
"\n",
"1. \"[How to build and optimize a singlet using ZOS-API with Python](http://www.zemax.com/support/resource-center/knowledgebase/how-to-build-and-optimize-a-singlet-using-zos-api),\" Zemax KB, 12/16/2015, Thomas Aumeyr. \n",
"\n",
"2. \"[Interfacing to OpticStudio from Mathematica](http://www.zemax.com/support/resource-center/knowledgebase/interfacing-to-opticstudio-from-mathematica),\" Zemax KB, 05/03/2015, David."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Set this variable to True or False to use ZOS API with \n",
"# the PyZOS library or without it respectively.\n",
"USE_PYZOS = True"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Enhancements and capabilities provided by PyZOS\n",
"\n",
"\n",
"1. [Visible user-interface for the headless standalone ZOS-API COM application](#1.-Visible-user-interface-for-the-headless-standalone-ZOS-API-COM-application)\n",
"2. [Single-step initialization of ZOS API Interface and instantiation of an Optical System](#2.-Single-step-initialization-of-ZOS-API-Interface-and-instantiation-of-an-Optical-System)\n",
"3. [Introspection of properties of ZOS objects on Tab press](#3.--Introspection-of-properties-of-ZOS-objects-on-Tab-press)\n",
"4. [Ability to override methods of existing ZOS objects](#4.-Ability-to-override-methods-of-existing-ZOS-objects)\n",
"5. [Tab completion and introspection of API constants](#5.-Tab-completion-and-introspection-of-API-constants)\n",
"6. [Ability to add custom methods and properties to any ZOS-API object](#6.-Ability-to-add-custom-methods-and-properties-to-any-ZOS-API-object)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Visible user-interface for the headless standalone ZOS-API COM application"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The PyZOS library provides three functions (instance methods of `OpticalSystem`) for the sync-with-ui mechanism. \n",
"The sync-with-ui mechanism may be turned on during the instantiation of the `OpticalSystem` object using the parameter `sync_ui` set to `True` (see the screen-shot video below) or using the method `zSyncWithUI()` of the `OpticalSystem` instance at other times.\n",
"\n",
"\n",
"The other two functions \n",
"\n",
"* `zPushLens()` -- for copying a lens from the headless ZOS COM server (invisible) to a running user-interface application (visible) \n",
"* `zGetRefresh()`-- for copying a lens from the running user-interface application (visible) to the headless ZOS COM server (invisible).\n",
"\n",
"enable the user to interact with a running OpticStudio user-interface and observe the changes made through the API instantly in the user-interface. \n",
"\n",
"(If you cannot see the video in the frame below, or if the resolution is not good enough within this notebook, here is a direct link to the Youtube video: https://www.youtube.com/watch?v=ot5CrjMXc_w&feature=youtu.be)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# a screenshot video of the feature:\n",
"display(YouTubeVideo(\"ot5CrjMXc_w?t\", width=900, height=600))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### 2. Single-step initialization of ZOS API Interface and instantiation of an Optical System"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first enhancement is the complete elimination of boiler-plate code to get create and initialize an optical system object and get started. We just need to create an instance of a PyZOS `OpticalSystem` to get started. The optical system can be either a sequential or a non-sequential system. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"if USE_PYZOS:\n",
" osys = zos.OpticalSystem() # Directly get the Primary Optical system\n",
"else:\n",
" # using ZOS API directly with pywin32\n",
" EnsureModule('ZOSAPI_Interfaces', 0, 1, 0)\n",
" connect = EnsureDispatch('ZOSAPI.ZOSAPI_Connection')\n",
" app = connect.CreateNewApplication() # The Application\n",
" osys = app.PrimarySystem # Optical system (primary)\n",
" \n",
"# common \n",
"osys.New(False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It may seem that if we are using PyZOS, then the application is not available. In fact, it is available through a property of the PyZOS `OpticalSystem` object:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IZOSAPI_Application(NumberOfOpticalSystems = 1)\n"
]
}
],
"source": [
"if USE_PYZOS:\n",
" print(osys.pTheApplication)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. Introspection of properties of ZOS objects on Tab press"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Because of the way property attributes are mapped by the PyWin32 library, the properties are not introspectable (visible) on Tab press in smart editors such as IPython. Only the methods are shown upon pressing the Tab button (see figure below). Note that although the properties are not \"visible\" they are still accessible. \n",
"\n",
"PyZOS enhances the user experience by showing both the method and the properties of the ZOS object (by creating a wrapped object and delegating the attribute access to the underlying ZOS API COM objects). In addition, the properties are easily identified by the prefix p in front of the property attribute names."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nx9V4tWYFVpcAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image('./images/00_01_property_attribute.png')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"u'C:\\\\Users\\\\Indranil\\\\Documents\\\\ZEMAX\\\\SAMPLES'"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"if USE_PYZOS:\n",
" sdir = osys.pTheApplication.pSamplesDir\n",
"else:\n",
" sdir = osys.TheApplication.SamplesDir\n",
"\n",
"sdir"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the above *enhancement* **doesn't** come at the cost of code-breaks. If you have already written applications that interfaced directly using pywin32, i.e. the code accessed properties as `CoatingDir`, `SamplesDir`, etc., the application should run even with PyZOS library, as shown below: "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"u'C:\\\\Users\\\\Indranil\\\\Documents\\\\ZEMAX\\\\SAMPLES'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"osys.TheApplication.SamplesDir # note that the properties doesn't have 'p' prefix in the names"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4. Ability to override methods of existing ZOS objects"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are some reasons why we may want to override some of the methods provided by ZOS. As an example, consider the `SaveAs` method of `OpticalSystem` that accepts a `filename`. If the `filename` is invalid the `SaveAs` method doesn't raise any exception/error, instead the lens data is saved to the default file \"Lens.zmx\".\n",
"\n",
"This function in PyZOS has been overridden to raise an exception if the directory path is not valid, as shown below:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ValueError('C:\\\\Users\\\\Indranil\\\\Documents\\\\ZEMAX\\\\SAMPLES\\\\invalid_directory is not valid.',)\n"
]
}
],
"source": [
"file_out = os.path.join(sdir, 'invalid_directory', \n",
" 'Single Lens Example wizard+EFFL.zmx')\n",
"try:\n",
" osys.SaveAs(file_out)\n",
"except Exception as err:\n",
" print(repr(err))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"file_out = os.path.join(sdir, 'Sequential', 'Objectives', \n",
" 'Single Lens Example wizard+EFFL.zmx')\n",
"osys.SaveAs(file_out)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Aperture\n",
"if USE_PYZOS:\n",
" sdata = osys.pSystemData\n",
" sdata.pAperture.pApertureValue = 40\n",
"else:\n",
" sdata = osys.SystemData \n",
" sdata.Aperture.ApertureValue = 40"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of fields = 2\n"
]
}
],
"source": [
"# Set Field data\n",
"if USE_PYZOS:\n",
" field = sdata.pFields.AddField(0, 5.0, 1.0)\n",
" print('Number of fields =', sdata.pFields.pNumberOfFields)\n",
"else:\n",
" field = sdata.Fields.AddField(0, 5.0, 1.0)\n",
" print('Number of fields =', sdata.Fields.NumberOfFields)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 5. Tab completion and introspection of API constants"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The ZOS API provides a large set of enumerations that are accessible as constants through the `constants` object of PyWin32. However, they are not introspectable using the Tab key. PyZOS automatically retrieves the constants and makes them introspectable as shown below: "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n7cLxTdCKC9cAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image('./images/00_02_constants.png')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Setting wavelength using wavelength preset\n",
"if USE_PYZOS:\n",
" sdata.pWavelengths.SelectWavelengthPreset(zos.Const.WavelengthPreset_d_0p587);\n",
"else:\n",
" sdata.Wavelengths.SelectWavelengthPreset(constants.WavelengthPreset_d_0p587);"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"### 6. Ability to add custom methods and properties to any ZOS API object"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"PyZOS allows us to easily extend the functionality of any ZOS API object by adding custom *methods* and *properties*, supporting the idea of developing a useful library over time. In the following block of codes we have added custom methods `zInsertNewSurfaceAt()` and `zSetSurfaceData()` to the `OpticalSystem` ojbect. \n",
"\n",
"(Please note there is no implication that one cannot build a common set of *functions* without using PyZOS. Here, we only show that PyZOS allows us to add *methods* to the ZOS objects. How to add new *methods* PyZOS objects will be explained later.) "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Set Lens data Editor\n",
"if USE_PYZOS:\n",
" osys.zInsertNewSurfaceAt(1)\n",
" osys.zInsertNewSurfaceAt(1)\n",
" osys.zSetSurfaceData(1, thick=10, material='N-BK7', comment='front of lens')\n",
" osys.zSetSurfaceData(2, thick=50, comment='rear of lens')\n",
" osys.zSetSurfaceData(3, thick=350, comment='Stop is free to move')\n",
"else:\n",
" lde = osys.LDE\n",
" lde.InsertNewSurfaceAt(1)\n",
" lde.InsertNewSurfaceAt(1)\n",
" surf1 = lde.GetSurfaceAt(1)\n",
" surf2 = lde.GetSurfaceAt(2)\n",
" surf3 = lde.GetSurfaceAt(3)\n",
" surf1.Thickness = 10.0\n",
" surf1.Comment = 'front of lens'\n",
" surf1.Material = 'N-BK7'\n",
" surf2.Thickness = 50.0\n",
" surf2.Comment = 'rear of lens'\n",
" surf3.Thickness = 350.0\n",
" surf3.Comment = 'Stop is free to move'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The custom functions are introspectable, and they are identified by the prefix z to their names as shown in the following figure."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image('./images/00_03_extendiblity_custom_functions.png')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Setting solves - Make thickness and radii variable\n",
"# nothing to demonstrate in particular in this block of code\n",
"\n",
"if USE_PYZOS:\n",
" osys.pLDE.GetSurfaceAt(1).pRadiusCell.MakeSolveVariable()\n",
" osys.pLDE.GetSurfaceAt(1).pThicknessCell.MakeSolveVariable()\n",
" osys.pLDE.GetSurfaceAt(2).pRadiusCell.MakeSolveVariable()\n",
" osys.pLDE.GetSurfaceAt(2).pThicknessCell.MakeSolveVariable()\n",
" osys.pLDE.GetSurfaceAt(3).pThicknessCell.MakeSolveVariable()\n",
"else:\n",
" surf1.RadiusCell.MakeSolveVariable()\n",
" surf1.ThicknessCell.MakeSolveVariable()\n",
" surf2.RadiusCell.MakeSolveVariable()\n",
" surf2.ThicknessCell.MakeSolveVariable()\n",
" surf3.ThicknessCell.MakeSolveVariable()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Setting up the default merit function \n",
"# this code block again shows that we can create add custom methods \n",
"# based on our requirements\n",
"if USE_PYZOS:\n",
" osys.zSetDefaultMeritFunctionSEQ(ofType=0, ofData=1, ofRef=0, rings=2, arms=0, grid=0, \n",
" useGlass=True, glassMin=3, glassMax=15, glassEdge=3, \n",
" useAir=True, airMin=0.5, airMax=1000, airEdge=0.5)\n",
"else:\n",
" mfe = osys.MFE\n",
" wizard = mfe.SEQOptimizationWizard\n",
" wizard.Type = 0 # RMS\n",
" wizard.Data = 1 # Spot Radius\n",
" wizard.Reference = 0 # Centroid\n",
" wizard.Ring = 2 # 3 Rings\n",
" wizard.Arm = 0 # 6 Arms\n",
" wizard.IsGlassUsed = True\n",
" wizard.GlassMin = 3\n",
" wizard.GlassMax = 15\n",
" wizard.GlassEdge = 3\n",
" wizard.IsAirUsed = True\n",
" wizard.AirMin = 0.5\n",
" wizard.AirMax = 1000\n",
" wizard.AirEdge = 0.5\n",
" wizard.IsAssumeAxialSymmetryUsed = True\n",
" wizard.CommonSettings.OK()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we can demonstrate another strong reason why we may require to add methods to ZOS objects when using the ZOS API with `pywin32` library. The problem is illustrated in the figure below. According to the ZOS API manual, the MFE object (`IMeritFunctionEditor`) should have the methods `AddRow()`, `DeleteAllRows()`, `DeleteRowAt()`, `DeleteRowsAt()`, `InsertRowAt()` and `GetRowAt()` that it inherits from `IEditor` object. However, due to the way `pywin32` handles inheritence, these methods (defined in the base class) are apparently not available to the derived class object [[1](#Reference)]. "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image('./images/00_04_extendiblity_required_methods.png')"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"In order to solve the above problem in PyZOS, currently we \"add\" these methods to the derived (and wrapped) objects and delegate the calls to the base class. (Probably there is a more intelligent method of solving this ... which will not require so much code re-writing!) "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Add operand\n",
"if USE_PYZOS:\n",
" mfe = osys.pMFE\n",
" operand1 = mfe.InsertNewOperandAt(1)\n",
" operand1.ChangeType(zos.Const.MeritOperandType_EFFL)\n",
" operand1.pTarget = 400.0\n",
" operand1.pWeight = 1.0\n",
"else:\n",
" operand1 = mfe.InsertNewOperandAt(1)\n",
" operand1.ChangeType(constants.MeritOperandType_EFFL)\n",
" operand1.Target = 400.0\n",
" operand1.Weight = 1.0"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Local optimization\n",
"if USE_PYZOS:\n",
" local_opt = osys.pTools.OpenLocalOptimization()\n",
" local_opt.pAlgorithm = zos.Const.OptimizationAlgorithm_DampedLeastSquares\n",
" local_opt.pCycles = zos.Const.OptimizationCycles_Automatic\n",
" local_opt.pNumberOfCores = 8\n",
" local_opt.RunAndWaitForCompletion()\n",
" local_opt.Close()\n",
"else:\n",
" local_opt = osys.Tools.OpenLocalOptimization()\n",
" local_opt.Algorithm = constants.OptimizationAlgorithm_DampedLeastSquares\n",
" local_opt.Cycles = constants.OptimizationCycles_Automatic\n",
" local_opt.NumberOfCores = 8\n",
" base_tool = CastTo(local_opt, 'ISystemTool')\n",
" base_tool.RunAndWaitForCompletion()\n",
" base_tool.Close()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# save the latest changes to the file\n",
"osys.Save()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Create a second optical system to load a standard lens for FFT MTF analysis"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"osys2 = zos.OpticalSystem()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# load a lens into the Optical System\n",
"lens = 'Cooke 40 degree field.zmx'\n",
"zfile = os.path.join(sdir, 'Sequential', 'Objectives', lens)\n",
"osys2.LoadFile(zfile, False)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"u'A SIMPLE COOKE TRIPLET.'"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"osys2.pSystemName"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"10.0"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# check the aperture\n",
"osys2.pSystemData.pAperture.pApertureValue"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"pupil_data(ZemaxApertureType=0, ApertureValue=10.0, entrancePupilDiameter=10.0, entrancePupilPosition=11.512157051593944, exitPupilDiameter=10.233727882412548, exitPupilPosition=-50.96133885157397, ApodizationType=0, ApodizationFactor=0.0)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# a more detailed information about the pupil \n",
"osys2.pLDE.GetPupil()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"42.2077801"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Thickness of a surface \n",
"surf6 = osys2.pLDE.GetSurfaceAt(6)\n",
"surf6.pThickness"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"42.2077801"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Thickness of surface through custom added method \n",
"osys2.zGetSurfaceData(6).thick"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Draw2D\n",
"RayFan\n",
"StandardSpot\n"
]
}
],
"source": [
"# Open Analysis windows in the system currently\n",
"num_analyses = osys2.pAnalyses.pNumberOfAnalyses\n",
"for i in range(num_analyses):\n",
" print(osys2.pAnalyses.Get_AnalysisAtIndex(i+1).pGetAnalysisName)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"IA_"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#mtf analysis\n",
"fftMtf = osys2.pAnalyses.New_FftMtf() # open a new FFT MTF window\n",
"fftMtf"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"IAS_FftMtf"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fftMtf_settings = fftMtf.GetSettings()\n",
"fftMtf_settings"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Set the maximum frequency to 160 lp/mm\n",
"fftMtf_settings.pMaximumFrequency = 160.0"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# run the analysis\n",
"fftMtf.ApplyAndWaitForCompletion()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# results\n",
"fftMtf_results = fftMtf.GetResults() # returns an "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# FFT MTF of Optical System 2\n",
"plot_FftMtf(osys2)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nPwYEdppdsVcvAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# FFT MTF of Optical System 1\n",
"plot_FftMtf(osys, 100)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Close the application\n",
"if USE_PYZOS:\n",
" app = osys.pTheApplication\n",
"app.CloseApplication()\n",
"del app"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}