Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beam FITS header & description #314

Open
Joshuaalbert opened this issue Nov 14, 2023 · 6 comments
Open

Beam FITS header & description #314

Joshuaalbert opened this issue Nov 14, 2023 · 6 comments

Comments

@Joshuaalbert
Copy link

@JSKenyon Could you post the header of a valid beam model fits? Also, any other constraints it needs to satisfy would be great.

@bennahugo
Copy link
Collaborator

bennahugo commented Nov 14, 2023 via email

@JSKenyon
Copy link
Collaborator

You can also look at the very minimal beams used in the tests.

@Joshuaalbert
Copy link
Author

Thanks for the replies. I notice some wierd things with the test beams:

  1. The headers have a mismatch of NAXIS=3 and the actual number of axes defined (4).

  2. The axis types for direction are X and Y which I'm not sure about. Shouldn't it be RA--SIN, and DEC--SIN? Are X and Y equal to arccos(l) and arccos(m)? Is this already assuming pointing direction is the phase-tracking centre, so the beam is always assumed to point along the bore-sight of the dish (for dish antennas)? I suppose this wouldn't work for phased arrays.

  3. If the axes [RA--SIN, DEC--SIN, FREQ] are used will it work too? Or must I convert to [X, Y, FREQ]?

SIMPLE  =                    T / conforms to FITS standard                      
BITPIX  =                  -64 / array data type                                
NAXIS   =                    3 / number of array dimensions                     
NAXIS1  =                  513                                                  
NAXIS2  =                  513                                                  
NAXIS3  =                    3                                                  
EXTEND  =                    T                                                  
DATE    = '2015-05-20 12:40:12.507624'                                          
DATE-OBS= '2015-05-20 12:40:12.507624'                                          
ORIGIN  = 'GFOSTER '                                                            
TELESCOP= 'VLA     '                                                            
OBJECT  = 'beam    '                                                            
EQUINOX =               2000.0                                                  
CTYPE1  = 'X       '           / points right on the sky                        
CUNIT1  = 'DEG     '                                                            
CDELT1  =             0.011082 / degrees                                        
CRPIX1  =                  257 / reference pixel (one relative)                 
CRVAL1  =      0.0110828777007                                                  
CTYPE2  = 'Y       '           / points up on the sky                           
CUNIT2  = 'DEG     '                                                            
CDELT2  =             0.011082 / degrees                                        
CRPIX2  =                  257 / reference pixel (one relative)                 
CRVAL2  =   -2.14349358381E-07                                                  
CTYPE3  = 'FREQ    '                                                            
CDELT3  =     30303030.3030303 / frequency step in Hz                           
CRPIX3  =                    1 / reference frequency postion                    
CRVAL3  =         1280000000.0 / reference frequency                            
CTYPE4  = 'STOKES  '                                                            
CDELT4  =                    1                                                  
CRPIX4  =                    1                                                  
CRVAL4  =                   -5                                                  
GFREQ1  =         1280000000.0                                                  
GFREQ2  =         1306120000.0                                                  
GFREQ3  =         1333330000.0                                                  
END     

@JSKenyon
Copy link
Collaborator

I must confess that I am no expert when it comes to the beams - QuartiCal itself doesn't really use them bar feeding them into the underlying predict (which is implemented in codex-africanus). @sjperkins may have a better idea of precisely what will and won't work. The documentation for the beam term is here. Note that the application of the beam in the predict is known to be a bit of a bottleneck at present. Tagging @landmanbester in case he has better intuition about what we should be doing.

@sjperkins
Copy link
Member

sjperkins commented Nov 15, 2023

The axis types for direction are X and Y which I'm not sure about. Shouldn't it be RA--SIN, and DEC--SIN? Are X and Y equal to arccos(l) and arccos(m)? Is this already assuming pointing direction is the phase-tracking centre, so the beam is always assumed to point along the bore-sight of the dish (for dish antennas)? I suppose this wouldn't work for phased arrays.

IIRC it's in DEG because it's sampled in the ALT-AZ coordinate system, rather the LM coordinate system. @bennahugo @o-smirnov can you confirm? I recall we had a long discussion about this a year or two back.

NAXIS = 3, so I think the CTYPE4 etc. are ignored. Separate FITS cubes are maintained per correlation/stokes parameter.

The FREQ axis can be irregularly spaced and the GFREQn coordinates establish the centre point frequency of the associated voxel. This is a custom modification to the FITS schema introduced by @o-smirnov for use in MeqTrees I believe.

@Joshuaalbert
Copy link
Author

Ah ok, makes sense then!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants