Because this project has not purchased a code-signing certificate. That is common to all free open-source software and does not mean it is a virus. You can click "More info" → "Run anyway"; or build it yourself from source, so that you can be sure the executable matches the code. You can also verify the file with SHA256 on the download page.
No. The ZIP you download already contains the runtime environment (PyQt5 and all the scientific computing packages);
just unzip it and run DRTxECM.exe.
Python is only needed if you want to run or build the program from source yourself.
Executables packaged with PyInstaller are occasionally misidentified; this is a well-known false alarm in the industry. This project's build pipeline deliberately disables UPX compression in order to lower the false-positive rate. You can verify the file with SHA256 first, or build from source yourself.
The program itself is a cross-platform Python project (PyQt5 + matplotlib) and can be run from source on macOS and Linux. However, the packaged portable build is currently available for Windows only, because the packaging pipeline is built in a Windows environment. For how to run it on macOS / Linux, see "Running from source" on the download page.
This is normal. The first launch has to load libraries such as PyQt5, matplotlib, scipy and scikit-learn, which can take a few seconds to a dozen or so seconds depending on your disk speed. Later launches are faster.
This usually means it was run without being fully unzipped, or that the extraction was interrupted. Please delete the whole folder and unzip it again, and do not double-click the executable from inside the ZIP file.
CSV and TXT, with three columns (frequency, Z', Z''). Different instruments use different numbers of header rows, so on import the "EIS Data Import Preprocessing Panel" opens and lets you specify how many rows to skip; you can also use Toggle Column 3 (Z'') Sign (* -1) to correct the sign of the imaginary part.
DRT is an ill-posed inverse problem: the more points and the wider the frequency coverage, the more stable it is. In practice, at least 8 to 10 points per decade are recommended, spanning more than 4 decades overall. Too few points will make the resolution of γ(τ) insufficient and will also make the free fitting of α meaningless.
Not strictly, but it is strongly recommended. A single outlier generates a whole sheet of spurious peaks in the DRT, which then biases the Gaussian decomposition and the circuit fitting that follow. Use Clean Noise Data (Ctrl+D) to click them away on the plot — a very small cost for a large benefit.
Yes. The DRT results of Stage 1 are completely consistent with pyDRTtools, so you can use that stage alone and export γ(τ) without ever entering Stages 2 and 3.
Yes. The graphical interface uses pyDRTtools' original English labels, so that existing pyDRTtools users do not have to adapt to anything new. The Chinese documentation on this website quotes the English terms directly, to make cross-referencing easy.
First look at how many distinct peaks the DRT γ(τ) has, and start from that number. Too few peaks leaves systematic structure in the fitting residuals; too many overfits and produces branches with no physical meaning. It is advisable to start from 2 to 4 and judge by the EIS Score and the residual plots.
Negative values of γ(τ) usually indicate insufficient regularization. You can: set the Parameter Selection Method to GCV so that the program selects λ automatically, increase FWHM Control, switch to Bayesian Run, or check whether the high-frequency inductance is being handled properly.
Theoretically not. The domain of the CPE α is (0, 1], and α = 1 is an ideal capacitor.
The DRTxECM default mode <= 1 restricts α to [0.2, 1.0];
an additional mode allows values up to 1.05, to absorb measurement error and series-resistance deviation
so that the fit is not blocked by a hard boundary. If the reported values must conform strictly to the physical definition, use <= 1.
The most common cause is initial values that are too far off. Suggestions: first use Stage 2 to obtain a good initial guess,
then in Stage 3 release the parameters one at a time — let R and Q be free first, and release α after convergence.
Setting all parameters to free at once usually fails.
The main differences are three: (1) DRTxECM has a complete DRT analysis built in, so you do not need to do it separately; (2) the initial values for circuit fitting are derived automatically from the DRT peaks, so there is no manual guessing; (3) the CPE phase angle α is a freely fitted parameter rather than being fixed or constrained. For a detailed comparison, see Method.
Yes — and it does by construction. DRTxECM does not modify the pyDRTtools DRT computation code at all; the same data and settings give the same γ(τ).
It is completely free and open source (MIT). No ads, no tracking, no paid version, no feature tiers.
No. All computation — including the DRT, the Gaussian decomposition and the circuit fitting — runs on your own computer. The program contains no network requests and no telemetry. You can use it with the network completely disconnected.
Yes. The MIT license permits use, modification and distribution without restriction, including commercial use. The only condition is that the copyright notice is retained.
If you use DRT computation results, you must cite the original pyDRTtools publications. How to cite DRTxECM itself, together with the complete reference list, is compiled under Citation & Credits.
Please report it at GitHub Issues. When reporting, include your Windows version, the DRTxECM version, and the DRT settings you used (discretization basis, Data Used, regularization parameter, etc.); this makes the problem much easier to reproduce.
You are welcome to. The project is MIT licensed, and both pull requests and issues are open.
If you modify the original DRT code under pyDRTtools/,
please note that extensions.py and layout.py are the DRTxECM extension parts,
while the remaining files are the original pyDRTtools content.