-
Notifications
You must be signed in to change notification settings - Fork 1
/
qst_fiducial-desi-dat.py
41 lines (34 loc) · 1.29 KB
/
qst_fiducial-desi-dat.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- coding: utf-8 -*-
"""
Created on Thu Oct 3 13:59:15 2019
@author: Duan Yutong (dyt@physics.bu.edu)
"""
import os
import numpy as np
import pandas as pd
from petaltransforms import PetalTransforms
fid_centre_def = 'center'
data_dir = r'/n/home/desiobserver/dyt/'
# data_dir = r'Downloads'
petal_locs = {2: 7, 3: 3, 4: 0, 5: 1, 6: 2, 7: 8, 8: 4, 9: 9, 10: 5, 11: 6}
def qst_petal(petal_id):
data = pd.read_json(os.path.join(data_dir, f'petal{petal_id}.json'),
orient='index')
petal_loc = petal_locs[petal_id]
data['id'] = petal_loc*1000 + data['device_loc']
data = data.reset_index().set_index('id')
for coord in ['x', 'y', 'z']:
data[coord] = [d[coord] for d in data[fid_centre_def]]
# initialise petal transformation using nominal configuration, 36 deg * n
trans = PetalTransforms(gamma=np.pi/5*(petal_loc-3))
if petal_id == 3:
import pdb; pdb.set_trace()
QST = trans.ptlXYZ_to_QST(data[['x', 'y', 'z']].values.T)
data['q'], data['s'], data['t'] = QST[0, :], QST[1, :], QST[2, :]
return data
if __name__ == '__main__':
dfs = []
for petal_id in petal_locs.keys():
dfs.append(qst_petal(petal_id))
pd.DataFrame(pd.concat(dfs, sort=False)).to_csv(os.path.join(
data_dir, 'qst_fiducial-desi-dat.csv'))