In [4]:
import sys
#sys.path.insert(0,'/Users/wildrocker/PmagPy')
sys.path.insert(0,'/Users/ltauxe/Programs/PmagPy/GIT/PmagPy')
from IPython.display import Image
import pandas as pd
import pmag,exceptions
import numpy as np

In [5]:
!IODP_descr_magic.py -A -f SRM_data/SRM_dscr_355_U1456A_W.csv -F U1456A_MagIC/no_ave_SRM_dscr_355_U1456A_W.csv.magic
dscr_data,filetype=pmag.magic_read("U1456A_MagIC/no_ave_SRM_dscr_355_U1456A_W.csv.magic")
specs=pmag.get_specs(dscr_data)


processing:  ./SRM_data/SRM_dscr_355_U1456A_W.csv
2171  records written to file  ./U1456A_MagIC/no_ave_SRM_dscr_355_U1456A_W.csv.magic
data stored in  ./U1456A_MagIC/no_ave_SRM_dscr_355_U1456A_W.csv.magic

In [3]:
def parse_data(step):
    dir=[float(step['measurement_dec']),float(step['measurement_inc']),float(step['measurement_magn_moment'])]
    xyz=pmag.dir2cart(dir)
    return xyz

In [4]:
diffs=[]
for spec in specs:
    spec_data=pmag.get_dictitem(dscr_data,'er_specimen_name',spec,'T') # get the data for this spec
    treats=pmag.get_dictkey(spec_data,'treatment_ac_field','') # find the treatments
    next_to_last=pmag.get_dictitem(spec_data,'treatment_ac_field',treats[-2],'T') # next to last treatment
    start=next_to_last[-1] # one just before the last set of treatments
    last_step=pmag.get_dictitem(spec_data,'treatment_ac_field',treats[-1],'T') # last set
    xyz0=parse_data(start)
    for s in last_step:
        xyz=parse_data(s)
        resultant=pmag.cart2dir([xyz-xyz0])
        if 'oward' in s['measurement_description']:
            ref=[0,0,1]
        elif 'ight' in s['measurement_description']:
            ref=[90,0,1]
        elif 'Away' in s['measurement_description']:
            ref=[0,90,1]
        angle=pmag.angle(ref,resultant)
        diffs.append({'specimen':s['er_specimen_name'],'orientation':s['measurement_description'],'angle':'%f7.1'%(angle)})
        xyz0=xyz
pmag.magic_write('angles.txt',diffs,'special')


280  records written to file  angles.txt
Out[4]:
(True, 'angles.txt')

In [4]: