Skip to main content
Question

Huygen's through focus MTF in diopter

  • 5 July 2024
  • 5 replies
  • 86 views

In Zemax, I am trying to simulate a refractive bifocal IOL having 0 D and 3 D power using Liou Brennan's eye model for a 5 mm pupil diameter where light comes from the cornea to the retina. Now, in the through-focus MTF pannel, the focus shift is in the millimeter unit, although, in most of the research articles, MTF variation is shown in the diopter. How do I know that the created phase map is correct ( meaning that I am getting the 3-diopter power correctly from  the MTF map. Please help. Thank you.

 

5 replies

Userlevel 7
Badge +3

Hi Sums,

I’m not familiar with any kind of MTF plot in which the lens power can be read directly. Could you post an example of what you mean?

If you look at Analyze...Applications...PAL/Freeform, you will see the pupil and field maps, which may give you what you want

  • Mark

Hi Mark, I am attaching the doi. of a publication and the TF MTF curve for your reference.  Please have a look:

https://bmcophthalmol.biomedcentral.com/articles/10.1186/s12886-021-01958-8

 

Userlevel 7
Badge +3

Yep, that’s not a currently supported format. You’d need to use ZPL or ZOS-API to transform the defocus in mm into Diopters in m^-1

Okay, can you please guide me how to do this?

Userlevel 7
Badge +2

@Sums 

 

How do you calculate the defocus in diopters?

In Python, you can use ZOSPy, which is a wrapper for the ZOS-API. They actually have an interactive extension example for Through Focus MTF here. I’m copying the relevant part of the example for you here:

import zospy as zp
import matplotlib.pyplot as plt

zos = zp.ZOS()
oss = zos.connect("extension")

mtf = zp.analyses.mtf.fft_through_focus_mtf(oss, sampling='64x64', deltafocus=2.5, numberofsteps=51)

fig = plt.figure(figsize=(2, 1.5))
ax = fig.add_subplot(111)
ax.plot(mtf.Data.index, mtf.Data[("Field: 0.0000 (deg)", "Tangential")])
ax.set_xlabel("Focus shift (mm)")
_ = ax.set_ylabel("Modulus of the OTF")

Just be careful with this example, if you use the comma as a decimal separator, you might need to replace “Field: 0.0000 (deg)” with “Field : 0,0000 (deg)”. This shows you the regular through-focus MTF, but now you have access to the X-axis via mtf.Data.index, that you can transform in diopters. I didn’t do it because I’m not sure how to make this transformation.

Take care,

 

David

Reply