LabRAD 시작 ③: Data Vault 사용 방법
16967 단어 Pythonhardwarelabradexperimenttech
Registry로 vault 위치 변경
데이터 볼트(Vault)는 LabRAD에서 데이터를 저장하거나 열 때 사용하는 서버입니다.데이터를 저장할 때의 데이터 확장자는hdf5입니다.
import labrad
cxn = labrad.connect()
reg = cxn.registry
# Registry内で~\Servers\Data Vault\Repositoryというディレクトリに移動
reg.cd(['','Servers', 'Data Vault','Repository'])
# ([], ['__default__', 'pc_name']) # PCの名前がpc_nameのとき。
#現在のvaultの場所を取得
reg.get('pc_name')
# デフォルトなら'C:\\Users\\User/.labrad/vault'
#new_path: 新しいvaultのpath
new_path = 'D:\\labrad_data/vault'
# vaultの場所をnew_pathに変更
reg.set('pc_name', new_path)
파일 생성, 데이터 저장, 데이터 획득
Data Vault에서는 파일 작성, 데이터 저장, 데이터 가져오기 등에 다음 함수를 사용합니다.
import labrad
cxn = labrad.connect()
DV = cxn.data_vault
# 主な関数
DV.dir() #サブディレクトリとファイルをリストが入ったtupleとして返す。
# index 0がサブディレクトリ、index 1がファイル:([Directry1, Directry2...], [file1, file2, file3...])
DV.cd('name') #'name' ディレクトリに移動。移動後のパスをリストとして返す。
DV.mkdir('name') #'name' ディレクトリを作成。作成したディレクトリ内のパスをリストとして返す。
DV.new(file_name, scan_variables, measured_variables)
#新しいhdf5(ファイル名は、"**** - fine_name.hdf5" ****は番号)をを作成. file_name:string(測定ファイル名), scan_variables:リスト (コントロール変数、例えば温度、磁場、ゲート電圧など)、measred_variables:リスト (測定変数。例えば測定電圧、測定電流、測定磁場など) 戻り値としてファイルのpathとファイル名を返す。
DV.add(data) #測定データをdata: numpy.arrayとして追加。コントロール変数の合計がM、測定点がNだとすると、(N, M)のnumpy.arrayを入力する。
DV.add_parameter('key', value) # 測定装置のパラメーターなど追加。DV.add_parameterで後からparameterを取得可。
DV.variables(file_number) #返り値として、ファイル作成時に入力したコントロール変数と測定変数を取得。
#以下はファイルを開いて、データを取得する方法の例
DV.cd('') #ホームディレクトリ(vaultフォルダ)に移動
DV.cd(file_path) #データが入っているフォルダに移動
#file_pathには保存フォルダ(device1)がホームディレクトリ(vault)にあるときには'device1'とか、vault/Data/Project1/sample1にあるときには、['', 'Data', 'Project1', 'sample1']と入力する。
DV.open(file_index) #ディレクトリ内のファイルを開く。ファイル番号のindexを入力,ファイル名は通常0001-name.py, 0002-name.pyと続いていくが、pythonのindexは0から始まるので注意
data = DV.get() # DimensionlessArrayとしてデータを取得
데이터 볼트(Vault)의 실제 사용 예
실제 적당한 파일 이름으로 파일을 만들어 그 파일에 적당한 데이터를 저장하고 그 파일에서 데이터를 꺼내 보세요.
import numpy as np
import pandas as pd
import labrad
cxn = labrad.connect()
DV = cxn.data_vault
DV.cd('') #ホームディレクトリ(vaultフォルダに移動)
#device1というディレクトリを作成
file_path = 'device1'
try:
DV.mkdir(file_path)
DV.cd(file_path)
except Exception:
DV.cd(file_path)
file_name = 'device1_resistance_vs_gate'
scan_variables = ['gate_voltage', 'temperature', 'magnetic_field']
measured_variables = ['measured_voltage', 'measured_current']
DV.new(file_name, scan_variables, measured_variables) # 例えば0001 - device1_resistance_vs_gate.hdf5というファイルが作成される。
DV.add_parameter('current [nA]', 100) #パラメータの情報を追加
'''
dataは測定データの例(gate_voltageを変化させて5点だけ測定する場合)
gate_volatge は2から-2まで変化
temperature は0.2で固定
magnetic_fieldは0.5で固定
measured_voltageは0.1と-0.1を交互にとる
measured_voltageは0.3と-0.3を交互にとる
'''
data = np.array([[2, 0.2, 0.5, 0.1, 0.3],
[1, 0.2, 0.5, -0.1, -0.3],
[0, 0.2, 0.5, 0.1, 0.3],
[-1, 0.2, 0.5, -0.1, -0.3],
[-2, 0.2, 0.5, 0.1, 0.3]])
DV.add(data) #測定データhdf5ファイルに追加: numpy.arrayとして追加。コントロール変数の合計がM、測定点がNだとすると、(N, M)のnumpy.arrayを入力する。
###以下はファイルを開いて、データを取得する方法の例
# 戻り値として、ファイル作成時に入力したコントロール変数と測定変数をリストとして返す。
DV.cd('') #ホームディレクトリ(vaultフォルダ)に移動
DV.cd(file_path) #データが入っているフォルダに移動
DV.open(DV.dir()[1][file_index) #ディレクトリ内のファイルを開く。file_indexはフォルダ内のファイルのindexを入力,ファイル名は通常0001-name.py, 0002-name.pyと続いていくが、pythonのindexは0から始まるので注意
measured_data = DV.get() # DimensionlessArrayとしてデータを取得
#ファイル作成時に入力したコントロール変数と測定変数をリストとして取得。
cl = [DV.variables()[0][i][0] for i in range(len(DV.variables()[0]))] + [DV.variables()[1][i][0] for i in range(len(DV.variables()[1]))]
# 例えばデータフレームを使ってデータを取得。
df = pd.DataFrame(data, columns = cl)
display(df)
Reference
이 문제에 관하여(LabRAD 시작 ③: Data Vault 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yseeker/articles/fa2667dc19de5e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)