mailr26637 - in /trunk: pipe_control/align_tensor.py user_functions/align_tensor.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on November 19, 2014 - 18:57:
Author: bugman
Date: Wed Nov 19 18:57:53 2014
New Revision: 26637

URL: http://svn.gna.org/viewcvs/relax?rev=26637&view=rev
Log:
Added the angle_units and precision arguments to the 
align_tensor.matrix_angles user function.

This allows either degrees or radians to be output, and the number of decimal 
points to be specified.


Modified:
    trunk/pipe_control/align_tensor.py
    trunk/user_functions/align_tensor.py

Modified: trunk/pipe_control/align_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/align_tensor.py?rev=26637&r1=26636&r2=26637&view=diff
==============================================================================
--- trunk/pipe_control/align_tensor.py  (original)
+++ trunk/pipe_control/align_tensor.py  Wed Nov 19 18:57:53 2014
@@ -883,7 +883,7 @@
         tensor_obj.set(param='align_id', value=align_id)
 
 
-def matrix_angles(basis_set='matrix', tensors=None):
+def matrix_angles(basis_set='matrix', tensors=None, angle_units='deg', 
precision=1):
     """Function for calculating the inter-matrix angles between the 
alignment tensors.
 
     The basis set defines how the angles are calculated:
@@ -894,10 +894,14 @@
         - "geometric 5D", the geometric 5D basis set {Szz, Sxxyy, Sxy, Sxz, 
Syz}.  This is also the Pales standard notation.
 
 
-    @param basis_set:   The basis set to use for calculating the 
inter-matrix angles.  It can be one of "matrix", "irreducible 5D", "unitary 
5D", or "geometric 5D".
-    @type basis_set:    str
-    @param tensors:     The list of alignment tensor IDs to calculate 
inter-matrix angles between.  If None, all tensors will be used.
-    @type tensors:      None or list of str
+    @keyword basis_set:     The basis set to use for calculating the 
inter-matrix angles.  It can be one of "matrix", "irreducible 5D", "unitary 
5D", or "geometric 5D".
+    @type basis_set:        str
+    @keyword tensors:       The list of alignment tensor IDs to calculate 
inter-matrix angles between.  If None, all tensors will be used.
+    @type tensors:          None or list of str
+    @keyword angle_units:   The units for the angle parameters, either 'deg' 
or 'rad'.
+    @type angle_units:      str
+    @keyword precision:     The precision of the printed out angles.  The 
number corresponds to the number of figures to print after the decimal point.
+    @type precision:        int
     """
 
     # Argument check.
@@ -1060,7 +1064,11 @@
             cdp.align_tensors.angles[i, j] = theta
 
             # Add to the table as degrees.
-            table[i+1].append("%8.1f" % (cdp.align_tensors.angles[i, 
j]*180.0/pi))
+            angle = cdp.align_tensors.angles[i, j]
+            if angle_units == 'deg':
+                angle = angle * 180.0 / pi
+            format = "%" + repr(7+precision) + "." + repr(precision) + "f"
+            table[i+1].append(format % angle)
 
     # Write out the table.
     write_data(out=sys.stdout, data=table)

Modified: trunk/user_functions/align_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/user_functions/align_tensor.py?rev=26637&r1=26636&r2=26637&view=diff
==============================================================================
--- trunk/user_functions/align_tensor.py        (original)
+++ trunk/user_functions/align_tensor.py        Wed Nov 19 18:57:53 2014
@@ -320,6 +320,25 @@
     wiz_read_only = True,
     can_be_none = True
 )
+uf.add_keyarg(
+    name = "angle_units",
+    default = "deg",
+    py_type = "str",
+    desc_short = "angle units",
+    desc = "The units for the angle parameters, either 'deg' or 'rad'.",
+    wiz_element_type = "combo",
+    wiz_combo_choices = ["Degrees", "Radian"],
+    wiz_combo_data = ["deg", "rad"]
+)
+uf.add_keyarg(
+    name = "precision",
+    default = 1,
+    py_type = "int",
+    min = 1,
+    max = 100,
+    desc_short = "printout precision",
+    desc = "The precision of the printed out angles.  The number corresponds 
to the number of figures to print after the decimal point."
+)
 # Description.
 uf.desc.append(Desc_container())
 uf.desc[-1].add_paragraph("This will calculate the inter-matrix angles 
between all loaded alignment tensors for the current data pipe.  For the 
vector basis sets, the matrices are first converted to vector form and then 
then the inter-vector angles rather than inter-matrix angles are calculated.  
The angles are dependent upon the basis set - linear maps produce identical 
results whereas non-linear maps result in different angles.  The basis set 
can be one of:")




Related Messages


Powered by MHonArc, Updated Wed Nov 19 19:00:02 2014