ams (version 1.17, $Date: 2005/11/21 16:44:41 $)
index
/Users/schwehr/projects/xcore/src/pmag-kds-py/ams.py

Handle Anisotropy of Magnetic Susceptibility data (KLY-2)
 
Hext - statistics for Anisotropy
S_Matrix - the diagonalized s matrix
 
Right now this just wraps k15_hext, k15_s, s_eigs, etc
 
# $Id: ams.py,v 1.17 2005/11/21 16:44:41 schwehr Exp $
 
######################################################################
#     Copyright (C) 2005  Kurt Schwehr
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
######################################################################

 
Modules
       
math
popen2
string

 
Classes
       
Hext
S_Matrix

 
class Hext
    Handle k15_hext output
 
  Methods defined here:
__init__(self, k15_lines, volumeCC=10, dataInMicroSI=True)
Take 4 lines of k15 Kappabridge data and create a Hext stats object
 
volumeCC - Volume of the sample.  The KLY-2 assume a volume of 10 cm^3
 
dataInMicroSI - The KLY-2 kappa bridge returns values in microSI (1e-6).  If data
                is not in micro SI, set this to false.  Only affects the bulk susc.
 
WARNING: I think the values set in this class are probably a
mixture of strings and numbers.  Needs to be cleanedup so all
strings that really are numbers get converted to numbers.
 
FIX: make this pure python
getEta(self, index)
Eta is the ln(tau)   eta1 = ln(tau1)
getFparam(self)
F shape parameter is Tau2/Tau3  (int/min eigenvalues) - aka Foliation
 
Stacey et al. [1960]
getLparam(self)
L shape parameter is Tau1/Tau2  (max/int eigenvalues) - aka Lineation
 
Balsley and Buddington [1960]
getPprime(self)
P' shape paramter is hard to write in ascii text
 
'Corrected' Anisotropy (Jelinek [1981])

Data and other attributes defined here:
intpos = 1
maxpos = 0
minpos = 2

 
class S_Matrix
    k15_s wrapper
 
  Methods defined here:
__init__(self, k15_lines)
Take 4 lines of k15 data and fill in the object

 
Functions
       
getF(confidence=0.94999999999999996)
Return the confidence value for the F-test for a 15 position
measurement of AMS 
 
Posted about bug on Nov 3 2003 on the news group comp.lang.python
bug is gone!  11/2005
 
getF(.95)
3.4817
 
FIX: Need to VERIFY the F statistics usage!!!!!
 
FIX: it is not 2,7... what is it?  is it 9,5?
FIX: go back to my 11/2003 notes to figure out what it is
 
Is it this???
In [2]: distributions.f.ppf(0.95,5,9) 
Out[2]: 3.4816586539
getF12(confidence=0.94999999999999996)
If F12 value is greated than this number, then the max and intermediate
eigenvectors are distinguishable.
 
> get_F12(.95)
4.25649472909
# Which equals the 4.2565 that is published
 
from rpy import *
> print r.qf(0.95,2,9)
4.256495
> print r.pf(4.256495,2,9)
0.95 
 
import scipy.stats
> scipy.stats.distributions.f.ppf(0.95,2,9)
4.25649472909
 
FIX: Need to VERIFY the F statistics usage!!!!!
 
FIX: why is scipy broke?
 
Workaround for broken scipy...
 
  scipy.stats.distributions.f.ppf([0.95],2,9)[0]
getF23(confidence=0.94999999999999996)
SEE ALSO: getF12
getShapeName(F, F12, F23, confidence=0.94999999999999996)
Use the F-Test and a confidence level to give a fabric shape name

 
Data
        __author__ = 'Kurt Schwehr'
__date__ = '$Date: 2005/11/21 16:44:41 $'
__version__ = '1.17'

 
Author
        Kurt Schwehr