A Python notebook (EXIF_headers.ipynb) was run that incorporated the information from an individual field activity image locations file (*_grabimage_locations.csv where the * represents the field activity number) along with the Artist name (Page C. Valentine), into the appropriate tags in the EXIF header of each sample image. Then the IPython Notebook (using Python version 3.8.8) was executed from a Jupyter Notebook (version 6.3.0) running under Anaconda version 3 on a Windows 10 machine. The Python script uses Exiftool (version 11.54) to write survey information to the image headers of the full-resolution images. The following tags were populated in the JPEG image headers. Information is duplicated in some tags because different software packages access different tags.
GPS tags: The values populated are unique for each station and based on the information exported from *_station_data_summary.csv.
GPSLatitudeRef
GPSLatitude
GPSLongitudeRef
GPSLongitude
GPSTimeStamp
GPSDateStamp
Two other elements that are unique for each image (and will actually have the same value) are the XMP tags for the original filename.
OriginalFileName
PreservedFileName
JPEG tag: The tag is listed along with the information used to populate it, which is the same for every image of a given field activity. The example below is from field activity 2020-012-FA. The DOI number is the same for all the field activities and represents this data release.
Comment: Photo of grab sample in sampler from a Nikon D7100 digital camera aboard the R/V Auk during survey 2020-012-FA ( https://cmgds.marine.usgs.gov/fan_info.php?fan=2020-012-FA ).
EXIF tags: The tag is listed along with the information used to populate it, which is the same for every image of a given field activity.
EXIF:ImageDescription: https://cmgds.marine.usgs.gov/fan_info.php?fan=2020-012-FA; Photo of grab sample in sampler from a station on Stellwagen Bank, MA from survey 2020-012-FA
EXIF:Artist: Page C. Valentine
EXIF:Copyright: Public Domain - please credit the U.S. Geological Survey
EXIF:UserComment: Image part of USGS data release https://doi.org/10.5066/P9G7QARQ
EXIF:GPSAreaInformation: Position post-processed from GPS on ship
EXIF:GPSMapDatum: EPSG:4326 (WGS 84)
IPTC tags: The tag is listed along with the information used to populate it, which is the same for every image of a given field activity.
IPTC:Credit: U.S. Geological Survey
IPTC:Contact: whsc_data_contact@usgs.gov
IPTC:Keywords: Stellwagen Bank, Massachusetts, 2020-012-FA, SEABOSS, sea floor, USGS, ground-truth, https://doi.org/10.5066/P9G7QARQ
IPTC:CopyrightNotice: Public Domain - please credit U.S. Geological Survey
IPTC:Caption-Abstract: Photo of grab sample in sampler from a station on Stellwagen Bank, MA from survey 2020-012-FA
XMP tags: The tag is listed along with the information used to populate it, which is the same for every image of a given field activity. Three tags described elsewhere (ImageUniqueID, OriginalFileName, and PreservedFileName), are unique for each image.
XMP:Caption: Photo of grab sample in sampler from a station on Stellwagen Bank, MA from survey 2020-012-FA
XMP:AttributionURL: https://doi.org/10.5066/P9G7QARQ
XMP:Author: Page C. Valentine
XMP:UsageTerms: Unless otherwise stated, all data, metadata and related materials are considered to satisfy the quality standards relative to the purpose for which the data were collected. Although these data and associated metadata have been reviewed for accuracy and completeness and approved for release by the U.S. Geological Survey (USGS), no warranty expressed or implied is made regarding the display or utility of the data for other purposes, nor on all computer systems, nor shall the act of distribution constitute any such warranty.
Another script run in Python Notebooks (Image_PIDwork.ipnb) was used to mint a unique persistent identifier (image PID) for each image and placed in the header. Additionally, the persistent URL for the metadata record associated with this dataset was also inserted into the image header.
XMP tag:
XMP:ImageUniqueID: unique for each image
XMP:ExternalMetadataLink: https://www1.usgs.gov/pir/api/identifiers/USGS:633c9151d34e900e86cf1aa4
From the command-line in Cygwin, the image name was also added to the header with the following command: exiftool.exe -P "-originalfilename<Filename" *.jpg
From the command-line in Cygwin, the image name was also added to another element in the header with the following command: exiftool.exe -P "-XMP:PreservedFileName<Filename" *.jpg
Finally, another command was run from within a Python notebook in order to duplicate information to appropriate XMP headers:
exiftool -P "-XMP-photoshop:Credit<IPTC:Credit" "-XMP-iptcCore:CreatorWorkEmail<IPTC:Contact" "-XMP-dc:Rights<EXIF:Copyright" "-XMP-dc:Description<EXIF:ImageDescription" "-XMP-exif:all<GPS:all" "-XMP-exif:GPSLatitude<Composite:GPSLatitude" "-XMP-exif:GPSLongitude<Composite:GPSLongitude" "-XMP-exif:GPSDateTime<Composite:GPSDateTime" "-XMP-photoshop:DateCreated<EXIF:DateTimeOriginal" "-XMP-xmp:ModifyDate<EXIF:ModifyDate" "-XMP-dc:Creator<EXIF:Artist" "-XMP-tiff:Make<EXIF:Make" "-XMP-tiff:Model<EXIF:Model" *.jpg
To extract the information (except for OriginalFileName, PreservedFileName, and the duplicated tags) from the image headers using ExifTool, the following example command can be used (tested with ExifTool version 11.54, slight modifications of the command might be necessary depending on the operating system of the user):
exiftool.exe -csv -f -filename -GPSTimeStamp -GPSDateStamp -GPSLongitude -GPSLatitude -n -GPSAreaInformation -GPSMapDatum -ImageDescription -Artist -Credit -comment -contact -keywords -Caption -Copyright -CopyrightNotice -Caption-Abstract -UserComment -AttributionURL -UsageTerms -Author -ImageUniqueID -ExternalMetadataLink *.jpg > out.csv
The -csv option writes the information out in a comma-delimited format. The -n option formats the latitude and longitude as signed decimal degrees. Whether you use exiftool or exiftool.exe will depend on the operating system on which the command is being run.