ekpmeasure
Repository of analysis and computer control code for various experiments. Analysis module is designed to help the researcher wrangle large amounts of meta data
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: aps.org -
✓Committers with academic emails
2 of 4 committers (50.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Keywords
Repository
Repository of analysis and computer control code for various experiments. Analysis module is designed to help the researcher wrangle large amounts of meta data
Basic Info
Statistics
- Stars: 7
- Watchers: 4
- Forks: 3
- Open Issues: 0
- Releases: 13
Topics
Metadata Files
README.md
Welcome to EKPy
A repository of analysis and computer control code for various experiments. Image above is an example of data collected and analyzed using this package.
See here for introdution videos
Overview
EKPy (formerly ekpmeasure) is a set of control and analysis code designed to help streamline experiments. The basic idea is that in experimental work we often take data from many different sources, store it in different places, have varying degrees meta data associated with the data (even for a single type of data) and somehow(!) we are supposed to make sense of it all. We like to compare across trials, days, experimental conditions, etc. and it is very difficult to keep track of what data is where, and quickly access it when we need it. Often I find that folks end up copying and pasting raw data between excel spreadsheets and if you're not careful you will quickly lose track of which data came from where. This package's goal is to make this all easier.
You may not find the experimental control code as helpful as it is relatively specific to my research in condensed matter physics (though electrical engineers or similar may find it very useful) but the analysis code is for everyone.
At the heart of the analysis is the Dataset class which is a means of manipulating meta data alone in order to locate which actual data you want to analyze. Datasets don't care about what the real data looks like, and they keep track of where different data is stored so it is easy to select which data you want to look at - only then do you retrieve the data. The real data is returned in a Data class which allows you to group by parameters, perform calculations and much more.
I am always improving this repository and if you have suggestions, I appreciate any feedback and or issues (https://github.com/eparsonnet93/ekpmeasure/issues)
See examples for more.
Installation:
If you plan to use EKPy to control your experiments. You will need to install NI-VISA first.
Find the latest build here.
bash
pip install ekpy
or to upgrade to the latest version
bash
pip install -U ekpy
You can also access .whl or .tar.gz files in the dist/ directory directly for installation.
For installation issues, please see Issue Tracker
There are also specific experiments that can be installed following installation of ekpy. Please see the accompanying readme (e.g., here) for such cases.
Development
We welcome new contributors of all experience levels. Please reach out directly (e.parsonnet@berkeley.edu) to inqure about getting involved.
Important Links
- Official source code repo: https://github.com/eparsonnet93/ekpmeasure
- Issue tracker: https://github.com/eparsonnet93/ekpmeasure/issues
Change log
Version 0.1.14
With help form Geo!
- Updates to utils to make to improve the function
get_number_and_suffix+ other updates to include additional instruments and fixes.
Version 0.1.13
- Can now group Data.
data.groupby - Can now remove nans from data.
data.dropna - Improvements to file management in control, saving, and more appropriate trial incrementing in
control.experiment - Functions used in
data.applyshould no longer require the use of iterable data arrays. Please raise an issue if one occurs.
Version 0.1.12
- Added functionality to
analysis.radiant - Speed increase for
data.get_data() - Minor bugs and other fixes
Version 0.1.11
experiment.print_run_function_argsis gone. It has been replaced withexperiment.show_run_function_help- Added a header of meta data to the default save function for
control.experimentand started the process of doing away with meta_data.pklfiles in favor of.csv(why did I ever think that was a good idea?)
Version 0.1.10
- minor bug fixes and documentation updates
Version 0.1.9
- minor bug fixes
Version 0.1.8
2/18/22
- bug fixes from 0.1.7 and changed install name to ekpy.
Version 0.1.6
1/23/22
- added Data.to_DataFrame() which allows one to convert Data to pandas.DataFrame. Each index of Data will be a single row in the resulting DataFrame.
Version 0.1.5
1/12/22
- merge_Datas was replaced. The older version is now concat_Datas as it was really just concatenation, not merging. Merging now has real meaning, to merge a set of similar data objects on a specified definition key. Please report errors as they arise.
- similary
merge_Datasetsis deprecated. One must useconcat_Datasets.
Version 0.1.4
12/2/21
- Added experiments module with ferroelectric experiments. This contains both relaxation (_relaxation) and switching (_switching) experiments. These consist of self contained jupyter notebooks that can be installed by python -m ekpy.experiments.ferroelectric.<experiment_name>. For more see the experiment specific README for relaxation or switching
- Bug fix on Data.sort
11/16/21
- Data.apply now allows for dropping data. This can be executed by having the function in .apply return 'None'.
- data_array_builder.build now allows one to fix lengths on 1D data by appending nans to make all data arrays the same length.
- analysis.plotting.add_legend_element now allows kwarg fontsize
11/19/21
- Data can now be saved. Use data.to_ekpdat.
- Can be loaded as analysis.read_ekpdat
Version 0.1.3
11/11/21
- Minor fixes for deprecations in control.misc
Version 0.1.2
11/7/21
- Speed improvements to Dataset.remove_nonexistent_files
- Data objects can now be sorted by a definition parameter
Version 0.1.1
11/2/21
- Updates to plotting during experimental control. Now one can simply override the
control.experimentmethod_plotto define how plotting will take place. Here is a brief example of such an override: ```python from ekpy.control import plotting from ekpy.control import experiment import matplotlib.pyplot as plt
class exp(experiment):
...
def _plot(self, data, scan_params):
if hasattr(self, 'fig') and hasattr(self, 'ax'):
pass
else:
fig, ax = plt.subplots()
self.fig = fig
self.ax = ax
self.ax.scatter(scan_params['frequency'], np.mean(data['R']), color = 'blue')
plt.show(self.fig)
plotting.update_plot(self.fig)
...
```
Version 0.1.0
10/24/21
- Dataset class is no longer subclass of
pandas.DataFrame. This is to limit usage of unsupported functions. - Data class updates including sorting and collapsing.
- One can access data or definition directly as an attribute now
Data.definition, for example. One can also access pieces of information such as the real data corresponding top1asData.p1or definition keys, e.g.high_voltageasData.high_voltage - Experiment class now saves a backup
.csvmeta data file in addition to the pickle file in order to help with errors related to different pandas versions on various machines.
Support
Code related issues (e.g. bugs, feature requests) can be created in the issue tracker
Maintainer: Eric Parsonnet
Citation
Please cite this work following the CITATION.cff (see here for more details on how to cite.)
Cited By
- E. Parsonnet et. al. NonVolatile Electric Field Control of Thermal Magnons in the Absence of an Applied Magnetic Field, Phys. Rev. Lett 129, 087601 (2022).
Owner
- Name: Eric Parsonnet
- Login: eparsonnet93
- Kind: user
- Location: Oakland, CA
- Repositories: 2
- Profile: https://github.com/eparsonnet93
Physics PhD student at UC Berkeley studying condensed matter.
Citation (CITATION.cff)
cff-version: 1.2.0
message: Please cite this software using these metadata.
authors:
- family-names: Parsonnet
given-names: Eric
email: e.parsonnet@berkeley.edu
affiliation: UC Berkeley
orcid: 'https://orcid.org/0000-0003-0723-6887'
title: ekpy
type: software
version: 0.1.11
url: https://github.com/eparsonnet93/ekpmeasure
GitHub Events
Total
Last Year
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 560
- Total Committers: 4
- Avg Commits per committer: 140.0
- Development Distribution Score (DDS): 0.043
Top Committers
| Name | Commits | |
|---|---|---|
| Eric Parsonnet | e****t@b****u | 536 |
| ElPsyKurisu | 8****u@u****m | 22 |
| Kunal Marwaha | m****a@b****u | 1 |
| Eric Parsonnet | 3****3@u****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 7
- Total pull requests: 28
- Average time to close issues: 21 days
- Average time to close pull requests: about 3 hours
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 1.43
- Average comments per pull request: 0.21
- Merged pull requests: 27
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- eparsonnet93 (5)
- marwahaha (1)
- hypsiche (1)
Pull Request Authors
- eparsonnet93 (25)
- ElPsyKurisu (2)
- marwahaha (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 54 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 32
- Total maintainers: 1
pypi.org: ekpmeasure
A collection of control and analysis code for experiments
- Homepage: https://github.com/eparsonnet93/ekpmeasure
- Documentation: https://ekpmeasure.readthedocs.io/
- License: MIT License
-
Latest release: 0.1.7
published about 4 years ago
Rankings
Maintainers (1)
pypi.org: ekpy
A collection of control and analysis code for experiments
- Homepage: https://github.com/eparsonnet93/ekpmeasure
- Documentation: https://ekpy.readthedocs.io/
- License: MIT License
-
Latest release: 0.1.14
published over 3 years ago
