反射スペクトル・XRDパターン・温度プロファイルなど、2列形式の科学データを表示するデスクトップアプリケーション。
- WebGLによる高速描画(Plotly.js)
- CSV / DPT / RELAB TAB / ASC / TXT / Bruker OPUS バイナリ 形式に対応
- OPUS の 3D Series(時系列・多点測定)を自動展開、複数 spectrum を含むファイルは凡例で階層表示
- 複数ファイル同時表示・グループ管理(カラーサイクルはグループ別)
- ドラッグ&ドロップでファイル読み込み・凡例間の並び替え
- スペクトル規格化(最大値 / Min-Max / 指定波長、表示範囲 or 全範囲基準)
- スタック表示(形状保持 + 可変ギャップのスライダー)
- Y オートフィット、片側指定可能な表示範囲入力
- 単位付き座標読出し、カラーサイクル / カラーピッカー切替
- Wavenumber ヘッダー検出時に Wavelength への変換を提案
- Undo 可能な Unload(個別トレース・ファイル単位 一括)
- Windows / macOS 対応
Releases から最新版をダウンロードしてください。
Reflectance-Spectra-Viewer-vX.Y.Z_win.zip をダウンロードして解凍し、Reflectance Spectra Viewer.exe を実行。
| Mac の種類 | ダウンロードファイル |
|---|---|
| Intel | Reflectance.Spectra.Viewer-X.Y.Z_mac_x64.dmg |
| Apple Silicon | Reflectance.Spectra.Viewer-X.Y.Z_mac_arm64.dmg |
初回起動時の注意(「開発元が未確認」の警告が出る場合)
- アプリを右クリック → "開く" を選択
- 警告ダイアログで再度 "開く" をクリック
- 2回目以降は通常のダブルクリックで起動可能
- アプリを起動するとデータタイプ選択ダイアログが表示される
- データに合ったプリセットを選択(下表参照)
- ファイルを読み込む(ボタンまたはドラッグ&ドロップ)
| プリセット | 軸設定 | 対応フォーマット |
|---|---|---|
| Reflectance Spectra | Wavelength (μm) / Reflectance | CSV, DPT, TAB+XML, OPUS バイナリ |
| XRD Pattern | 2θ (°) / Intensity | CSV, ASC |
| Temperature Profile | Time (s) / Temperature (°C) | TXT (InfraWin) |
| Auto | ファイル内容から自動判定 | すべて |
| 操作 | 方法 |
|---|---|
| ファイル追加 | ツールバーの Add Files ボタン、またはウィンドウへドラッグ&ドロップ |
| Unload(個別) | 左パネルの × ボタン(直後に Undo トーストで復元可) |
| Unload All | ツールバーの Unload All ボタン(確認ダイアログあり) |
| 表示/非表示 | 左パネルのチェックボックス |
| 色変更 | シングルクリックでカラーサイクル次色、ダブルクリックでカラーピッカー |
| ズーム | グラフ上をドラッグで矩形選択 / マウスホイール |
| Reset Zoom | ダブルクリック または Reset Zoom ボタン |
| Y オートフィット | Auto-fit Y ボタン(現在の X 範囲内の min/max に Y を合わせる) |
| 表示範囲指定 | ツールバーの X/Y min・max 入力欄に数値を入れて Enter(片方だけ入力も可) |
| 軸ラベル変更 | ツールバーの Axis Labels ボタン |
| 規格化 | ツールバーの Normalize spectra ボタン(wavelength / max / Min-Max) |
| スタック表示 | ツールバーの Stack display ボタン(gap スライダーで間隔調整) |
| 凡例ソート | 左パネルのソートボタン(ファイル名 / 拡張子 / custom、昇降順) |
| 凡例並び替え | 凡例アイテム同士をドラッグ(自動で custom 順に切替) |
| グループ切替 | 左パネルの番号ボタンをクリック |
| グループ操作 | 右クリックでメニュー(Rename / Close Group) |
| グループ間移動 | 左パネルのトレースをグループ番号にドラッグ |
| グループ間コピー | 同上(Ctrl を押しながらドロップ) |
ヘッダーあり・なし両方を自動判定:
Wavelength,Reflectance
0.38,0.123
0.39,0.124
または
0.38,0.123
0.39,0.124
カンマ区切り2列のテキストファイル。ヘッダーなし。
0.38,0.123
0.39,0.124
注意: DPT はカンマ区切りのみ対応。スペース区切りは読み込めません。
XML ラベルファイルと TAB データファイルのペア。XML を先に読み込んでから TAB を読み込むと自動認識。波長はアプリ内で nm → μm に自動変換。
空白区切り2列(2θ, Intensity)のテキストファイル:
10.00 120
10.05 135
2行目に This document contains measurement data of the following devices: を含むファイルを自動判定。時間データを 0 秒始まりに自動変換。
.0 / .0001 などの数値拡張子 / .opus を持つ Bruker OPUS バイナリを直接読み込めます。マジックバイト 0A 0A FE FE で OPUS ファイルを検証し、1 ファイル内に複数のスペクトル(Reflectance / Absorbance / Transmittance / Sample / Reference 等)が含まれる場合は各々を別トレースとして展開します。x 軸の単位はファイル内の DXU パラメータから判定し、波数 (cm⁻¹) は自動で波長 (μm) に変換します。
実装メモ: brukeropus (MIT) のロジックを参考に JavaScript に移植。
src/opusParser.jsを参照。
- Windows 11 (64-bit)
- macOS (Apple Silicon / Intel)
git clone https://github.com/Flint8777/Reflectance-Spectra.git
cd Reflectance-Spectra
npm ci
npm run electron:build:win # Windows
npm run electron:build:mac # macOSnpm run electron:build:win
npm run pack:zip生成物: dist-electron/Reflectance-Spectra-Viewer-vX.Y.Z_win.zip
npm run test:run- Electron 42
- React 19
- Plotly.js v3(WebGL)
- Vite 8
- Vitest 4
- PapaParse(CSV解析)
タグ(vX.Y.Z)を push すると GitHub Actions が自動的に Windows / macOS 向けビルドを作成し、GitHub Release にアセットとして添付します。詳細は GITHUB_ACTIONS.md を参照。