libimage-exiftool-perl/config_files/guano.config

162 lines
6.1 KiB
Plaintext

#------------------------------------------------------------------------------
# File: Guano.config
#
# Description: User-defined Composite tag definitions to extract individual entries
# from the RIFF:Guano text block.
#
# Requires exiftool version 12.63+
#
# See GUANO - Grand Unified Acoustic Notation Ontology
# https://github.com/riggsd/guano-spec/blob/master/guano_specification.md
#
# The code itself is simply a regex match. If other entries are needed,
# then all that needs to be done is to copy/paste one of the blocks, change
# the name and edit the regex
#
# Examples:
# This will list the Make and Model from the Guano text block, if they exist
# exiftool -config Guano.config -GuanoModel -GuanoMake /path/to/files/
#
# Lists all the Guano entries in the Guano text block
# exiftool -config Guano.config -Guano* /path/to/files/
#
# Revisions: 2023/06/09 - Bryan K. Williams (aka StarGeek) Created
#------------------------------------------------------------------------------
%Image::ExifTool::UserDefined = (
'Image::ExifTool::Composite' => {
GuanoVersion => {
Require => 'Guano',
ValueConv => '$val =~ /GUANO\|Version:\s+(.*)/m ? $1 : undef',
},
GuanoMake => {
Require => 'Guano',
ValueConv => '$val =~ /Make:\s+(.*)/m ? $1 : undef',
},
GuanoModel => {
Require => 'Guano',
ValueConv => '$val =~ /Model:\s+(.*)/m ? $1 : undef',
},
GuanoFirmwareVersion => {
Require => 'Guano',
ValueConv => '$val =~ /Firmware Version:\s+(.*)/m ? $1 : undef',
},
GuanoSerial => {
Require => 'Guano',
ValueConv => '$val =~ /Serial:\s+(.*)/m ? $1 : undef',
},
GuanoTimestamp => {
Require => 'Guano',
Groups => { 2 => 'Time' },
ValueConv => '$val =~ /Timestamp:\s+(.*)/m ? $1 : undef',
PrintConv => '$self->ConvertDateTime($val)',
},
GuanoLocPosition => {
Require => 'Guano',
Groups => { 2 => 'Location' },
ValueConv => '$val =~ /Loc Position:\s+(.*)/m ? $1 : undef',
PrintConv => q{
require Image::ExifTool::GPS;
my @v = split ' ', $val;
return Image::ExifTool::GPS::ToDMS($self, $v[0], 1, "N") . ', ' .
Image::ExifTool::GPS::ToDMS($self, $v[1], 1, "E");
},
},
GuanoLocElevation => {
Require => 'Guano',
Groups => { 2 => 'Location' },
ValueConv => '$val =~ /Loc Elevation:\s+(.*)/m ? $1 : undef',
},
GuanoTemperatureInt => {
Require => 'Guano',
ValueConv => '$val =~ /Temperature Int:\s+(.*)/m ? $1 : undef',
},
GuanoFilterHP => {
Require => 'Guano',
ValueConv => '$val =~ /^Filter HP:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatBatteryVoltage => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Battery voltage:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatMicrophone => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Microphone:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatActivation => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Activation:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatZcSensitivity => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Zc Sensitivity:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatTriggerMinFreq => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Trigger min freq:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatTriggerMaxFreq => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Trigger max freq:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatMinEvent => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Min event:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatTriggerWindow => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Trigger Window:\s+(.*)/m ? $1 : undef',
},
GuanoAnabatMaximumFileDuration => {
Require => 'Guano',
ValueConv => '$val =~ /Anabat\|Maximum File Duration:\s+(.*)/m ? $1 : undef',
},
GuanoSBVersion => {
Require => 'Guano',
ValueConv => '$val =~ /SB\|Version:\s+(.*)/m ? $1 : undef',
},
GuanoSBSpeciesAutoID => {
Require => 'Guano',
ValueConv => '$val =~ /SB\|Species Auto ID:\s+(.*)/m ? $1 : undef',
},
GuanoSpeciesAutoID => {
Require => 'Guano',
ValueConv => '$val =~ /Species Auto ID:\s+(.*)/m ? $1 : undef',
},
GuanoSpeciesManualID => {
Require => 'Guano',
ValueConv => '$val =~ /Species Manual ID:\s+(.*)/m ? $1 : undef',
},
GuanoSampleRate => {
Require => 'Guano',
ValueConv => '$val =~ /Samplerate:\s+(.*)/m ? $1 : undef',
},
GuanoLength => {
Require => 'Guano',
ValueConv => '$val =~ /Length:\s+(.*)/m ? $1 : undef',
},
GuanoTE => {
Require => 'Guano',
ValueConv => '$val =~ /TE:\s+(.*)/m ? $1 : undef',
},
GuanoSBFilterHP => {
Require => 'Guano',
ValueConv => '$val =~ /SB\|Filter HP:\s+(.*)/m ? $1 : undef',
},
GuanoNote => {
Require => 'Guano',
ValueConv => '$val =~ /Note:\s+(.*)/m ? $1 : undef',
},
GuanoSBRegion => {
Require => 'Guano',
ValueConv => '$val =~ /SB\|Region:\s+(.*)/m ? $1 : undef',
},
GuanoSBClassifier => {
Require => 'Guano',
ValueConv => '$val =~ /SB\|Classifier:\s+(.*)/m ? $1 : undef',
},
},
);
#------------------------------------------------------------------------------
1; #end