From d50cc4f40d0bd1f8f8c327ccf691bce215383875 Mon Sep 17 00:00:00 2001 From: Xuan Sun Date: Wed, 13 Jul 2022 09:53:35 -0700 Subject: [PATCH 1/3] Spyder init --- .spyproject/config/codestyle.ini | 8 ++++++++ .../config/defaults/defaults-codestyle-0.2.0.ini | 5 +++++ .../config/defaults/defaults-encoding-0.2.0.ini | 3 +++ .spyproject/config/defaults/defaults-vcs-0.2.0.ini | 4 ++++ .../config/defaults/defaults-workspace-0.2.0.ini | 6 ++++++ .spyproject/config/encoding.ini | 6 ++++++ .spyproject/config/vcs.ini | 7 +++++++ .spyproject/config/workspace.ini | 12 ++++++++++++ 8 files changed, 51 insertions(+) create mode 100644 .spyproject/config/codestyle.ini create mode 100644 .spyproject/config/defaults/defaults-codestyle-0.2.0.ini create mode 100644 .spyproject/config/defaults/defaults-encoding-0.2.0.ini create mode 100644 .spyproject/config/defaults/defaults-vcs-0.2.0.ini create mode 100644 .spyproject/config/defaults/defaults-workspace-0.2.0.ini create mode 100644 .spyproject/config/encoding.ini create mode 100644 .spyproject/config/vcs.ini create mode 100644 .spyproject/config/workspace.ini diff --git a/.spyproject/config/codestyle.ini b/.spyproject/config/codestyle.ini new file mode 100644 index 0000000..0f54b4c --- /dev/null +++ b/.spyproject/config/codestyle.ini @@ -0,0 +1,8 @@ +[codestyle] +indentation = True +edge_line = True +edge_line_columns = 79 + +[main] +version = 0.2.0 + diff --git a/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini b/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini new file mode 100644 index 0000000..0b95e5c --- /dev/null +++ b/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini @@ -0,0 +1,5 @@ +[codestyle] +indentation = True +edge_line = True +edge_line_columns = 79 + diff --git a/.spyproject/config/defaults/defaults-encoding-0.2.0.ini b/.spyproject/config/defaults/defaults-encoding-0.2.0.ini new file mode 100644 index 0000000..0ce193c --- /dev/null +++ b/.spyproject/config/defaults/defaults-encoding-0.2.0.ini @@ -0,0 +1,3 @@ +[encoding] +text_encoding = utf-8 + diff --git a/.spyproject/config/defaults/defaults-vcs-0.2.0.ini b/.spyproject/config/defaults/defaults-vcs-0.2.0.ini new file mode 100644 index 0000000..ee25483 --- /dev/null +++ b/.spyproject/config/defaults/defaults-vcs-0.2.0.ini @@ -0,0 +1,4 @@ +[vcs] +use_version_control = False +version_control_system = + diff --git a/.spyproject/config/defaults/defaults-workspace-0.2.0.ini b/.spyproject/config/defaults/defaults-workspace-0.2.0.ini new file mode 100644 index 0000000..2a73ab7 --- /dev/null +++ b/.spyproject/config/defaults/defaults-workspace-0.2.0.ini @@ -0,0 +1,6 @@ +[workspace] +restore_data_on_startup = True +save_data_on_exit = True +save_history = True +save_non_project_files = False + diff --git a/.spyproject/config/encoding.ini b/.spyproject/config/encoding.ini new file mode 100644 index 0000000..a17aced --- /dev/null +++ b/.spyproject/config/encoding.ini @@ -0,0 +1,6 @@ +[encoding] +text_encoding = utf-8 + +[main] +version = 0.2.0 + diff --git a/.spyproject/config/vcs.ini b/.spyproject/config/vcs.ini new file mode 100644 index 0000000..fd66eae --- /dev/null +++ b/.spyproject/config/vcs.ini @@ -0,0 +1,7 @@ +[vcs] +use_version_control = False +version_control_system = + +[main] +version = 0.2.0 + diff --git a/.spyproject/config/workspace.ini b/.spyproject/config/workspace.ini new file mode 100644 index 0000000..4d9540a --- /dev/null +++ b/.spyproject/config/workspace.ini @@ -0,0 +1,12 @@ +[workspace] +restore_data_on_startup = True +save_data_on_exit = True +save_history = True +save_non_project_files = False +project_type = 'empty-project-type' +recent_files = [] + +[main] +version = 0.2.0 +recent_files = [] + From 68468156d42928b92a13f6d366ba2f2220c51621 Mon Sep 17 00:00:00 2001 From: Xuan Sun Date: Fri, 15 Jul 2022 08:19:55 -0700 Subject: [PATCH 2/3] finishing set-up of new .py file --- .gitignore | 1 + .spyproject/config/codestyle.ini | 8 -------- .../config/defaults/defaults-codestyle-0.2.0.ini | 5 ----- .../config/defaults/defaults-encoding-0.2.0.ini | 3 --- .spyproject/config/defaults/defaults-vcs-0.2.0.ini | 4 ---- .../config/defaults/defaults-workspace-0.2.0.ini | 6 ------ .spyproject/config/encoding.ini | 6 ------ .spyproject/config/vcs.ini | 7 ------- .spyproject/config/workspace.ini | 12 ------------ hack/mag_probe_module.py | 8 ++++++++ 10 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 .spyproject/config/codestyle.ini delete mode 100644 .spyproject/config/defaults/defaults-codestyle-0.2.0.ini delete mode 100644 .spyproject/config/defaults/defaults-encoding-0.2.0.ini delete mode 100644 .spyproject/config/defaults/defaults-vcs-0.2.0.ini delete mode 100644 .spyproject/config/defaults/defaults-workspace-0.2.0.ini delete mode 100644 .spyproject/config/encoding.ini delete mode 100644 .spyproject/config/vcs.ini delete mode 100644 .spyproject/config/workspace.ini create mode 100644 hack/mag_probe_module.py diff --git a/.gitignore b/.gitignore index 096c8e9..28ce419 100644 --- a/.gitignore +++ b/.gitignore @@ -98,6 +98,7 @@ ENV/ # Spyder project settings .spyderproject +.spyproject # Rope project settings .ropeproject diff --git a/.spyproject/config/codestyle.ini b/.spyproject/config/codestyle.ini deleted file mode 100644 index 0f54b4c..0000000 --- a/.spyproject/config/codestyle.ini +++ /dev/null @@ -1,8 +0,0 @@ -[codestyle] -indentation = True -edge_line = True -edge_line_columns = 79 - -[main] -version = 0.2.0 - diff --git a/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini b/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini deleted file mode 100644 index 0b95e5c..0000000 --- a/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini +++ /dev/null @@ -1,5 +0,0 @@ -[codestyle] -indentation = True -edge_line = True -edge_line_columns = 79 - diff --git a/.spyproject/config/defaults/defaults-encoding-0.2.0.ini b/.spyproject/config/defaults/defaults-encoding-0.2.0.ini deleted file mode 100644 index 0ce193c..0000000 --- a/.spyproject/config/defaults/defaults-encoding-0.2.0.ini +++ /dev/null @@ -1,3 +0,0 @@ -[encoding] -text_encoding = utf-8 - diff --git a/.spyproject/config/defaults/defaults-vcs-0.2.0.ini b/.spyproject/config/defaults/defaults-vcs-0.2.0.ini deleted file mode 100644 index ee25483..0000000 --- a/.spyproject/config/defaults/defaults-vcs-0.2.0.ini +++ /dev/null @@ -1,4 +0,0 @@ -[vcs] -use_version_control = False -version_control_system = - diff --git a/.spyproject/config/defaults/defaults-workspace-0.2.0.ini b/.spyproject/config/defaults/defaults-workspace-0.2.0.ini deleted file mode 100644 index 2a73ab7..0000000 --- a/.spyproject/config/defaults/defaults-workspace-0.2.0.ini +++ /dev/null @@ -1,6 +0,0 @@ -[workspace] -restore_data_on_startup = True -save_data_on_exit = True -save_history = True -save_non_project_files = False - diff --git a/.spyproject/config/encoding.ini b/.spyproject/config/encoding.ini deleted file mode 100644 index a17aced..0000000 --- a/.spyproject/config/encoding.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encoding] -text_encoding = utf-8 - -[main] -version = 0.2.0 - diff --git a/.spyproject/config/vcs.ini b/.spyproject/config/vcs.ini deleted file mode 100644 index fd66eae..0000000 --- a/.spyproject/config/vcs.ini +++ /dev/null @@ -1,7 +0,0 @@ -[vcs] -use_version_control = False -version_control_system = - -[main] -version = 0.2.0 - diff --git a/.spyproject/config/workspace.ini b/.spyproject/config/workspace.ini deleted file mode 100644 index 4d9540a..0000000 --- a/.spyproject/config/workspace.ini +++ /dev/null @@ -1,12 +0,0 @@ -[workspace] -restore_data_on_startup = True -save_data_on_exit = True -save_history = True -save_non_project_files = False -project_type = 'empty-project-type' -recent_files = [] - -[main] -version = 0.2.0 -recent_files = [] - diff --git a/hack/mag_probe_module.py b/hack/mag_probe_module.py new file mode 100644 index 0000000..2868d22 --- /dev/null +++ b/hack/mag_probe_module.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Jul 15 08:15:38 2022 + +@author: xuans +""" + + From 58ad82931025f997b3c70c5957458c171c1c8148 Mon Sep 17 00:00:00 2001 From: Xuan Sun Date: Fri, 15 Jul 2022 09:44:50 -0700 Subject: [PATCH 3/3] Added simple test case Running into issues with "UnitsWarning" when using astropy.units. Also, running into issues with np.array() casting of a list with explicit units (unit conversion error). Was advised to push. --- hack/mag_probe_module.py | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/hack/mag_probe_module.py b/hack/mag_probe_module.py index 2868d22..e9ddccd 100644 --- a/hack/mag_probe_module.py +++ b/hack/mag_probe_module.py @@ -5,4 +5,69 @@ @author: xuans """ +'''An initial attempt to implement a magnetic pickup probe module.''' +import astropy.units as u + +import numpy as np + +from plasmapy.utils.decorators import validate_quantities + +@validate_quantities( + validations_on_return=u.T +) +def probe_to_field(raw: u.V, turns, area: u.m**2, t_step: u.s) -> u.T: + '''Taking, as input, raw voltage from magnetic probe + (and number of coil turns) and convert it to magnetic field measurement + at that location. + + We assume [raw] is an np.array of voltages. Turns is the number of turns + in the pick-up coil. Area is the area of a single turn in the pick-up coil. + t_step is the time step between consecutive voltage measurements, + assumed to be uniform given a fixed sampling frequency. + + The output voltage depends on the rate of change of the magnetic flux. + + The induced voltage in a circuit is proportional to the rate of change + over time of the magnetic flux through that circuit. + + emf is measured in volts. We are given volts. + + emf = - N dPhi_N/ dt + + phi_B = surf_integral{B(t) dot dA} + + To simplify, we assume we are computing the probe-aligned B field. + So phi_B_surf = B(t)_surf * A = B(t)_surf * turns * area + ''' + + # we assume instantaneous measurement of 0 to raw. + #raw = - turns * area * B_probe / t_step + + B_probe = [] + + # now expand to an array of voltages with fixed time step time traces + for i, v in enumerate(raw): + mag_field = ((raw[i] - raw[i-1]) * t_step) / (turns * area) + B_probe.append(mag_field) + + #B_probe = np.array(B_probe) + + + # include manual casting to Tesla as workaround + return B_probe#.to(u.T) + + +# provide synthetic signal - sine function TODO. +measured_volts = np.linspace(0, 10, 2) * u.mV +print(measured_volts) +#for i in range(len(measured_volts)): +# measured_volts[i] = measured_volts[i] * u.V +print(measured_volts) + +measured_field = probe_to_field(measured_volts, 10, 0.1*0.1 * u.m**2, 0.01 * u.s) + +print(measured_field) + + +