pseudot
index
/Users/schwehr/projects/xcore/src/pmag-py/pseudot.py

Pmag python library - Kurt's draft version
 
Wraps Lisa's pseudot fortran program and parses the plotxy file for
info.
 
# $Id: pseudot.py,v 1.7 2005/03/27 00:48:07 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
       
os
popen2
sqlite
string
time

 
Functions
       
createPseudotInputFile(db_cx, outFileName, samplename)
Build a pseudo-thellier input file for pseudot
 
Paramters:
 
db_cx       --- Sqlite database connection
outFileName --- File to write the results
samplename  --- Which sample in the database so try to build a
                pseudot file from.
 
Returns:
 
Description:
 
Create an input file for Lisa's pseudot program.  This requires
tweaking the treatment values so that the program will know about
which measurement is for what.
 
 
For an example file, see /sw/share/pmag/ex3.6
 
pseudot 0.00 1.214e-005 150.8 54.2
pseudot 5.00 9.054e-006 150.0 61.6
pseudot 5.00 8.960e-006 148.4 61.1
pseudot 10.00 6.781e-006 143.0 66.1
pseudot 10.00 6.505e-006 142.5 65.0
...
pseudot 210.00 5.930e-007 103.4 29.4
pseudot 210.00 4.835e-007 158.4 55.1
pseudot 5.05 6.729e-006 164.8 88.7
...
pseudot 31.05 5.824e-005 79.0 88.6
pseudot 40.05 6.937e-005 45.0 88.6
 
 
Have to lookup AFDemag and ARM data.
 
FIX: is it a problem if I used ARM .040 mT DC bias instead of .050?
 
NOT SO SIMPLE!  What to do about 7.5 treatment?
getAfListFromDB(db_cx, samplename, table='mag')
Return a list of samples in the form usable by pseudot but with the .00
 
db_cx      --- sqlite database connection
samplename --- string name of the sample to pull from the database
table      --- table in the database to pull the sample from
getArmListFromDB(db_cx, samplename, table='mag')
Return a list of samples in the form usable by pseudot but with the .05
 
db_cx      --- sqlite database connection
samplename --- string name of the sample to pull from the database
table      --- table in the database to pull the sample from
listToString(list)
Turn a list into a string for pseudot.  No commas or []
pseudotPostscript(outFileName, afdemagList, armList)
Take the strings for pseudo-Thellier AF demag and ARM to get the
magnetic activity (m[a]) and the range used.  Treatments must have
.00 for af demag treatments and .05 for ARM treatments
 
afdemagStrings --- list of afdemag strings with name, treatment,
                   intensity, dec, inc.  For example:
                   [['5gws2-126',0.00,1.127e-05,157.1,50.8],['5gws2-126',5.00,1.093e-05,157.1,51.4]]
armStrings     -- list of ARM strings with name, treatment,
                   intensity, dec, inc.  For example:
                   [['5gws2-126',5,1.832e-06,177.0,9.9],['5gws2-126',10.05,3.544e-06,179.3,5.3]]
pseudotValues(afdemagList, armList)
Take the strings for pseudo-Thellier AF demag and ARM to get the
magnetic activity (m[a]) and the range used.  Treatments must have
.00 for af demag treatments and .05 for ARM treatments
 
Parameters:
 
afdemagStrings --- list of afdemag strings with name, treatment,
                   intensity, dec, inc.  For example:
                   [['5gws2-126',0.00,1.127e-05,157.1,50.8],['5gws2-126',5.00,1.093e-05,157.1,51.4]]
armStrings     -- list of ARM strings with name, treatment,
                   intensity, dec, inc.  For example:
                   [['5gws2-126',5,1.832e-06,177.0,9.9],['5gws2-126',10.05,3.544e-06,179.3,5.3]]
 
Returns:
 
A tuple of (m(a),fitMin(mT), fitMax(mT)).  For example:
    (-0.4182, 5.0, 95.0)
 
This digs into the output of pseudot which is a bunch of plotxy
commands.  The note command writes text, so it grabs the
parameters from the note commands.