中間データにメタデータを含めておくと後工程の外部ツール呼び出しが減る
RAW現像パイプラインで、recipe.json(現像パラメータ)→ XMP変換 → darktable-cli実行、という流れを組んでいた。XMP生成時にクロップ値を決めるためにEXIF情報が必要だったが、recipe.jsonにEXIF情報がなく、毎回exiftoolを実行し直していた。
recipe.json生成時にEXIF情報を一緒に埋め込むようにしたところ:
- XMP生成が自己完結する — recipe.jsonだけ読めばXMPを作れる。
exiftoolの再実行が不要 - バッチ処理が速くなる — 75枚の一括現像で、1枚ごとの
exiftool呼び出しがなくなった - デバッグしやすい — recipe.jsonを見るだけで「このRAWのセンサーサイズはいくつで、WBは何Kだったか」がわかる
{
"file": "IMG_0001.ARW",
"recipe": { "exposure": 0.5, "temperature": 6300 },
"exif": {
"image_width": 6048,
"image_height": 4024,
"white_balance": "Auto",
"iso": 800
}
}
パイプラインの中間データは「次の工程が必要とする情報」を全部持たせておくと、工程間の結合度が下がる。後から「あのメタデータも必要だった」と気づいて追加するより、最初から入れておく方が手戻りが少ない。