Old Simdata

From CASA Guides
Jump to: navigation, search
Help on simdata task:

mosaic simulation task:
mosaic simulation task (prototype):     

    This task simulates interfermetric observations (currently 
    only ALMA can be done easily).  New functionality is actively 
    being added, so if you have changed versions of CASA, check 
    the inputs carefully.
    Please contact CASA experts with any questions, especially 
    about features noted below as *experimental*    
    -------------------------------
    Keyword arguments:
    -------------------------------
    -- Input Model:
    modelimage -- name of an image to simulate (See below for explanation and examples!)
    ignorecoord -- ignore whatever is in the image header for coordinates (see below)
    inbright -- peak surface brightness to scale input image 
        in Jy/pixel.  
        [alpha alert] If you specify "unchanged" it will take the 
        numerical values in your image and assume they are in Jy/pixel, 
        even if it says some other unit in the header.  This will be made
        more flexible in the future. 
    complist -- componentlist table to use to simulate the data.
        * may be used with or without modelimage
    antennalist -- ascii file containing antenna positions.
        each row has x y z coordinates and antenna diameter; 
        header lines are required to specify the observatory name
        and coordinate system e.g. 
          # observatory=ALMA
          # coordsys=UTM
          # datum=WGS84
          # zone=19
        * [alpha] standard arrays are found in your CASA data repository, 
          os.getenv("CASAPATH").split()[0]+"/data/alma/simmos/"        
    checkinputs -- plot scaled model image and desired mosaic pointings, 
        target altitude, and [alpha] atmospheric transmission.
        choose yes|no, or "only" to just check your inputs and stop without 
        creating the ms.
    -------------------------------
    -- Output Control:
    project -- Name of project simulated; created ms and images will
        start with this string
    refdate -- Central time of simulated observation eg: '2012/05/21/22:05:00'
        [alpha] ** observations are centered at the nearest transit **
    totaltime --- total time of observation e.g '7200s'
    integration --- Time interval for each integration e.g '10s'
    startfreq -- Frequency of first channel e.g '89MHz'
    chanwidth -- Channel width e.g '10MHz'
    nchan -- number of channels (can be 1 for a continuum simulation)
    direction -- mosaic center direction e.g 'J2000 19h00m00 -40d00m00'
       * can optionally be a list of pointings, which will override
        pointingspacing.  Otherwise simdata will hexagonally
        pack the input image with pointings.  When direction is a
        list, the centroid of direction will be used as the center.
    pointingspacing-- spacing in between beams e.g '1arcsec'        
    relmargin -- how close pointing centers may approach the edge of the
        output image, as a fraction of pointingspacing.
        * ignored if direction is a list.
    -------------------------------
    -- Inversion and Deconvolution:
    cell -- Cell size e.g '10arcsec'
        [alpha] can be set to "incell" to use that value.
    imsize -- Image size in spatial pixels (x,y)
        default = [250,250]; example: imsize=[500,500]
    ** see "help clean" for more information on the new clean 
       parameters introduced in May 2008
    niter -- Number of clean/deconvolution iterations, 0 for no cleaning
    threshold -- Flux level to stop cleaning
    psfmode -- minor cycle deconvolution algorithm 
        options: 'clark','hogbom','none' 
        ("none" forces niter to 0 and no imaging)
    weighting -- Weighting to apply to visibilities
        options: 'natural','uniform','briggs','briggsabs','radial','superuniform'
    robust -- Brigg's robustness parameter 
        options: -2.0 to 2.0; -2 (uniform)/+2 (natural)
    uvtaper -- apply additional uv taper of visibilities
    stokes -- Stokes parameters to image
        default='I'; example: stokes='IQUV'; 
        options: 'I','IV','IQU','IQUV'
    -------------------------------
    -- Corrupting data:
    noise_thermal -- add thermal noise 
        * [alpha] currently only knows about ALMA and (E)VLA receivers 
    t_sky -- atmospheric temperature in K 
    t_ground -- ground/spillover temperature in K 
    tau0 -- zenith opacity at observing frequency
    -------------------------------
    fidelity -- Calculate fidelity image
    display -- Plot array config, uv coverage, beam, and images




    -------------------------------
    How to specify a model image:
    -------------------------------
    * simdata requires a CASA or fits image. If you merely have a grid of 
      numbers, you will need to write them out as fits or write a CASA script to
      read them in and use the ia tool to create an image and insert the data.
    
    * simdata does NOT require a coordinate system in the header. If the
      coordinate information is incomplete, missing, or you would like to
      override it, set "ignorecoord=False".  simdata will then assume that the
      axes of your input correspond to RA, Dec, and (optionally) frequency and
      (optionally) Stokes parameter.  It will assume that the spatial pixel
      size equals the output parameter "cell", the center of the image is in
      the (average of the) output parameter "direction", the spectral reference
      frequency and starting frequency equal the output parameter "startfreq",
      and the channel width equals the output parameter "chanwidth".  

    * [alpha alert] simdata does not easily change the number of channels yet. 
      It will warn you about this if you ask for a different number than the input
      data cube. 

    * If you have a proper Coordinate System, simdata will so its best to
      generate visibilities from that, and then create a synthesis image
      according to the specified user parameters.  Again, regridding the
      spectral dimension may not have complete flexibility yet.

    * If you would like finer control of the input Coordinate System, you can 
      run simdata once with 'ignorecoord=True' and 'checkinputs="only"' (the
      latter causes it to stop before doing the time-intensive visibility
      calculations). Then begin simulating from the .coord image that gets created.

    * You can manipulate the image header with the "imhead" task, or you can
      delve deeper with the ia and cs tools.  If you use the tools, you should
      be aware that a CoordinateSystem in CASA can exist independently of an
      Image.  Once the CoordinateSystem is detached from the image, it is the
      users responsibility to do any manipulation e.g. axis reordering on
      both. Example:
        ia.open("myimage_filename")
        ia.summary() # see header as attached to the image
        csys=ia.coordsys() # detach the CoordinateSystem
        csys.summary() # examine it
        csys.setreferencepixel([100,100]) 
        arr=ia.getchunk() # get the data from the Image
        ia.done()
        csys.reorder([0,2,1])  # reorder the CoordinateSystem
        arr=arr.reorder([0,2,1])  # reorder the data         
        ia.fromshape(outfile="mynewimage_file",shape=[32,32,256],csys=csys.torecord(),overwrite=True)
            # make a new image, with the right shape and CoordinateSystem
        ia.putchunk(arr)   # put the data into the new image.
        csys.done()
        ia.done()

    -------------------------------
    Output produced:
    -------------------------------
    $project.$modelimage.coord = input image recast into 4d image
    $project.$modelimage.flat  = input image regridded to size, moment zero
        image if the input was a cube.
    $project.convolved = input image regridded to output size and 
        convolved with Gaussian synthesized beam for the observation
    $project.ms = synthesized visibilities
    $project.noisy.ms = visibilities with noise added 
      ** if noise is requested, then the noisy visibilities will be 
         used to create the synthsized image.
    $project.clean.image = output cleaned synthesized image
    $project.clean.psf = output synthesized beam
      ** only one of dirty.image and clean.image will be created as output, 
         depending on whether niter=0 (invert to dirty) or niter>0 (clean)
    $project.clean.image = output cleaned synthesized image moment zero if a cube
    $project.diff.im = convolved input - output (2D)
    $project.absdiff.im = max[ abs(diff) , 0.7*rms(diff) ]
    $project.fidelity.im = convolved input / absdiff