Code Monkey home page Code Monkey logo

yao's Issues

NGS setting and output

We are using YAO to stimulate the correction of AO system( YAO v5.4.0 with ubuntu 64 emulated in a virtual machine on windows system).
l found some result in ~/.yorick/yao/ . We want to confirm that file named '-imav.fits' is the fits file which contains the target star? we found that the optical quality of -imav fits is better than what we saw in Instantaneous PSFs in GUI. At the same time , we can't see the guide star in fits file. The NGS is just a red cross in GUI. we want to know that can we output the fits file contain the NGS ?
Thank you very much!

NAXIS in fits file achieved by Yao is different from real data

Dear Developer:
l am using YAO v5.4.0 with ubuntu 64 emulated in a virtual machine on my windows system. l use YAO to generate large numbers of PSF file(-imav.fits). l have set related parameters in target structure of Par file. However, when l want to use pynpoint to process the data l got before, l found that the fits file generated from yao is quite different from the data we got from hale telescope. The number of NAXIS is 4 in fits file generated from Yao, here is the example of my simulation :

SIMPLE = T / file conforms to FITS standard
BITPIX = -32 / number of bits per data pixel
NAXIS = 4 / number of data axes
NAXIS1 = 512 / length of axis1
NAXIS2 = 512 / length of axis2
NAXIS3 = 1 / length of axis3
NAXIS4 = 1 / length of axis4

Usually, the NAXIS of real data is 2(or 3); l don't find any guide in manual to change this parameters. How can l change NAXIS ?

Here is my parameter file:
// YAO parameter file
//-------------------------------
sim.name = "Test with Subaru Parameters";
sim.pupildiam = 150;
sim.debug = 0;
sim.verbose = 0;

//-------------------------------
atm.dr0at05mic = 42.44; // this is r0=0.166 at 550 nm
atm.screen = &(Y_USER+"data/screen"+["5","6"]+".fits");
atm.layerfrac = &([0.4,0.2,0.3,0.6]);
atm.layerspeed = &([11.,20,29,35]);
atm.layeralt = &([0.,400,6000,9000]);
atm.winddir = &([0,0,0,0]);

//-------------------------------
nwfs = 1; // number of WFSs (>1 if e.g. mcao)
wfs = array(wfss,nwfs);

n = 1;
wfs(n).type = "hartmann";
wfs(n).lambda = 0.65;
wfs(n).gspos = [0.,0.];
wfs(n).gsalt = 0.;
wfs(n).gsmag = 5.;
wfs(n).shmethod = 2;
wfs(n).shnxsub = 6;
wfs(n).pixsize = 0.1;
wfs(n).npixels = 10;
wfs(n).noise = 1;
wfs(n).ron = 3.5;
wfs(n).shthreshold = 0.;
wfs(n).nintegcycles = 1;
if (yao_major_version&&(yao_major_version>=4)&&(yao_minor_version>=10)) {
wfs(n).extfield = 2.;
}

//-------------------------------
ndm = 2;
dm = array(dms,ndm);

n =1;
dm(n).type = "stackarray";
dm(n).iffile = "";
dm(n).nxact = 7;
dm(n).pitch = 25;
dm(n).alt = 0.;
dm(n).unitpervolt = 0.01;
dm(n).push4imat = 50;
dm(n).elt = 1;

n =2;
dm(n).type = "tiptilt";
dm(n).iffile = "";
dm(n).alt = 0.;
dm(n).unitpervolt = 0.0005;
dm(n).push4imat = 50;

//-------------------------------
mat.condition = &([15.]);
mat.file = "";

//-------------------------------
tel.diam = 7.9;
tel.cobs = 0.1125;

//-------------------------------
target.lambda = &([1.65]);
target.xposition = &([0]);
target.yposition = &([0.]);
target.dispzoom = &([0]);

//-------------------------------
gs.zeropoint = 1e11;
gs.zenithangle = 0.;

//-------------------------------
loop.gain = 0.6;
loop.framedelay = 1;
loop.niter = 1000;
loop.ittime = 2e-3;
loop.startskip = 10;
loop.skipevery = 1000;
loop.skipby = 10000;
loop.modalgainfile = "simtest.fits";

Thank you very much!!

zernike DM vs stackarray DM

Dear all,
i am using a YAO v5.4.0 on Yorick v2.2.04 with ubuntu 64 emulated in a virtual machine on my windows system,
I found that the zernike DM is yielding to SR of very close to 0 while stackarray DM is yielding to SR of 0.7 for the same hartmann type WFS with the same parameters. I am pasting contents of my .par file below, any comments?
//-------------------------------
sim.name = "SH_trial1";
sim.pupildiam = 128; //256
sim.debug = 0;
sim.verbose = 0;
//-------------------------------
atm.dr0at05mic = 42.44;
atm.screen = &("/home/usg/Desktop/Ulas_Yao_Works/"+"screen4096_"+["1","2","3","4","5","6","7","8","9"]+".fits"); //
atm.layerfrac = &([0.5328,0.0145,0.035,0.0957,0.1083,0.0437,0.0658,0.0371,0.0671]);
atm.layerspeed = &([15,13,13,9,9,15,25,40,21]);
atm.layeralt = &([48.,162,324,649,1299,2598,5196,10392,20785]);
atm.winddir = &([0,10,340,30,300,290,280,90,0]);

