Difference between revisions of "Protoplanetary Disk Simulation (CASA 3.4)"

From CASA Guides
Jump to: navigation, search
Line 1: Line 1:
 
{{Simulations Intro}}
 
{{Simulations Intro}}
 
[[Category: Simulations]]
 
[[Category: Simulations]]
 
''Old version: [[PPdisk simdata (CASA 3.2)]].''
 
  
 
To create a script of the Python code on this page see [[Extracting scripts from these tutorials]].
 
To create a script of the Python code on this page see [[Extracting scripts from these tutorials]].
Line 9: Line 7:
 
*[ftp://ftp.cv.nrao.edu/NRAO-staff/rindebet/input50pc_672GHz.fits This fits file] is a model of a protoplanetary disk from S. Wolf (If you use it for anything more than learning CASA, please cite [http://adsabs.harvard.edu/abs/2005ApJ...619.1114W Wolf & D'Angelo 2005]).
 
*[ftp://ftp.cv.nrao.edu/NRAO-staff/rindebet/input50pc_672GHz.fits This fits file] is a model of a protoplanetary disk from S. Wolf (If you use it for anything more than learning CASA, please cite [http://adsabs.harvard.edu/abs/2005ApJ...619.1114W Wolf & D'Angelo 2005]).
  
*sim_observe and sim_analyze version for CASA 3.3
+
*simobserve and simanalyze version for CASA 3.4
 
__NOTOC__
 
__NOTOC__
 
<br>
 
<br>
Line 16: Line 14:
 
=====Set sim_observe as current task and reset all parameters=====
 
=====Set sim_observe as current task and reset all parameters=====
 
<source lang="python">
 
<source lang="python">
# Setting everything in simdata to original defaults
+
# Setting everything in simobserve to original defaults
default("sim_observe")
+
default("simobserve")
 
</source>   
 
</source>   
 
=====Image coordinate system can be verified=====
 
=====Image coordinate system can be verified=====
Line 69: Line 67:
 
=====Let's call our project psim2=====
 
=====Let's call our project psim2=====
 
<source lang="python">
 
<source lang="python">
# This defines the root prefix for any output files from simdata
+
# This defines the root prefix for any output files from simobserve
 
project            =  "psim2"
 
project            =  "psim2"
 
</source>
 
</source>
  
=====We'll leave the sky model the way it is: simdata will create psim2.skymodel CASA image since this model is a fits file, and most but not all of CASA routines can operate directly on fits=====
+
=====We'll leave the sky model the way it is: simobserve will create psim2.skymodel CASA image since this model is a fits file, and most but not all of CASA routines can operate directly on fits=====
 
<source lang="python">
 
<source lang="python">
 
skymodel          =  "input50pc_672GHz.fits"
 
skymodel          =  "input50pc_672GHz.fits"
 
</source>   
 
</source>   
=====We need to decide where to point the telescope.  The image is 2/3 arcsec in size, so we only need one pointing. We could put that in a text file ourself, or let simdata create the ascii pointing file for us.=====  
+
=====We need to decide where to point the telescope.  The image is 2/3 arcsec in size, so we only need one pointing. We could put that in a text file ourself, or let simobserve create the ascii pointing file for us.=====  
 
<source lang="python">
 
<source lang="python">
 
setpointings      =  True
 
setpointings      =  True
Line 87: Line 85:
 
=====We do want to calculate visibilities in a measurement set: let's do a 20 min snapshot observation using the "out20" ALMA antenna configuration:=====
 
=====We do want to calculate visibilities in a measurement set: let's do a 20 min snapshot observation using the "out20" ALMA antenna configuration:=====
 
<source lang="python">
 
<source lang="python">
observe           =  True
+
obsmode           =  "int"
 
totaltime          =  "1200s"
 
totaltime          =  "1200s"
 
</source>
 
</source>
Line 93: Line 91:
 
=====Use appropriate antenna configurations based on desired angular resolution (configuration 20 - alma.out20.cfg in this case - is the largest "compact" configuration)=====
 
=====Use appropriate antenna configurations based on desired angular resolution (configuration 20 - alma.out20.cfg in this case - is the largest "compact" configuration)=====
 
<source lang="python">
 
<source lang="python">
# It might be helpful to confirm the alma.out20.cfg file exists in the path defined below
+
antennalist        =  "alma.out20.cfg"
# If you have a problem, this might be the first thing to check, if you haven't already
+
simobserve()
repodir=os.getenv("CASAPATH").split(' ')[0]
 
antennalist        =  repodir+"/data/alma/simmos/alma.out20.cfg"
 
sim_observe()
 
 
</source>
 
</source>
  
 
===== Deconvolve the visibilities back into an image=====
 
===== Deconvolve the visibilities back into an image=====
 
<source lang="python">
 
<source lang="python">
default ("sim_analyze")
+
default ("simanalyze")
 
project            =  "psim2"
 
project            =  "psim2"
 
image              =  True
 
image              =  True
Line 139: Line 134:
 
===Run simdata===
 
===Run simdata===
 
<source lang="python">
 
<source lang="python">
# This commands CASA to execute sim_analyze
+
# This commands CASA to execute simanalyze
sim_analyze()
+
simanalyze()
 
</source>
 
</source>
 
<br>
 
<br>
Line 155: Line 150:
  
 
{{Simulations Intro}}
 
{{Simulations Intro}}
{{Checked 3.3.0}}
+
{{Checked 3.4.0}}

Revision as of 13:37, 4 June 2012

Simulating Observations in CASA

To create a script of the Python code on this page see Extracting scripts from these tutorials.

Protoplanetary disk

  • simobserve and simanalyze version for CASA 3.4


Explanation of the script

Set sim_observe as current task and reset all parameters
# Setting everything in simobserve to original defaults
default("simobserve")
Image coordinate system can be verified
# This reports image header parameters in the Log Messages window
imhead("input50pc_672GHz.fits")
Image center can be identified
# These are tools found in the CASA toolkit
# They are very useful, but the interface is not as straightforward as the tasks
# You can find the tool reference manual here: http://casa.nrao.edu/docs/CasaRef/CasaRef.html
# The following command is used to open an image (this is part of the image analysis toolkit)
# Whenever data are being viewed/manipulated by tools, what is being operated on needs to be explicitly opened
# and closed (i.e. an image, a table, etc.)
ia.open("input50pc_672GHz.fits")
#  Out[9]: True
#
# Reports the length of each axis in the opened image
ia.shape()
#  Out[11]: [257L, 257L, 1L, 1L]
#
# This command converts from pixel (our source file) to world coordinates (something usable by simdata)
ia.toworld([128.5,128.5])
#  Out[12]:
#{'numeric': array([  4.71239120e+00,  -4.01423802e-01,   1.00000000e+00,
#         6.72000001e+11])}
#
# Formats the coordinate just converted into hms
qa.formxxx("4.71239120rad",format='hms',prec=5)
#  Out[13]: '18:00:00.03052'
#
# Formats one of the other coordinates into dms
qa.formxxx("-0.401423802rad",format='dms',prec=5)
#  Out[14]: '-022.59.59.602743'
#
# Final housekeeping by closing the image tool
# The image tool will now be detached from the image
ia.close()
Brightness scale can be viewed with 'imstat' task
# Default parameters are adequate for this
imstat("input50pc_672GHz.fits")
# ...
#  'max': array([  6.52469971e-05]),
# ...
# that's 0.0652 mJy/pixel.
Let's call our project psim2
# This defines the root prefix for any output files from simobserve
project            =  "psim2"
We'll leave the sky model the way it is: simobserve will create psim2.skymodel CASA image since this model is a fits file, and most but not all of CASA routines can operate directly on fits
skymodel           =  "input50pc_672GHz.fits"
We need to decide where to point the telescope. The image is 2/3 arcsec in size, so we only need one pointing. We could put that in a text file ourself, or let simobserve create the ascii pointing file for us.
setpointings       =  True
direction          =  "J2000 18h00m00.031s -22d59m59.6s"
mapsize            =  "0.76arcsec"
The default pointingspacing is fine: we'll only fit one pointing in the small mapsize the default calculation maptype hexagonal is ok too since only one will fit anyway.
We do want to calculate visibilities in a measurement set: let's do a 20 min snapshot observation using the "out20" ALMA antenna configuration:
obsmode            =  "int"
totaltime          =  "1200s"
Use appropriate antenna configurations based on desired angular resolution (configuration 20 - alma.out20.cfg in this case - is the largest "compact" configuration)
antennalist        =  "alma.out20.cfg"
simobserve()
Deconvolve the visibilities back into an image
default ("simanalyze")
project            =  "psim2"
image              =  True
# Prior image to use in clean
modelimage         =  "input50pc_672GHz.fits"
vis                =  project+".alma.out20.ms"
imsize             =  [192, 192]
Specify number of iteration of cleaning task with proper threshold and weighting
niter              =  10000
threshold          =  "1e-7Jy"
weighting          =  "natural"
We'd like to calculate a difference and fidelity image, and see some diagnostics:
analyze            =  True
And see the array but not the UV coverage:
showuv             =  False
showresidual       =  True  
showconvolved      =  True
Plot both to the screen and the png files with lots of messages:
graphics           =  "both"
verbose            =  True
overwrite = True

Run simdata

# This commands CASA to execute simanalyze
simanalyze()


  • Output results:


Input:
Psim2.skymodel.png
Predict:
Psim2.alma.out20.observe.png
Image:
Psim2.alma.out20.image.png
Analyze:
Psim2.analysis.png

Simulating Observations in CASA

Last checked on CASA Version 3.4.0.