A comprehensive toolkit for analyzing and visualizing resistance and voltage measurements from semiconductor annealing experiments. This project provides tools for processing raw measurement data, handling sensor errors, and generating publication-quality plots.
The main resistance analysis tool for single annealing runs.
Usage:
python annealing_plot_resistance.py PATH_TO_DATA_FILE.dat [options]Examples:
python annealing_plot_resistance.py SPSCS09/SPSCS09_021/Step_1_SPSCS09_021_in_O2.dat
python annealing_plot_resistance.py your_data.dat --title "Custom Analysis" --tmin 10 --tmax 60
python annealing_plot_resistance.py your_data.dat --outlieroff --noarrowsFeatures:
- Auto-detects voltage/current polarities for proper processing
- Handles missing temperature data with intelligent repair
- Identifies heating and cooling phases with directional arrows
- Provides start and end point markers with resistance values
- Automatic outlier removal (can be disabled with
--outlieroff) - Publication-quality plots with customizable options
Overlay multiple annealing runs for comparative analysis.
Usage:
python annealing_plot_resistance_overlay.py FILE1.dat FILE2.dat [FILE3.dat ...] [options]Example:
python annealing_plot_resistance_overlay.py SPSCS09_024.dat SPSCS09_025.dat SPSCS09_028.dat --title "Sample Comparison"Features:
- Compare multiple annealing runs on the same plot
- Automatic color and marker cycling for clear differentiation
- Sample identification from filenames
- Ideal for batch analysis and sample comparison
Voltage-focused analysis with enhanced visualization options.
Usage:
python annealing_plot_voltage.py PATH_TO_DATA_FILE.dat [options]Features:
- Voltage measurements in mV for better readability
- Raw data visualization options
- Same data processing pipeline as resistance analysis
- Complementary analysis to resistance measurements
--title "Custom Title"- Set a custom plot title--tmin X- Only include data after X minutes--tmax Y- Only include data before Y minutes--noarrows- Hide direction arrows in temperature plots--outlieroff- Disable automatic outlier removal--showraw- Show raw measurements as points with lines
Note: These scripts were experimental attempts at advanced modeling but did not yield the expected results for our specific use case.
Attempted linear resistance modeling for Bruker tape samples.
- Implements simple linear temperature coefficient models
- Designed for metallic behavior analysis
- Status: Experimental - did not provide satisfactory fits for our data
Advanced hysteresis-aware modeling for superconductor data.
- Complex multi-parameter fitting with separate heating/cooling phases
- Implements physics-based models with activation energies
- Status: Experimental - overly complex for practical use
Data acquisition script for real-time measurements.
- Interfaces with Keithley 2400 sourcemeter via Prologix adapter
- Alternating current measurements (+/- polarity)
- Serial communication with temperature sensors
- Outputs tab-separated data files
Linearity analysis for ohmic contact verification.
- R² quantification for contact quality assessment
- Separate analysis for positive and negative current polarities
- Current range analysis for different measurement regimes
Annealing-Ofen/
├── README.md # This file
├── requirements.txt # Python dependencies
├── annealing_plot_resistance.py # ⭐ Main resistance analysis
├── annealing_plot_resistance_overlay.py # ⭐ Multi-file comparison
├── annealing_plot_voltage.py # ⭐ Voltage analysis
├── analyze_annealing_Bruker.py # Experimental modeling
├── analyze_annealing_SuperPower.py # Experimental modeling
├── messkript.py # Data acquisition
├── ohmic_contacts_analysis.py # Contact analysis
├── plots/ # Generated plots (PDF)
├── processed_data/ # Processed data files
├── temperature_repairs/ # Temperature sensor repair logs
├── Bruker/ # Bruker sample data
├── SPSCS09/ # SPSCS09 sample data
└── older_measurements/ # Archived data
-
Install dependencies:
pip install -r requirements.txt
-
Analyze a single measurement:
python annealing_plot_resistance.py your_data_file.dat
-
Compare multiple measurements:
python annealing_plot_resistance_overlay.py file1.dat file2.dat file3.dat
-
Analyze voltage data:
python annealing_plot_voltage.py your_data_file.dat
- PDF format for publication quality
- Resistance vs Temperature with heating/cooling phases
- Resistance vs Time profiles
- Overlay comparisons for multiple samples
- Tab-separated format with essential columns
- Cleaned data with outliers removed and interpolated values
- Time stamps, temperature, voltage, and resistance columns
- Verification plots showing temperature sensor error corrections
- Before/after comparisons for data quality assurance
The scripts expect tab-separated data files with the following columns:
timestamp resistance temperature voltage current
Example data line:
2025-01-15T10:30:45.123+01:00 0.1234 25.6 0.00123 0.01
- Automatic polarity detection for voltage/current measurements
- Temperature sensor error repair (-1 value interpolation)
- Outlier detection and removal using statistical methods
- Time-based filtering for specific analysis windows
- Professional styling with seaborn and matplotlib
- Chemical formula formatting (O₂ subscripts)
- Directional arrows indicating heating/cooling phases
- Start/end markers with numerical values
- Customizable titles and labels
- Automatic file discovery in standard directories
- Flexible input parsing for different data formats
- Error handling with informative messages
- Cross-platform compatibility
This codebase was developed with significant assistance from GitHub Copilot during March-June 2025. The AI assistance was particularly valuable for:
- Data processing pipeline design and error handling
- Statistical analysis implementation and outlier detection
- Matplotlib visualization and publication-quality formatting
- Code structure and documentation improvements
The core scientific algorithms and analysis approaches were designed by the research team, with AI assistance primarily in implementation, optimization, and code quality enhancement.
See requirements.txt for the complete list of dependencies. Key packages include:
pandas- Data manipulation and analysisnumpy- Numerical computationsmatplotlib- Plotting and visualizationseaborn- Statistical data visualizationscipy- Scientific computing and curve fittingbokeh- Color palettes for consistent plotting
This toolkit is designed for analyzing superconductor annealing experiments where:
- Resistance measurements track material properties during thermal cycling
- Temperature profiles show heating and cooling phases
- Multiple samples require comparative analysis
- Publication-quality plots are needed for research documentation
The annealing process typically involves heating samples in controlled atmospheres (O₂, Ar) to study temperature-dependent electrical properties and phase transitions.
- Start with resistance analysis - Most informative for superconductor studies
- Use overlay plots for comparing different samples or conditions
- Check temperature repairs folder if sensor errors occur
- Apply time filtering to focus on specific temperature ranges
- Disable outlier removal if you need to preserve all raw data points
Common issues:
- File not found: Check file paths and use absolute paths if needed
- Missing columns: Verify data format matches expected tab-separated structure
- Temperature sensor errors: Script automatically repairs -1 values via interpolation
- Memory issues: Use time filtering (
--tmin,--tmax) for large datasets
This project is part of ongoing research. Please contact the development team for usage permissions and collaboration opportunities.
Development Team: Research Group
Development Period: March - June 2025
AI Assistant: GitHub Copilot
Status: Active development with experimental features