//-------------------------------
tel.diam = 3.94;
tel.cobs = 0.247462;

//-------------------------------
nwfs = 1;
wfs = array(wfss,nwfs);

n = 1;
wfs(n).type = "hartmann";
wfs(n).lambda = 0.50;
wfs(n).gspos = [0.,0.];
wfs(n).gsalt = 0.;
wfs(n).gsmag = 1.; //
wfs(n).shmethod = 2;

wfs(n).shnxsub = 10; //4 8 10 12 16
wfs(n).npixpersub = sim.pupildiam/wfs(n).shnxsub;
wfs(n).pixsize = 0.15; //0.02127; //0.15; //0.40;
wfs(n).npixels = 128;

wfs(n).noise = 1;
wfs(n).ron = 1.0; //2.0, 3.0
wfs(n).shthreshold = 0.;
wfs(n).nintegcycles= 1;
wfs(n).pupoffset = 0.;
wfs(n).fstop = "round";

//-------------------------------
ndm = 2;
dm = array(dms,ndm);

//n =1;
//dm(n).type = "zernike";
//dm(n).nzer = 80;
//dm(n).alt = 0.0;
//dm(n).unitpervolt = 0.01; //0.01;
//dm(n).push4imat = 100;
//dm(n).regparam = 0.1;
//dm(n).nxact = wfs(n).shnxsub+1;
/dm(n).pitch = wfs(n).npixpersub;

n =1;
dm(n).type = "stackarray";
dm(n).iffile = "";
dm(n).nxact = wfs(n).shnxsub+1;
dm(n).pitch = wfs(n).npixpersub;
dm(n).alt = 0.;
dm(n).unitpervolt = 0.01;
dm(n).push4imat = 100;

n =2;
dm(n).type = "tiptilt";
dm(n).iffile = "";
dm(n).alt = 0.;
dm(n).unitpervolt = 0.0005;
dm(n).push4imat = 400;
//-------------------------------
mat.method = "mmse";
//-------------------------------
target.lambda = &([1.65]);
target.xposition = &([0.]);
target.yposition = &([0]);
target.dispzoom = &([1.]);
//-------------------------------
gs.zeropoint = 1.5e11;
//-------------------------------
loop.gain = 0.6;
loop.framedelay = 1;
loop.niter = 1000; //5000
loop.ittime = 2e-3; //2e-3
loop.startskip = 10;
loop.skipevery = 10000;
loop.skipby = 10000;
loop.modalgainfile = "simulModeGains.fits";
//-------------------------------
Kind regards,
Ulaş

pl_get_color error

Dear all, i am running the script file "yao_loop_example.i" for trying gsmag and gainv for a SH WFS, i am receiving an error: "(pl_get_color) LHS of assignment not an l-value (scalar double, long, int?)" which directs me to LINE: 1240 FILE: /usr/lib/yorick/i/plot.i but i couldn't solve the problem, i am guessing this is an issue related to this part of the code: "plg,strehlarray(ll,),gainv,color=-ll-4;", can you help?
Best regards
Ulas

How can I find the intermediate results from YAO?

e.g.
How can I find the current phase screen results, input signals such as spots array for shack-harman, focused or defocused intensity distributions for curvature WFS, wavefront results tested before correction and remaining wavefront data after correction on every curvature WFS loop or a Shack-Hartmann WFS loop?

How can l set the observation target??

Dear developer

l have read the manual document which introduce the features of YAO, now l have already determined the parameters of my AO system, how can l set the observation target? For example, l want to simulate observation of a galaxy, how to set the number and location of stars and planets???  

best
PHD T.Y

Bad dimension error

Dear all, very useful and professional simulation tool! I recently started working with yao for the DAG project AO,
however, i am having an error which i cant solve:

loop.niter=1000
aoloop,disp=1
ERROR (aoloop) bad dimension list
LINE: 3477 FILE: /usr/lib/yorick/i/yao.i
To enter debug mode, type now (then dbexit to get out)

Additionally, i am getting a warning for the size of my phase screens (although i created 2048,256 sized phase screens):

Some of the phase screens are too small (Y dimension) for the specified system.
The following WFS/screens will cause a index overflow (current Ydim is 256):
WFS#1, screen#1, Ymax=8130.438965
WFS#1, screen#2, Ymax=8863.816406
WFS#1, screen#3, Ymax=8130.149902
WFS#1, screen#4, Ymax=9592.368164
WFS#1, screen#5, Ymax=8129.932617
WFS#1, screen#6, Ymax=8129.522949
WFS#1, screen#7, Ymax=8128.839355
WFS#1, screen#8, Ymax=21125.363281
To remedy this situation, you can either:
- use larger phase screens (Y axis) using 'create_phase_screens'
- Modify the extremum Y offsets of your WFSs
- Lower the altitude of the offending atmospheric layer
EXIT called, back to main loop

