XRD-FileConventor

Powder X-ray diffraction (XRD) data format converter · Standalone offline edition · Core functionality re-implemented in JavaScript

Format specifications adapted from open-source projects: xylib (LGPL) · GSAS-II (BSD-3) · opXRD (CC BY 4.0)

v0.0.1 ✔ Zero dependencies · Open by double-click ✔ Data never leaves your machine ✔ Rigaku · Bruker · Jade/MDI · generic text ✔ Plot preview / wavelength conversion
⚠ Scope — this release deliberately ships only the formats the author can validate. The author has access to Rigaku and Bruker diffractometers, and uses MDI Jade for analysis, so the supported set is limited to Rigaku (.rasx / .ras / .asc), Bruker (.raw ver.1 / .uxd), Jade MDI ASCII (.mdi) and generic numeric text (.xy / .xye / .csv / .txt / .dat / .json). Round-trip conversion has been verified against real Rigaku and Bruker instrument files; the .mdi writer follows the MDI Jade manual and passes a read-back test, but has been checked with a smaller sample set. Readers/writers for other vendors (PANalytical .xrdml, Sietronics .cpi, Philips .udf, GSAS, Riet7 .dat) were written but are not shipped, because they could not be tested against real instrument files. Sample files from other vendors are very welcome — open an issue and they can be re-enabled.

1Import data file

Click to choose a file or drag & drop a file here
Rigaku .rasx .ras .asc  ·  Bruker .uxd  ·  Jade/MDI .mdi  ·  Generic .xy .xye .csv .txt .dat .json and any two-column numeric text

2Plot preview

Drag to box-zoom · Double-click to reset

3Wavelength conversion (optional)

Conversion formula: 2θ′ = 2·asin( (λ′/λ)·sin(2θ/2) ). Data points outside the domain of sin are automatically clipped.

4Convert & export

For fixed-step formats (RAW / ASC / MDI), if the original step is non-uniform the average step is written in the header. Bruker RAW ver.1 is binary output (magic "RAW ", float32 intensity, little-endian, structure verified against the xylib library). MDI ASCII follows the MDI Jade layout: line 1 date + sample, line 2 start step speed anode λ end nPoints, then 8 intensities per line. .rasx (Rigaku SmartLab, ZIP container) input is supported: automatically detects UTF-16/UTF-8 encoded Profile data, correctly applies the attenuation factor (y = intensity × attenuation coefficient), and extracts the wavelength from the MesurementConditions XML into the output header. Data-quality checks follow the opXRD (arXiv:2503.05577v2) guidelines: warn on negative angles / fewer than 50 points, reject all-zero intensity / single unique angle.