Thanks for your response. Unfortunately, IMHO, the EXIF 2.2 spec only contains a highly-precise description of the trees, and includes no clear description of the forest. The information's probably there, but it's lost in a swamp of details (to mix my metaphors). Even a simplified description like this doesn't provide what I need; it shows the "Exif data structure" but says nothing about how the tags are theoretically organized.
I don't need to know how to write Exif tags to an image file; there are great tools such as ExifTool for that. I'm just looking for an outline of how the tags are organized, ignoring any implementation details. Just how do tags, groups and families relate to each other? Or, what of the Exif spec would I need to know in order to understand the inputs and outputs of ExifTool's various Get/SetGroup[s] commands?
Although I believe this description would be generally useful, my specific need is a project where I'm tagging Earth observation photos taken from the International Space Station. Each photo needs to specify two locations: the location of the camera, and the location of the target (which can be hundreds of km away from the nadir point).
I'm guessing the GPS tags would be best used for the camera (ISS) location, but where do I store the lat/lon of the center of the imaged area of Earth? Could I have a duplicate set of GPS tags, with an agreement as to which tags represent which location? Or could I actually add my own custom Exif tags (I suspect not)?