Skip to content

Flint8777/Reflectance-Spectra

Repository files navigation

Reflectance Spectra Viewer

反射スペクトル・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 から最新版をダウンロードしてください。

Windows

Reflectance-Spectra-Viewer-vX.Y.Z_win.zip をダウンロードして解凍し、Reflectance Spectra Viewer.exe を実行。

macOS

Mac の種類 ダウンロードファイル
Intel Reflectance.Spectra.Viewer-X.Y.Z_mac_x64.dmg
Apple Silicon Reflectance.Spectra.Viewer-X.Y.Z_mac_arm64.dmg

初回起動時の注意(「開発元が未確認」の警告が出る場合)

  1. アプリを右クリック → "開く" を選択
  2. 警告ダイアログで再度 "開く" をクリック
  3. 2回目以降は通常のダブルクリックで起動可能

使い方

起動フロー

  1. アプリを起動するとデータタイプ選択ダイアログが表示される
  2. データに合ったプリセットを選択(下表参照)
  3. ファイルを読み込む(ボタンまたはドラッグ&ドロップ)
プリセット 軸設定 対応フォーマット
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 を押しながらドロップ)

対応フォーマット

CSV

ヘッダーあり・なし両方を自動判定:

Wavelength,Reflectance
0.38,0.123
0.39,0.124

または

0.38,0.123
0.39,0.124

DPT(OPUS ソフトウェア出力)

カンマ区切り2列のテキストファイル。ヘッダーなし。

0.38,0.123
0.39,0.124

注意: DPT はカンマ区切りのみ対応。スペース区切りは読み込めません。

RELAB PDS4(TAB + XML)

XML ラベルファイルと TAB データファイルのペア。XML を先に読み込んでから TAB を読み込むと自動認識。波長はアプリ内で nm → μm に自動変換。

ASC(XRD データ)

空白区切り2列(2θ, Intensity)のテキストファイル:

10.00 120
10.05 135

TXT(温度測定データ・InfraWin 出力)

2行目に This document contains measurement data of the following devices: を含むファイルを自動判定。時間データを 0 秒始まりに自動変換。

OPUS バイナリ(Bruker)

.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   # macOS

Windows 配布用 ZIP 作成

npm 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解析)

CI/CD

タグ(vX.Y.Z)を push すると GitHub Actions が自動的に Windows / macOS 向けビルドを作成し、GitHub Release にアセットとして添付します。詳細は GITHUB_ACTIONS.md を参照。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors