NRAO Home > CASA > CASA Toolkit Reference Manual
measures.measure - Function

1.4.1 convert a measure to another reference


Description

measure converts measures (epoch, direction etc.) from one reference to another. It will, for instance, convert a direction from J2000 to AZEL representation.
Its arguments are a measure, an output reference code (see the individual measures for the allowable codes (direction, position, epoch, frequency, doppler, radialvelocity, baseline, uvw, earthmagnetic)), and an optional offset of the same type as the main measure. The offset will be subtracted from the result before it is returned.
In some cases (see the individual measures for when), more information than just a reference code is necessary. E.g. the above example of a conversion to AZEL, needs to know for when, and where on Earth we want it. This information is stored in a reference frame. Measures are set in the reference frame with the doframe function. The frame is tool wide.
IMPORTANT NOTE:
To get an accurate conversion of solar system objects direction to a celestial frame, one should convert to AZEL or HADEC before to get parallax accounted for. Thus if you want to get the moon’s position in J2000..one would do it in 2 stages
i.e (after setting the appropriate frames)
moonazel=me.measure(me.direction(’moon’), ’AZELGEO’) moonJ2000=me.measure(moonazel, ’J2000’)

Arguments





Inputs

v

measure to be converted

allowed:

record

Default:

rf

output reference code

allowed:

string

Default:

off

optional output offset measure

allowed:

record

Default:

Returns
record

Example

 
 
print "\t----\t measure Ex 1 \t----"  
a = me.epoch(’utc’,’today’)          # a time  
print a  
#{’m0’: {’value’: 54054.872957673608, ’unit’: ’d’},  
# ’refer’: ’UTC’,  
# ’type’: ’epoch’}  
print me.doframe(me.source(’1934-638’))  
print me.measure(a, ’tai’) # convert to IAT  
#{’m0’: {’value’: 54054.873339618054, ’unit’: ’d’},  
# ’refer’: ’TAI’,  
# ’type’: ’epoch’}  
print me.doframe(a) # set time in frame  
#True  
print me.doframe(me.observatory(’ALMA’)) # set position in frame  
#True  
b=me.direction(’j2000’, qa.toangle(’0h’), ’-30deg’)  # a direction  
print b  
#{’m0’: {’value’: 0.0, ’unit’: ’rad’},  
# ’m1’: {’value’: -0.52359877559829882, ’unit’: ’rad’},  
# ’refer’: ’J2000’,  
# ’type’: ’direction’}  
print me.measure(b, ’azel’) # convert to AZEL  
#{’m0’: {’value’: 1.9244096810822324, ’unit’: ’rad’},  
# ’m1’: {’value’: 0.76465385681363052, ’unit’: ’rad’},  
# ’refer’: ’AZEL’,  
# ’type’: ’direction’}  
print qa.angle(me.getvalue(me.measure(b,’azel’))[’m0’])     # show as angles  
#[’+110.15.38’]  
print qa.angle(me.getvalue(me.measure(b,’azel’))[’m1’])  
#[’+043.48.41’]  
 
 
Another example:  
 
print "\t----\t measure Ex 2 \t----"  
# Fill the frame with necessary information  
print me.doframe(me.epoch(’utc’,’today’))  
#True  
print me.doframe(me.observatory(’ALMA’))  
#True  
print me.doframe(me.direction(’mars’))  
#True  
a=qa.unit(’1GHz’)  
print a  
#{’value’: 1.0, ’unit’: ’GHz’}  
m=me.frequency(’lsrk’,qa.quantity(qa.getvalue(a),qa.getunit(a)))  
print m  
#{’m0’: {’value’: 1000000000.0, ’unit’: ’Hz’},  
# ’refer’: ’LSRK’,  
# ’type’: ’frequency’}  
print me.measure(m,’lsrd’)  
#{’m0’: {’value’: 1000001766.3928765, ’unit’: ’Hz’},  
# ’refer’: ’LSRD’,  
# ’type’: ’frequency’}  
 
 

__________________________________________________________________


More information about CASA may be found at the CASA web page

Copyright 2016 Associated Universities Inc., Washington, D.C.

This code is available under the terms of the GNU General Public Lincense


Home | Contact Us | Directories | Site Map | Help | Privacy Policy | Search