Newer
Older
SmTIAS-LightSim / pyproject.toml
@rintoHasegawa rintoHasegawa on 1 Jun 1 KB [add] S2 DNG ローダと新指標を MiniTias-Evaluation からコピー — evaluation/dng_loader.py 新規 (handoff_smtias_lightsim/src/dng_loader.py の完全コピー+ docstring 差替: rawpy で 10-bit BGGR Bayer 展開・output_color=raw で linear カラーマトリクス非適用・gamma=(1,1)+no_auto_bright+use_camera_wb=False+user_wb=[1,1,1,1] で linear raw 保持・output_format rgb_float32/luma_float32/rgb_uint8 切替・Rec.709 luma は output_color=raw 時の固定加重プロキシで既存 PNG 経路と互換).evaluation/radial.py に calc_radial_min_max_ratio をマージ追加 (MiniTias-Evaluation の src/analysis/spatial.py から.動径 min/max 比 = 20 点輪帯平均の min/max で 1.0 で均一.画素単位 max/min よりノイズロバスト.nan ビン除外を移植時補強).pyproject.toml + uv.lock に rawpy>=0.21.0 追加 (実 rawpy==0.27.0).新規テスト 32 件 (tests/evaluation/test_dng_loader.py 341 行) で仕様 A1-D 全項目カバー.既存 537 + 新規 32 = 569 件全通過 (slow 除外).検証 V4 完全合格: 実 DNG (reference_measurement/quantitative/MiniTIAS_QM_20260601_124500.dng, 16MB, 暗闇撮影) を LSC 順方向適用 + portrait 向き合わせ (rot90 -1) + 白板 ROI で評価し,CoV/std/max-min/mean/max/min 6 件が相対誤差 < 1e-6 で MiniTias-Evaluation 期待値完全一致.中心/周辺比 1.0911 vs 1.091143・勾配 8.35 vs 8.352987・動径 min/max 0.8600 vs 0.859962 も絶対誤差 < 0.003.Refactorer 判断: _apply_srgb_oetf は既存 evaluation/oetf.py:apply_srgb_oetf と実装重複だがコピー方針優先で放置 (3 箇所以上の違反基準未満・用途異なる).副次変更: roi.py / test_oetf.py / test_visualize.py の軽微な lint 修正.handoff_smtias_lightsim/ ディレクトリは S3 完了後に削除予定で本コミットには含めない.CLAUDE.md 実装済みモジュール一覧に dng_loader.py と radial.py の calc_radial_min_max_ratio 追記+進捗欄に S2 完了 (V4 完全一致含む) を追記
[project]
name = "sm-tias-lightsim"
version = "0.1.0"
authors = [
    { name = "rintoHasegawa", email = "rintohasegawa0112@gmail.com" }
]
requires-python = ">=3.12"
dependencies = [
    "matplotlib>=3.10.9",
    "mitsuba>=3.8.0",
    "numpy>=2.4.4",
    "opencv-python>=4.13.0.92",
    "pandas>=3.0.2",
    "pillow>=12.2.0",
    "pydantic>=2.13.3",
    "pyvista>=0.45",
    "pyyaml>=6.0.3",
    "rawpy>=0.21.0",
    "trimesh>=4.12.1",
]

[project.scripts]
sm-tias-lightsim = "sm_tias_lightsim:main"
sm-render = "sm_tias_lightsim.cli.render:main"
sm-evaluate = "sm_tias_lightsim.cli.evaluate:main"
sm-visualize = "sm_tias_lightsim.cli.visualize:main"

[build-system]
requires = ["uv_build>=0.11.7,<0.12.0"]
build-backend = "uv_build"

[dependency-groups]
dev = [
    "pytest>=9.0.3",
    "ruff>=0.15.12",
]

[tool.ruff]
line-length = 100
target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "W", "I", "B", "UP", "N"]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"

[tool.pytest.ini_options]
markers = [
    "slow: 重いテスト(レンダリングを伴う等).通常実行は -m 'not slow' で除外",
]