File /Sorin/setup.exe uploaded #file-notice


Group Notification <noreply@...>
 

The following files and folders have been uploaded to the Files area of the Interferometry@groups.io group.

By: Sorin <sorin_sfartz@...>


Dale Eason
 

I tried running setup.exe.   It installed .net but then presented this.


Dale Eason
 
Edited

Sorin,
I have a theory why sometime the DFTFringe profile does not match the drawn profile.  DFTFringe will try to subtract tilt and defocus from the wavefront.  Subtracting defocus will change the profile if it thinks it found it.  Try enabling defocus in the zernike terms.  To see if that is the case.  I tried to install the program and got the error I showed.  Perhaps the installer does not put the app in the right place.  If you need the log let me know.


Sorin
 

Dale,

I missed uploading the msi file. I just put it inside the "Sorin" folder. The file should be in the same folder with setup.exe

"I have a theory why sometimes the DFTFringe profile does not match the drawn profile"
I had all those terms disabled anyway. Maybe it is a wrong thing with the drawn profile actually.

Sorin

On Wednesday, November 23, 2022 at 07:17:25 PM GMT+2, Dale Eason <doeason@...> wrote:


Soren,
I have a theory why sometime the DFTFringe profile does not match the drawn profile.  DFTFringe will try to subtract tilt and defocus from the wavefront.  Subtracting defocus will change the profile if it thinks it found it.  Try enabling defocus in the zernike terms.  To see if that is the case.  I tried to install the program and got the error I showed.  Perhaps the installer does not put the app in the right place.  If you need the log let me know.


Dale Eason
 

Sorin,
If zernike terms are disabled (check box not checked)  that means to subtract that feature from the wave front.  So in fact that means your test was subtracting defocus it computed from the wave front.  


Sorin
 

Oh!
You and George are right.
I reversed the logic of checkboxes. Thank you Dale.

Indeed the defocus was subtracted. I just checked with another example:


Inline image




On Wednesday, November 23, 2022 at 08:17:30 PM GMT+2, Dale Eason <doeason@...> wrote:


Sorin,
If zernike terms are disabled (check box not checked)  that means to subtract that feature from the wave front.  So in fact that means your test was subtracting defocus it computed from the wave front.  


Dale Eason
 

Sorin,  Thank you for this tool.  It works better than I thought it would.  In my experiments with such a tool I found I wanted a smooth wavefront.
For starters yours works well enough for me to play with.  In this case I wanted to find out how much a turned edge shows up in the ronchi image.
So here is my first attempt to discover that.  Some thought that the diffraction effects of the grid might create false turned edge.  To me this shows that not to be the case.  At least to my crude ronchi analysis eye.

I did discover a problem with DFTFringe turning off defocus.  That is I use Defocus when creating Ronchi and Foucault images.  That is how the offset is created.  So when it is disabled by the user all ronchi and foucault images are created at 0 offest.  Duh.  Now I'm going to have to decide the correct solution by adding some sort of override.


George Roberts (Boston)
 

Well the Foucault simulation has you set the "ROC offset" (start, end, stepsize).  Which is basically the same thing as "defocus", right?  Except one is in millimeters and the other is in zernike waves.  Bruce could probably give us the formula to convert from one to the other.  So maybe those offsets should apply to both Foucault and Ronchi tests?

In other words I believe that the defocus and tilt should be subtracted from both ronchi and foucault simulations and basically added back in with those "ROC Offset" settings.

- George


Dale Eason
 
Edited

George.
The same offset is used for Foucault and Ronchi.   I already know the formula for defocus into ROC offset.  That of course is used for all of this in the first place.


Dale Eason
 

On Wed, Nov 23, 2022 at 01:00 PM, George Roberts (Boston) wrote:
Which is basically the same thing as "defocus", right? 
To clarify.  Yes that is exactly how I compute Ronchi and Foucault images.   You convert ROC offset into waves of defocus and apply it to the wavefront.  So in the usual process the actual defocus found in the interferogram is subtracted from the wavefront then the ROC to defocus is applied to create the Ronchi and Foucault.  However if the user has checked the defocus box neither the wave front defocus is removed nor is the ROC offset applied.  Thus I have to change that and over ride not applying the ROC.


George Roberts (Boston)
 

However if the user has checked the defocus box neither the wave front defocus is removed nor is the ROC offset applied.  Thus I have to change that and over ride not applying the ROC.
Ah!  Now I understand.


Bruce Griffiths
 

George
 
A displacement along the axis of 
8*Lambda*(R/D)^2
 
produces 1 wave of classical defocus or 1/2 wave of the corresponding Zernike term.
NB this is for the casewhere the source is fixed.
 
 
Bruce

On 24/11/2022 08:00 NZDT George Roberts (Boston) <bb@...> wrote:
 
 
Well the Foucault simulation has you set the "ROC offset" (start, end, stepsize).  Which is basically the same thing as "defocus", right?  Except one is in millimeters and the other is in zernike waves.  Bruce could probably give us the formula to convert from one to the other.  So maybe those offsets should apply to both Foucault and Ronchi tests?

In other words I believe that the defocus and tilt should be subtracted from both ronchi and foucault simulations and basically added back in with those "ROC Offset" settings.

- George


drgert1
 
Edited

Hello all,

An idea to control user wavefront entry.

In image editing tools there is a curves transform where we control input/output pixel values. I show an example from Pixinsight below. The editing principles for entering the curve are easy.
  • Start with a coordinate plane with begin (r=0) and end point (r=R) of a curve preset and a straight line in between.
  • User can click on the line and a new 'pulling-point' gets created (or an existing one selected)
  • User can mouse-pull on the point.
  • Pull left-right moves the point along the function. (not much happens)
  • Pull up-down moves the function up or down through that point. Code might use some spline polynomials to avoid non differentiable corners.
  • A selected point can be deleted by hitting the 'del' key
  • The begin and end point should not be deletable (probably a good idea)
  • In wavefront entry we may want to require horizontal tangent at center (r=0)

Here is a hacked curve transform from Pixinsight. (Just as an example of the user interface)
There will be the same in Photoshop, gimp etc.
Imagine this shows a turned edge at left then a high zone and a dip in the center.





Just an idea.


Cheers,
Gert


Dale Eason
 

Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Bruce Griffiths
 

Dale
 
Sketching a profile can end up with a profile that cannot be accurately represented by a sum of radially symmetric Zernike polynomials such as Z3, Z8, Z15, Z24, Z35 etc.  These polynomials are all power series in even powers of rho. If the profile includes odd powers of rho then there is a potential issue with the accuracy of the Zernike polynomial fit that needs to be resolved.
 
Bruce

On 27/11/2022 19:42 NZDT Dale Eason <doeason@...> wrote:
 
 
Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Peter Smith
 

Ages ago I played with using Beziers (clamped splines) to create a surface.  It was to supposedly create Ronchigrams of a user formed surface.

This eventually led nowhere useful and is very dated but the surface creator part is shown below. 

As Dale commented, it was a bit tedious to create a smooth shape since points alongside have an effect.

One thing worth doing was to add in a few points outside the edge which are not counted as part of the surface.  This allowed the edge to be better defined.

I honestly do not know if it is worthwhile, but If anyone is interested, I can send an exe file which you can play with to experience creating a surface.  The program is hopelessly out of date but you can experiment with creating a surface to see how effective the interface is..

Peter Smith.

pjifl@...




On 27/11/2022 4:42 pm, Dale Eason wrote:

Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Bruce Griffiths
 

Attached preliminary pdf document indicates how to calculate the Zernike coefficients from a known radial profile.
 
Bruce

On 27/11/2022 21:30 NZDT Peter Smith <pjinnisfail@...> wrote:
 
 

Ages ago I played with using Beziers (clamped splines) to create a surface.  It was to supposedly create Ronchigrams of a user formed surface.

This eventually led nowhere useful and is very dated but the surface creator part is shown below. 

As Dale commented, it was a bit tedious to create a smooth shape since points alongside have an effect.

One thing worth doing was to add in a few points outside the edge which are not counted as part of the surface.  This allowed the edge to be better defined.

