5年ぐらい前 (というか買った直後ぐらい)に EF 100mm F2.8 MACRO に傷をつけてしまっていて、ずっとそのことについては心にトゲが刺さったような気持ちだった。まぁとても小さい傷なので画質に問題はないだろうと思いそのまま使っていたし、実際撮影画像見ても一切わからないので、純粋に心のトゲの問題である。

過去に試した方法

傷?汚れ?をつけてしまったあとに試したのはハクバのレンズペンだったが、これでは落ちなかった。

HAKUBA メンテナンス用品 レンズペン3 【レンズ用】 ブラック KMC-LP12B -

3.0 / 5.0

指紋は綺麗に落ちるので、ついてしまったのが落ちないのは汚れではなく傷になってしまっているからだろうとこの時思い込んでしまっていた。

今日、試した方法

ふと思いついて無水エタノールをキムワイプにつけて優しく何度かこすってみたところ、傷だと思っていたものはみるみるうちにあっさり消滅した。つまり傷だと思いこんでいたものは落ちにくい汚れだったというオチであった。

無水エタノールP 500ml(掃除) -

5.0 / 5.0

ほかの方法

レンズコーティングがどういうものなのかわからない以上、無水エタノールも絶対に安全とはいえず、界面活性剤タイプが一番安全なはず。

界面活性剤タイプだとフジのがよく使われているっぽい。揮発しないので完全に拭き取らないといけないところが面倒なところ。

FUJIFILM レンズクリーニングリキッド 30CC LENS CLEANING LIQUID 30CC -

3.0 / 5.0

しかし調べた感じだとレンズコーティングはそんなに簡単に剥れたりするものではない (溶剤よりも摩擦を心配すべき) っぽい。ので無水エタノールでも良いのではないかという結論にいたった。

無水エタノールはかなり揮発性が高いので余計なものが恒久的に表面に残るという心配がないのは安心。

ペーパーは「ダスパー」というレーヨンでつくられたものが良いらしい。今回は使わなかったが次回からこれを使いたい。

日本製レンズクリーニングペーパー 小津産業(株) Dusper(ダスパー)K-3 標準サイズ -

3.0 / 5.0

安全な方法

安全な順に

  1. メーカーに清掃修理依頼を出す
  2. 乾式のレンズクリーナーを使う
  3. 界面活性剤タイプの洗浄剤を使う
  4. 無水エタノールを使う

さらに強力な方法もあるが、プラスチックを侵すので無水エタノールでダメなら諦めたほうがいいと思う。

  1. トップ
  2. tech
  3. 長年の悩みだったレンズ前玉の汚れが落ちた……

240GB の SSD に Lightroom のカタログを移動した。今まで OS が入っているシステムドライブにそのまま置いていたが、カタログ、とくにプレビューが大きく容量を圧迫していたため、これを解消することを目的とする。

カタログと Time Machine

カタログに付随するものとして Previews.lrdata と Smart Previews.lrdata があり、カタログ自体よりもこれらの容量が支配的になる。しかしこれは Time Machine から除外しても良い。元のファイルがあればいくらでも再生成できるものだからだ。実際これらの lrdata を削除して Lightroom を起動しても何の警告もなく起動し、プレビューは必要に応じて再生成されスマートプレビューはなかったことにされる。

スマートプレビュー

もしドライブを常時接続している場合は恩恵がないので生成しないほうがよさそう。読み込みダイアログで生成するチェックボックスをはずすこと。

これは写真ストレージになっているドライブを頻繁にとりはずして(例えばノートPC単体にして)現像を行いたいときのためのものなので、それをやらないなら特にメリットはない。

.lrcat っていったい何なのか

Lightroom のカタログを SQLite で読んで統計を出したりする | tech - 氾濫原

  1. トップ
  2. tech
  3. Lightroom カタログを専用ドライブに

.lrcat っていったい何なのか

カタログファイルの実体である lrcat は SQLite の DB ファイルそのもの。sqlite3 foo.lrcat すると中身を見ることもできる。

部分的に見た結果をメモしておく

# 画像に対応するテーブル?
Adobe_images
# Exif 情報に対応するテーブル?
AgHarvestedExifMetadata
# ファイルに対応するテーブル?
AgLibraryFile
AgLibraryFolder

# 画像とファイルのリレーション?
select Adobe_images.captureTime, baseName, modTime from Adobe_images inner join AgLibraryFile on Adobe_images.rootFile = AgLibraryFile.id_local;

# 画像と exif のリレーション?
select * from Adobe_images join AgHarvestedExifMetadata on AgHarvestedExifMetadata.image = Adobe_images.id_local;

たとえば

sqlite> .schema AgHarvestedExifMetadata
CREATE TABLE AgHarvestedExifMetadata (
    id_local INTEGER PRIMARY KEY,
    image INTEGER,
    aperture,
    cameraModelRef INTEGER,
    cameraSNRef INTEGER,
    dateDay,
    dateMonth,
    dateYear,
    flashFired INTEGER,
    focalLength,
    gpsLatitude,
    gpsLongitude,
    gpsSequence NOT NULL DEFAULT 0,
    hasGPS INTEGER,
    isoSpeedRating,
    lensRef INTEGER,
    shutterSpeed
);

なので (index は省略)、dateYear ごとの focalLength 統計を求めたい場合は

select dateYear, focalLength, count(*) from AgHarvestedExifMetadata group by dateYear, focalLength;

とか、もっとシンプルにレンズ焦点距離の使用頻度なら

sqlite> select focalLength, count(*) as cnt from AgHarvestedExifMetadata group by focalLength order by cnt;
...
24.2|1003
35.0|1037
|1093
200.0|1139
18.0|1153
22.0|1307
24.0|1378
70.0|1928
50.0|1978
30.0|4265
100.0|4522

みたいなことはできる。

レンズ名ごとの撮影枚数 (Lightroom 上でもわかるが) なら

 select AgInternedExifLens.value, count(*) as cnt from AgHarvestedExifMetadata join AgInternedExifLens on AgHarvestedExifMetadata.lensRef = AgInternedExifLens.id_local group by lensRef order by cnt;

とか。

今年の統計 (これも Lightroom 上でもわかるが) だけならこんな感じとか

select AgInternedExifLens.value, count(*) as cnt from AgHarvestedExifMetadata join AgInternedExifLens on AgHarvestedExifMetadata.lensRef = AgInternedExifLens.id_local where dateYear = CAST(strftime("%Y") AS NUMERIC) group by lensRef order by cnt;
24-70mm|10
20mm|17
EF50mm f/1.4 USM|75
EF-M22mm f/2 STM|77
EF70-200mm f/2.8L IS II USM|253
EF100mm f/2.8L Macro IS USM|353
35mm|428
E PZ 16-50mm F3.5-5.6 OSS|1260
30mm F1.4 DC DN | Contemporary 016|4083

もうちょっと Lightroom 上で見れない統計を出したいと思ったが思いつかなかったので思いついたら続きを書く

  1. トップ
  2. tech
  3. Lightroom のカタログを SQLite で読んで統計を出したりする