No Lens tags for Panasonic lenses created

Hi everyone,

I recently imported my photos and am now browsing a bit through the various categories.

One thing I noticed is that no tags where created for any of my panasonic lenses, even though lens data seems to be present in the exif data:

$ exiftool -args 20120925T102508_G3_1240.jpg | grep -i lens
-ConversionLens=Off
-LensType=LUMIX G VARIO 100-300/F4.0-5.6
-LensSerialNumber=11091000070
-LensFirmwareVersion=0.1.2.0
-LensID=LUMIX G VARIO 100-300mm F4.0-5.6

Also, this seems not to be related to the camera, as other files produced by the same camera got a lens tag:

$ exiftool -args P1090298.JPG | grep -i lens
-ConversionLens=Off
-LensType=SIGMA 60mm F2.8 DN
-LensSerialNumber=500967238
-LensFirmwareVersion=0.1.0.0
-LensID=SIGMA 60mm F2.8 DN

Expectation: There are lens tags for the panasonic (LUMIX) lenses.

Thanks for the report @Lars_Noschinski !

The lens make and model extraction is based on looking at hundreds of exemplar images. These were the notes I took during that research:

// “LensID” can be quite descriptive, like “Olympus M.Zuiko Digital ED
// 12-100mm F4.0 IS Pro”, but it’s also sometimes “Unknown 7-21mm”

// “LensModel” is typically shorter than “LensID”, but still has some branding

// “LensInfo” is typically perfect for short: “4-6mm f/1.8-2.4” but sometimes is “24-105mm f/?”

// “Lens” doesn’t include aperture: “28.0 - 135.0 mm”

// “LensType” is a grab bag of randomness: “E-Mount, T-Mount, Other Lens or no
// lens”, “n/a”, “G VR”, “Canon EF 50mm f/1.4 USM or Other Lens”. I don’t think it should be used.

I found that I was missing Lumix from the lensMakes settings. Thanks for the catch!

Can you DM me an example file from your Panasonic and with your Sigma lens so I can verify my fix?

Here are the new test cases I added: do those results match what you’d expect?

  it("Parses Sigma lens", () => {
    expect(
      extractLensMakeModel({
        LensID: "SIGMA 60mm F2.8 DN"
      })
    ).to.eql({
      lensMake: "Sigma",
      lensInfo: "60mm f/2.8",
      lensModel: "60mm F2.8 DN"
    })
  })

  it("Parses Panasonic lens", () => {
    expect(
      extractLensMakeModel({
        LensID: "LUMIX G VARIO 100-300mm F4.0-5.6"
      })
    ).to.eql({
      lensMake: "Lumix",
      lensInfo: "100-300mm f/4-5.6",
      lensModel: "G VARIO 100-300mm F4-5.6"
    })
  })
1 Like

Hi Matthew,

I uploaded some files for all my lenses, fresh from the camera: https://webestaette.net/stuff/Lens_Data_Pictures.tar.gz

Your test cases look good to me.

If I understood you correctly, the issue was from PS not being able to assign a lensMake, and hence no lens tag at all. I wonder whether assigning a value like “unknown make” would be a more robust fallback?

Oops, just reviewed this topic, and I didn’t get back to you:

Rather than tagging with “unknown”, I just don’t tag a lens for those files.

BTW, I had to revisit lens make/model extraction just now to handle Nikon VR and ZEISS’s fancy new Batis lenses (thanks for the example files, @PS_2923 !).

The new v2.1 code should result in the same tags as v1.1, but, as always, holler if you see anything amiss.

1 Like