I honestly do not know if it is worthwhile, but If anyone is interested, I can send an exe file which you can play with to experience creating a surface.  The program is hopelessly out of date but you can experiment with creating a surface to see how effective the interface is..

Peter Smith.

pjifl@...

 

 

 

 

On 27/11/2022 4:42 pm, Dale Eason wrote:
Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Sorin
 

Those points outside the surface help define the end conditions. From point to point there should be some continuity conditions. For example, the derivative of one segment at a point should be equal to the derivative of the next segment at the same point. But at the ends of the profile, the user should provide the slope of the curve as there is no other previous point to define it.



On Sunday, November 27, 2022 at 10:31:06 AM GMT+2, Peter Smith <pjinnisfail@...> wrote:


Ages ago I played with using Beziers (clamped splines) to create a surface.  It was to supposedly create Ronchigrams of a user formed surface.

This eventually led nowhere useful and is very dated but the surface creator part is shown below. 

As Dale commented, it was a bit tedious to create a smooth shape since points alongside have an effect.

One thing worth doing was to add in a few points outside the edge which are not counted as part of the surface.  This allowed the edge to be better defined.

I honestly do not know if it is worthwhile, but If anyone is interested, I can send an exe file which you can play with to experience creating a surface.  The program is hopelessly out of date but you can experiment with creating a surface to see how effective the interface is..

Peter Smith.

pjifl@...




On 27/11/2022 4:42 pm, Dale Eason wrote:
Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Sorin
 

Indeed, altering the control points doesn't change always the curve as desired.
I also experimented a bit with such splines. I wrote that simple program in ".net" and it has (as in many other environments) graphical packages that contain drawing methods for beziers and other splines. However, only drawing such a curve on the screen is not enough. The graphical methods usually expect some input control points, then they draw the curve on the screen.

But we need instead to know a set of discrete values on that curve that will be written into the wavefront file. Or to know the function and to directly calculate the Zernike as Bruce suggested.
I simply didn't find any graphical method to accomplish this thing. Probably R has such methods but not anyone wishes to install it.

Until now the only way I see to do this would be to directly calculate the curves mathematically, draw them, and also saving the values into the file, or make those integrations for finding the Zernike. Maybe a regression through some control points would be a better way than altering control points. But this requires some study, and math skills.

Sorin


On Sunday, November 27, 2022 at 08:42:32 AM GMT+2, Dale Eason <doeason@...> wrote:


Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale


Peter Smith
 

Yes. The slope and magnitude of the spline segments must be equal at every 'node' for a clamped spline curve.   My method of handling the edges worked effectively.  You can see that in the example.

But it is fiddly to produce the curve that you want - although not impossible.

I might revisit this with Bruce's small document in mind.

==============================================

On 27/11/2022 7:29 pm, Sorin via groups.io wrote:

Those points outside the surface help define the end conditions. From point to point there should be some continuity conditions. For example, the derivative of one segment at a point should be equal to the derivative of the next segment at the same point. But at the ends of the profile, the user should provide the slope of the curve as there is no other previous point to define it.



On Sunday, November 27, 2022 at 10:31:06 AM GMT+2, Peter Smith <pjinnisfail@...> wrote:


Ages ago I played with using Beziers (clamped splines) to create a surface.  It was to supposedly create Ronchigrams of a user formed surface.

This eventually led nowhere useful and is very dated but the surface creator part is shown below. 

As Dale commented, it was a bit tedious to create a smooth shape since points alongside have an effect.

One thing worth doing was to add in a few points outside the edge which are not counted as part of the surface.  This allowed the edge to be better defined.

I honestly do not know if it is worthwhile, but If anyone is interested, I can send an exe file which you can play with to experience creating a surface.  The program is hopelessly out of date but you can experiment with creating a surface to see how effective the interface is..

Peter Smith.

pjifl@...




On 27/11/2022 4:42 pm, Dale Eason wrote:
Yes that is one way to do it.  I experimented with that in C++ and a Bezier spline library awhile back that used that exact technique.  
The issue is at least for Bezier splines it is hard to make the curves go exactly where you want them by just moving the control points.

But experiment away however works for you.


Dale