All extrinsic calibration ground control point images were given additional information required by the USGS to the exchangeable image file format (EXIF) and other imagery headers using PyExifTool Python library (
https://pypi.org/project/PyExifTool/, version: 0.5.5). All extrinsic photos were given EXIF header information in the directory with all the photos by assigning all the tags in a Python dictionary object to each photo using PyExifTool. The following describes the Python dictionary object with each entry in the dictionary being a tag-value pair: tags = { 'Copyright': 'Public Domain', 'CopyrightNotice': 'Public Domain - please credit U.S. Geological Survey', 'Artist': 'USGS SPCMSC', 'Make': 'FLIR','Model': 'BFLY-PGE-50S5C-C','UserComment': ‘The following nested dictionary contains the cameras intrinsic and extrinsic calibration parameters. Intrinsic camera parameters use the Brown distortion model (Brown, D.C., 1971. "Close-Range Camera Calibration." Photogrammetric Engineering), using the Camera Calibration Toolbox for Matlab by Jean-Yves Bouguet (
https://doi.org/10.22002/D1.20164). Extrinsic calibration parameters were computed using the CIRN Quantitative Coastal Imaging Toolbox (Bruder, B. L. and Brodie, K. L., 2020, "CIRN Quantitative Coastal Imaging Toolbox.", SoftwareX 12 (10052),
https://doi.org/10.1016/j.softx.2020.100582.)', 'GPSLatitude': '18.34810272', 'GPSLongitude': '-67.26319029', 'GPSMapDatum': 'EPSG:6318 (NAD83_National_Spatial_Reference_System_2011)', 'GPSLatitudeRef': 'N', 'GPSLongitudeRef': 'W', 'Credit': 'U.S. Geological Survey', 'Contact': 'gs-g-spcmsc_data_inquiries@usgs.gov', '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", 'AttributionURL': '
https://doi.org/10.5066/P142AXUJ', 'ExternalMetadataLink':'
https://www1.usgs.gov/pir/api/identifiers/USGS:2cc439a0-ce48-49df-bc9f-78e8fa85b0f2', 'Contributor': 'Shawn R. Harrison, Mark L. Buckley, Cordell Johnson, Daniel J. Nowacki, Miguel Canals, Colin Evans, Joshua Logan, Curt D. Storlazzi, Justin J. Birchler, Margaret L. Palmsten, Eric Swanson, Emily L. Johnson', 'XMP-photoshop:Credit': 'U.S. Geological Survey', 'iptcCore:CreatorWorkEmail': 'gs-g-spcmsc_data_inquiries@usgs.gov','Rights': 'Public Domain', 'Keywords' : "Tres Palmas, Rincón, Puerto Rico, CoastCam, USGS, intrinsic calibration, snapshot, remote sensing, ground control point", 'ImageDescription': 'This image was captured from a stationary mounted camera at Tres Palmas, Rincón, Puerto Rico. Field Activity Number: 2019-675-FA (
https://cmgds.marine.usgs.gov/fan_info.php?fan=2019-675-FA', 'Description': 'This image was captured from a stationary mounted camera at Tres Palmas, Rincón, Puerto Rico. Field Activity Number: 2019-675-FA (
https://cmgds.marine.usgs.gov/fan_info.php?fan=2019-675-FA)'}. If there were errors generating keywords with the Python script, additional keywords were added to the imagery headers for all of the IO images using the following command: 'exiftool -sep ", " -iptc:keywords="Tres Palmas, Rincón, Puerto Rico, CoastCam, USGS, extrinsic calibration" *.jpg'. The only tag which can have a different value from image to image is GPSDateStamp. Depending on the date the photo was captured, the value in the GPSDatestamp tag changes. The UserComment EXIF metadata field was used to store the camera intrinsics and extrinsics in the image metadata. The UserComment has a nested dictionary structure. The highest-level dictionary contains two nested dictionaries as well as a note explaining the structure of the UserComment field. One nested dictionary contains the actual intrinsic and extrinsic data variables. The other nested dictionary contains text descriptions for each of the variables in the dictionary of data variables.
To read out the imagery header information to a CSV file the command is: 'exiftool -csv *.jpg > allheaders.csv'. Specific tags may be specified with this command, if preferred.