Protoplanetary Disk Simulation (CASA 3.4): Difference between revisions
From CASA Guides
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Simulations Intro}} | {{Simulations Intro}} | ||
[[Category: Simulations]] | [[Category: Simulations]] | ||
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]). | ||
* | *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 | # Setting everything in simobserve to original defaults | ||
default(" | 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 | # 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: | =====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 | =====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"> | ||
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"> | ||
antennalist = "alma.out20.cfg" | |||
simobserve() | |||
antennalist = | |||
</source> | </source> | ||
===== Deconvolve the visibilities back into an image===== | ===== Deconvolve the visibilities back into an image===== | ||
<source lang="python"> | <source lang="python"> | ||
default (" | 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 | # This commands CASA to execute simanalyze | ||
simanalyze() | |||
</source> | </source> | ||
<br> | <br> | ||
Line 155: | Line 150: | ||
{{Simulations Intro}} | {{Simulations Intro}} | ||
{{Checked 3. | {{Checked 3.4.0}} |
Revision as of 17: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
- 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 Wolf & D'Angelo 2005).
- 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: |
Predict: |
Image: |
Analyze: |
↵ Simulating Observations in CASA
Last checked on CASA Version 3.4.0.