I am pasting the contents of my .par file as well, could you comment?
thank you!

// YAO parameter file
//-------------------------------
sim.name = "ULASSH";
sim.pupildiam = 128; //
sim.debug = 0;
sim.verbose = 0;

//-------------------------------
atm.dr0at05mic = 42.4967; // this is r0=0.166 at 550 nm //
atm.screen = &(Y_USER+"data/screen"+["1","2","3","4","5","6","7","8"]+".fits"); //
atm.layerfrac = &([0.5328,0.0145,0.035,0.0957,0.1083,0.0437,0.0658,0.1042]);
atm.layerspeed = &([15,13,13,9,9,15,25,40]);
atm.layeralt = &([48.,162,324,649,1299,2598,5196,10392]);
atm.winddir = &([0,10,340,30,300,290,280,90]);

//-------------------------------
nwfs = 1; // number of WFSs (>1 if e.g. mcao)
wfs = array(wfss,nwfs);

n = 1;
wfs(n).type = "hartmann";
wfs(n).lambda = 0.55;
wfs(n).gspos = [0.,0.];
wfs(n).gsalt = 0.;
wfs(n).gsmag = 5.; //
wfs(n).shmethod = 2;

wfs(n).shnxsub = 10; //??
wfs(n).npixpersub = 13;

wfs(n).pixsize = 0.15; //??
wfs(n).npixels = 8; //??

wfs(n).noise = 1;
wfs(n).ron = 3.5;
wfs(n).shthreshold = 0.;
wfs(n).nintegcycles= 1;
wfs(n).pupoffset = 0.;
wfs(n).fstop = "square";

//-------------------------------
ndm = 1;
dm = array(dms,ndm);

n =1;
dm(n).type = "zernike"; //??
dm(n).nxact = 11;
dm(n).iffile = "";
dm(n).pitch = 12.8; //??
dm(n).nzer = 128; //??
dm(n).alt = 0.0;
dm(n).unitpervolt = 0.01;
dm(n).push4imat = 100;

//-------------------------------
mat.condition = &([15.]);
mat.file = "";

//-------------------------------
tel.diam = 3.94;
tel.cobs = 0.247462;

//-------------------------------
target.lambda = &([1.65]);
target.xposition = &([0.]);
target.yposition = &([0]);
target.dispzoom = &([1.]);

//-------------------------------
gs.zeropoint = 1e11;

//-------------------------------
loop.gain = 0.6;
loop.framedelay = 1;
loop.niter = 5000;
loop.ittime = 2e-3;
loop.startskip = 10;
loop.skipevery = 10000;
loop.skipby = 10000;
loop.modalgainfile = "simulModeGains.fits";

//-------------------------------

Issues in Ubuntu 14.04

In Ubuntu 14.04 Yao does not seem to work correctly. Running a simulation from the GUI requires the user to hit the go button every plot step. The reason is a segmentation fault, apparently being caused by Yorick trying to free memory that has already been free'd.

I'm reporting this issue so that Yao users can be aware of that when installing Yao on Ubuntu 14.04. I'm not sure if this is the right place, but could not find other bug trackers for Yao to report it.

aoinit error

When I try to run any of the examples, I the this error:

Warning: Can't export FFTW wisdom to $USER/.yorick/fftw_wisdom_file.dat
ERROR (sh_wfs) _shwfs_spots2slopes takes exactly 22 arguments
LINE: 1090 FILE: /path/to/yao/yao_wfs.i

Multi targets setting for simulating star and exoplanet

Dear Developer:
l am using YAO v5.4.0 with ubuntu 64 emulated in a virtual machine on my windows system.
l ran the example mad_maco_star. After that l found that multi targets are set into different fits files.
In order to simulate the real data, we want to set one fixed star and one exoplanet in one field. At the time , those two targets should be output to one fits file(we try to use the fixed star as NGS, and set the exoplanet as target). l have read the source code and example you provided, l can't confirm that whether Yao can simulate the case l said above.

Thank you very much!

what's the observe target of example 6*6LGS.par?

Dear developer

Point spread function describes the response of the AO system to a point source or target. l run the example(6*6LGS.par ) presented by YAO, and l got the corresponding psf file(.fits file). But what's the corresponding target of this example which is the point source of the AO system? Now, l want to observe the sun, can l set the sun as the target in YAO?

best

Unable to install on OS X Sierra

Hi Francois,

I'm having an issue building YAO on a new Macbook running OS X Sierra at the moment.

After configuring the Makefile, running make results in the following:

Undefined symbols for architecture x86_64:
  "_Y_aoSimulVersion" referenced from:
      _y0_routines in ywrap.o
ld: symbol(s) not found for architecture x86_64

Have you come across any similar issues?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.