Request: D70 EXIF
riedl
Registered Users Posts: 6 Beginner grinner
Hello. I'm a SmugMug newbie with a D70 and a bunch of photos. I don't know much about EXIF yet, but I'm sad that some of my Nikon D70 EXIF information that shows up in Nikon's capture tools doesn't show up on SmugMug. From browsing the fora it looks like others have this problem with the D70. Two thoughts:
1) I even hate to ask for this, because I'm betting Nikon is not EXIF-compliant, but: Are you guys thinking about including a D70-compliant parser for EXIF?
2) If not, how about an API that did something like deliver a raw EXIF string to an external parser? That way I could write my own parser that would work really hard to read as much of the EXIF stuff as is available.
Also: if I write a parser that uses the API to do something like the above, say in Python, is there a way for me to plug it into the SmugMug interface that I see on the site? If so, where might I read about how to do that?
Thanks!
John
1) I even hate to ask for this, because I'm betting Nikon is not EXIF-compliant, but: Are you guys thinking about including a D70-compliant parser for EXIF?
2) If not, how about an API that did something like deliver a raw EXIF string to an external parser? That way I could write my own parser that would work really hard to read as much of the EXIF stuff as is available.
Also: if I write a parser that uses the API to do something like the above, say in Python, is there a way for me to plug it into the SmugMug interface that I see on the site? If so, where might I read about how to do that?
Thanks!
John
0
Comments
- Please provide a link to one of the (original?) files you have uploaded that features that "nikon-specific" EXIF.
- Are you a windows user (or mac/linux/etc)?
Cheers!You have to remember that different manufacturers write EXIF data in different ways. There are a few standard fields, but then there are "Maker Notes" which can vary from manufacturer to manufacturer. I believe that the use of maker notes is allowed in the EXIF spec, so it may not be correct to say that Nikon is not EXIF-compliant. It's just that smugmug is not reading those maker notes.
It's understandably tough to create something that reads all the different permutations of EXIF data out there, but it can be done. The image management tool IMatch reads almost everything, but I know the developer has put a lot of work into making it do that.
Also, rather than write a parser yourself, you might want to check out IMatch at www.photools.com. It has a powerful scripting language that lets you use all kinds of image data in variables, etc. Ultimately though, I'm not sure how smugmug will be able to handle any of that data unless they make some changes.
http://riedl.smugmug.com/
It's my only "featured gallery", and my only "public gallery", so I think it will be easy to find.
Below I've attached the Nikon PictureProject information (which is all as I remember the photo), and the SmugMug 'detail information', which is mostly right, but some slightly wrong, and some missing.
The parts I'd most like to get included are ISO, White Balance, and Metering Mode. I'd also like the flash to be correct. (No flash was used for this picture, but SmugMug thinks there was some flash.)
I did the upload to SmugMug from Firefox under Windows. I used no editing software before doing the upload.
Thanks!
John
Here's the information Nikon's PictureProject tells me about the first photo:
Nikon D70
2004/12/27 13:47:53.7
JPEG (8-bit) Fine
Image Size: Large (3008 x 2000)
Lens: VR 70-200mm F/2.8 G
Focal Length: 200mm
Digital Vari-Program: Sports
Metering Mode: Multi-Pattern
1/800 sec - F/2.8
Exposure Comp.: 0 EV
Sensitivity: ISO 1600
Optimize Image:
White Balance: Auto
AF Mode: AF-C
Flash Sync Mode: Not Attached
Color Mode: Mode Ia (sRGB)
Tone Comp: Auto
Hue Adjustment: 0°
Saturation: Normal
Sharpening: Auto
Image Comment:
Noise Reduction: OFF
and here is what SmugMug tells me:
<table border="1" cellpadding="4" cellspacing="0"> <tbody><tr align="top"><td class="headmd" colspan="2"><center>Photograph Details</center></td> </tr> <tr valign="top"> <td>Date Taken:</td> <td> 2004-12-27 13:47:53</td> </tr> <tr valign="top"> <td>Date Digitized:</td> <td> 2004-12-27 13:47:53</td> </tr> <tr valign="top"> <td>Date Modified:</td> <td> 2004-12-27 13:47:53</td> </tr> <tr valign="top"> <td>Make:</td> <td> NIKON CORPORATION</td> </tr> <tr valign="top"> <td>Model: </td> <td> NIKON D70 </td> </tr> <tr valign="top"> <td>Size: </td> <td> 3008x2000 </td> </tr> <tr valign="top"> <td>Bytes: </td> <td> 2736596 </td> </tr> <tr valign="top"> <td>Aperture: </td> <td> f/2.8 </td> </tr> <tr valign="top"> <td>Focal Length: </td> <td> 200mm (300mm 35mm) </td> </tr> <tr valign="top"> <td>Exposure Time: </td> <td> 0.0012s (10/8000)</td> </tr> <tr valign="top"> <td>JPEG Quality:</td> <td> fine</td> </tr> <tr valign="top"> <td>Flash:</td> <td> 16</td> </tr> <tr valign="top"> <td>Exposure Bias:</td> <td> 0</td> </tr> <tr valign="top"> <td>DigitalZoomRatio:</td> <td> 1/1</td> </tr> <tr valign="top"> <td>Sharpness:</td> <td> 2</td> </tr> <tr valign="top"> <td>SensingMethod:</td> <td> One-chip color sensor</td> </tr> <tr valign="top"> <td>ColorSpace:</td> <td> sRGB</td></tr></tbody> </table>
John
The D70 ISO information is stored in the "makers notes" field. This is not something that Smugmug currently supports. I know of at least one Windows application that moves the info for you, but I don't have the link handy. I'm sure a search on google will supply the info.
I'm a D70 owner, and would be interested in a fix.
Dave
http://www.lifekapptured.com (gallery)
I've explained two of the EXIF problems:
FLASH: according to the spec, flash is a two byte field, the second byte of which is a bitmask. All sorts of hairy details on page 35 and 36 of the EXIF spec (http://www.exif.org/specifications.html), but the short (:-) of it is that a flash value of decimal 16 = hex 0010X means "compulsory flash OFF mode", indicating that the flash did not fire because it was not allowed to by the operator. (Which is exactly my situation when shooting hockey.) I'm betting the library smugmug uses doesn't process that field correctly. (There's a second field elsewhere in the spec that says how powerful the flash was, in some kind of fancy light energy units.) I've written to smugmug to ask what library they're using; if it's one of the open source ones, perhaps I can fix it for them.
White Balance: according to the spec, there are only two defined values for white balance: "manual" or "auto". Nikon has a half-dozen versions of "manual", which are important to me when shooting in hockey arenas (incandescent, flourescent, sunlight, shade, and maybe some others I'm forgetting). Presumably they could only report these in "Makers Notes", which they apparently do! It would be awesome if we could extend the SmugMug library to pull out this information too. (For the most part it's probably ASCII, so it shouldn't be hard to parse.)
I'm still stumped by ISO. It's right there in the spec, and it looks like just the right kind of information. Does anyone get ISO for their pictures? Perhaps it's something that smugbug's library just doesn't bother to pull out. (Or perhaps it's in Makers Notes as suggested by the previous poster; I just can't figure out why Nikon would do that.)
John
Turns out all the fields I'm having trouble with are new or changed in the EXIF 2.2 standard. Perhaps that's the problem.
I did learn a little more about White Balance. There's another field called "LightSource", which has values that capture all of the settings the D70 can use for light source (flourescent et al.). If they're using that field, which is also modified in the 2.2 spec, they're well-behaved, and we just need an updated library. I'm going to check what's in the files generated by the D70.
John
I've figured out the makernote situation for the D70 completely, thanks to some wonderful Web resources. I even have working code that smugmug is welcome to use to get these features incorporated on their site. Enjoy!
The Nikon D70 stores a bunch of useful information in the makernote
section of the EXIF. The field I'm most interested in is ISO, which
is easy to get from the makernote. In addition, there are four other
fields that would be 'nice to have'. They're a little trickier to
get, but I explain below how, and include working Python code.
Here's a site that describes briefly the three types of Nikon
Makernotes
http://home.arcor.de/ahuggel/exiv2/makernote.html
Here's a site that explains exactly how the three types of Nikon
Makernotes work:
http://www.ozhiker.com/electronics/pjmt/jpeg_info/nikon_mn.html
XXX looks like LightingType should be 144, not 143 as it is currently
on this site!
The D70 Makernotes format starts with the characters (in decimal):
[78, 105, 107, 111, 110, 00, 02]
N I K O N 0 ^ Type 2
3 other chars (a total of 10)
An 8 char TIFF Header:
bytes 0-1: chars II for little endian
or MM for big endian
bytes 2-3: the constant 42, to further identify TIFF header
bytes 4-7: offset in bytes of the first IFD
Other than this header, the D70 makernote format is exactly like other
makernote formats for items whose value fits in the 'offset' field.
That includes ISO Field, which therefore is trivial to pull out of the
makernote.
For longer values, the offset is a 'pointer', but crucially:
For the D70 and other cameras that use this format the offset is from
this second TIFF header, not from the original TIFF header. (Some
argue that this is a good idea, since it makes the makernotes
relocatable without the program that moves them understanding their
layout.)
I've modified Gene Cash's cool Python program so it can read
makernotes in this format. I attach the modified code here in case
you can use it.
The fields I (and presumably other D70 users) would love to have are:
MakerNote Whitebalance: AUTO
MakerNote DigitalVariProgram: SPORT [String]
MakerNote FocusMode: AF-C [String]
MakerNote LensMinMaxFocalMaxAperture: [70, 200, 14/5, 14/5] [4 ratios]
All of these are very easy to read once you get the relative offsets
correct in the code. The attached code can read all of these
makernotes (and *oodles* of others as well).
Happy hacking,
John
P.S. I had to lie about the type of the file to get it to upload. It's really a text file of python code (.py), not a PDF.
P.P.S. If you prefer C++ code, exiv2 also can read the D70 makernotes perfectly.
Imnew here (just joined) I know nothing about the EXIF data or what it all means and have a question that I hope someome can answer for me.
If the EXIF data show's a photo prgram (like Paint Shop, Photo Shop, Adobe etc.) listed, what does that mean? Does it mean that program was used to alter the pic in some way or the camera associated with that program to transfer pics to computer or what? I would really like to know what it means if anyone can help, I'd be greatful for the info.
Thanks Teddy
This is the EXIF for a pic as an example:
Heres the exif
Filename : 0000000000.jpg
JFIF_APP1 : Exif
JFIF_APP14 : Photoshop 3.0
JFIF_APP1 : http
JFIF_APP2 : ICC Profile (offset:20513 size:3151bytes)
JFIF_APP15 : Adobe
AdobeResource
Unknown (1061) : 16Byte
DisplayInfo : 16Byte
Unknown (1062) : 14Byte
GlobalAngle : 4Byte
Global Altitude : 4Byte
PrintFlags : 10Byte
CopyrightFlag : 2Byte
Print flags : 10Byte
Color halftoning information : 72Byte
Color transfer functions : 112Byte
Layer state information : 2Byte
Layers group information : 12Byte
Grid and Guides information : 16Byte
URL List : 4Byte
Slices : 842Byte
Unknown (1064) : 12Byte
Document specific IDs : 4Byte
ThumbnailResource : JPEG Format (Offset:7994Size:6276)
Thumbnail Type : JPEG
Thumnail Width : 160
Thumbnail Height : 96
Version Info : 84Byte
JPEG quality : 00010100
Main Information
Orientation : left-hand side
XResolution : 72/1
YResolution : 72/1
ResolutionUnit : Inch
Software : Adobe Photoshop CS Windows
DateTime : 2006:04:20 20:58:00
ExifInfoOffset : 164
Sub Information
ColorSpace : sRGB
ExifImageWidth : 640
ExifImageHeight : 382
I would be most interested in an ISO listing in the smugmug exif!!
I'm late to this subject but I just noticed that images processed in the Lightroom beta show ISO while those processed in Capture NX don't. I'd like SM to show ISO too but not enough to use Lightroom to get it. Just bought Capture NX instead. Delivery today!
Lee
I'm surprised ExifTool hasn't been mentioned: http://www.sno.phy.queensu.ca/~phil/exiftool/
It reads and writes EXIF, including MakerNotes, for many cameras. It probably can extract the ISO information from D70 images just fine.
I also just wanted to add that no one has mentioned that Photoshop CS and CS2 read and give ISO info just fine for RAW .nef's, but not for .jpg's - obviously, this translates to what then shows up in Smugmug as well.
I point that out because not only does ISO not appear in exif for images that started as a D70 jpg, but there's also lots of extra fields. For example...
RAW:
http://doctorit.smugmug.com/photos/newexif.mg?ImageID=108593004
JPG:
http://doctorit.smugmug.com/photos/newexif.mg?ImageID=108592993
So is there a discrepancy in how the D70 writes the exif? I find this strange.
moderator of: The Flea Market [ guidelines ]