#------------------------------------------------------------------------------ # File: aerialgps.config # # Description: PhaseOne aerialgps namespace config file for Image::ExifTool # # Author: Phil Harvey # # Notes: This config file defines a new XMP namespace for the PhaseOne # camera 'aerialgps' tags. # # To activate this file, rename it to ".ExifTool_config" and # place it in your home directory or the exiftool application # directory. (On Mac and some Windows systems this must be done # via the command line since the GUI's may not allow filenames to # begin with a dot. Use the "rename" command in Windows or "mv" # on the Mac.) This causes ExifTool to automatically load the # file when run. Your home directory is determined by the first # defined of the following environment variables: # # 1. EXIFTOOL_HOME # 2. HOME # 3. HOMEDRIVE + HOMEPATH # 4. (the current directory) # # Alternatively, the -config option of the exiftool application # may be used to load a specific configuration file (note that # this must be the first option on the command line): # # exiftool -config example.config ... # # For detailed information on the definition of tag tables and # tag information hashes, see lib/Image/ExifTool/README. #------------------------------------------------------------------------------ use Image::ExifTool::XMP; # The %Image::ExifTool::UserDefined hash defines new tags to be added # to existing tables. %Image::ExifTool::UserDefined = ( # Adds new 'aerialgps' XMP namespace to the Main XMP table: 'Image::ExifTool::XMP::Main' => { aerialgps => { SubDirectory => { TagTable => 'Image::ExifTool::UserDefined::aerialgps', # (see the definition of this table below) }, }, }, ); # This table is referenced through a SubDirectory tag definition # in the %Image::ExifTool::UserDefined definition above. # The namespace prefix for these tags is 'aerialgps', which corresponds to # an ExifTool family 1 group name of 'XMP-aerialgps'. %Image::ExifTool::UserDefined::aerialgps = ( GROUPS => { 0 => 'XMP', 1 => 'XMP-aerialgps', 2 => 'Image' }, NAMESPACE => { 'aerialgps' => 'http://www.phaseone.com/aerialgps/' }, WRITABLE => 'string', # (default to string-type tags) GROUPS => { 2 => 'Location' }, GPSEventID => {}, GPSIMUPitch => { Writable => 'rational' }, GPSIMURoll => { Writable => 'rational' }, GPSIMUYaw => { Writable => 'rational' }, GPSIMUYawRef => { PrintConv => { M => 'Magnetic North', T => 'True North', }, }, GPSFlightLatitude => { %Image::ExifTool::XMP::latConv }, GPSFlightLongitude => { %Image::ExifTool::XMP::longConv }, GPSFlightAltitudeRef=> { Writable => 'integer', PrintConv => { OTHER => sub { my ($val, $inv) = @_; return undef unless $inv and $val =~ /^([-+0-9])/; return($1 eq '-' ? 1 : 0); }, 0 => 'Above Sea Level', 1 => 'Below Sea Level', }, }, GPSFlightAltitude => { Writable => 'rational' }, GPSLatitudeAccuracy => { Writable => 'rational' }, GPSLongitudeAccuracy=> { Writable => 'rational' }, GPSAltitudeAccuracy => { Writable => 'rational' }, GPSRelativeAltitude => { Writable => 'rational' }, GPSIMUFlightPitch => { Writable => 'rational' }, GPSIMUFlightRoll => { Writable => 'rational' }, GPSIMUFlightYaw => { Writable => 'rational' }, GPSIMUFlightYawRef => { PrintConv => { M => 'Magnetic North', T => 'True North', }, }, ); #------------------------------------------------------------------------------ 1; #end