Tagging my first roll of film

Discussion in 'Digital Photography' started by FrenchKheldar, Mar 31, 2009.

  1. FrenchKheldar macrumors member

    Joined:
    May 1, 2006
    Location:
    Atlanta, GA
    #1
    http://www.flickr.com/photos/frenchkheldar/tags/roll00001/

    Shot with a Nikon N80 on Ilford Delta 100 B&W all over Georgia... I had a lot of fun and I really enjoyed the different experience from shooting digital. Lot more thinking, lot more care on each picture which resulted in a pretty good hit/miss ratio. I'm looking forward to the Spring colors with some sweet Velvia film !

    Let me know what you think !
    [​IMG]

    So here I am, shooting my first roll of film ever and wondering if and what I should be recording while I shoot. Do you have a strict workflow you're following? Do you even write down where and when shots have been taken?

    Since it was my first time, and since I'm pretty disorganized, I did my best trying to record the date, place, and main parameters (f, A, S, metering, lens, focal, ...) of each shot. But when you;re on a hike, it's kind of a pain :) Anyway, I ended up with a slightly spotty 15x36 spreadsheet and I needed to find a good way to use this data to tag my scanned film. On a side note, using an iPhone to edit that spreadsheet on the fly should be pretty handy !

    Anyway, since I'm hoping to shoot more film in the future, I decided to spend some time writing a perl script to translate this spreadsheet into exiftool commands so that the tagging of my pics would be as seamless as possible. It's like my 2nd perl script ever, so I'm welcoming any criticism or improvement to it... It's not very elegant and I've just used for 1 roll of film, but if you find it useful, please feel free to help yourself... Honestly, once I found the CSV parser module, it was really straightforward...

    If you don't care about the perl script, I'm still curious about your strategy dealing with film in a digital world !

    Thanks for your time !

    Code:
        #!/usr/bin/perl
        use strict;
        use warnings;
        use Text::CSV;
    
        my $file = 'Roll_00001';
        my $script = 'exif_Roll_00001';
        my $name = 'Your Name';
    
        my $csv = Text::CSV->new();
    
        open (CSV, "<", $file) or die $!;
        open (OUT, ">", $script) or die $!;
    
        while (<CSV>) {
            if ($csv->parse($_)) {
                my @columns = $csv->fields();
                print OUT "exiftool -Credit=\"$name\" -Make=\"NIKON CORPORATION\" -Model=\"NIKON N80\" -Keywords+=\"Nikon\" -Keywords+=\"N80\" -Keywords+=\"Film\" ";
    
    ##################################################################
    ##################################################################
    #########     TO BE CHANGED FOR EACH ROLL !!!!!!  ################
    ##################################################################
    ##################################################################
                print OUT "-Keywords+=\"Ilford\" -Keywords+=\"Delta 100\" -Keywords+=\"B&W\" -Keywords+=\"Scanned\" -Keywords+=\"E6Lab\"  -Keywords+=\"Roll_00001\" ";
    
    # Exposure number
                my $exposure = $columns[0];
    #            print OUT "$exposure";
    
    # Filename
                my $filename = $columns[1];
    
    # Date and time
    # Need to replace - by :
                $columns[2] =~ s/\-/\:/g;
                my $date = $columns[2];
                my $time = $columns[3];
                print OUT "-ModifyDate=\"$date $time\" -CreateDate=\"$date $time\" -DateTimeOriginal=\"$date $time\" ";
    
    # Focal length
                my $focal = $columns[7];
                print OUT "-FocalLength=\"$focal\" -FocalLengthIn35mmFormat=\"$focal\" ";
    # Exposure time
                my $S = $columns[10];
                print OUT "-ExposureTime=\"$S\" ";
    # Aperture / f-stop
                my $A = $columns[9];
                print OUT "-FNumber=\"$A\" ";
    # ISO
                my $ISO = $columns[12];
                print OUT "-ISO=\"$ISO\" ";
    # Exposure compensation
                my $Exp_Comp = $columns[11];
                print OUT "-ExposureCompensation=\"$Exp_Comp\" ";
                
    # Lens info
                my $Lens = $columns[6];
                my $LensID = 0;
                my $min_f = "0"; my $max_f = "0";
                my $min_f_A = "0"; my $max_f_A = "0";
                if ($Lens =~ /35mm f2.0/) 
                { 
                   $Lens="35.0 mm f/2.0"; $LensID=26;
                   $min_f = "35"; $max_f = "35";
                   $min_f_A = "2.0"; $max_f_A = "2.0";
                }
                elsif ($Lens =~ /50mm f1.8/) 
                { 
                   $Lens="50.0 mm f/1.8"; $LensID=1;
                   $min_f = "50"; $max_f = "50";
                   $min_f_A = "1.8"; $max_f_A = "1.8";
                }
                elsif ($Lens =~ /105mm f2.8 Micro/)
                { 
                   $Lens="105.0 mm f2.8"; $LensID=31;
                   $min_f = "105"; $max_f = "105";
                   $min_f_A = "2.8"; $max_f_A = "2.8";
                }
                print OUT "-LensID=\"$LensID\" -Lens=\"$Lens\" -MinFocalLength=\"$min_f\" -MaxFocalLength=\"$max_f\" -MaxApertureAtMinFocal=\"$min_f_A\" -MaxApertureAtMaxFocal=\"$max_f_A\" ";
    
                print OUT " $filename";
                print OUT "\n";
    
    # I think I need a separate exiftool command for the tags that need hexadecimal values
                print OUT "exiftool -n ";
    
    # Metering mode
                if ($columns[14] =~ /Center/) { $columns[14] = 2; }
                elsif ($columns[14] =~ /Matrix/) { $columns[14] = 1; }
                print OUT "-MeteringMode=\"$columns[14]\" ";
    # Exposure mode
                if ($columns[8] =~ /A/) { $columns[8] = 3; }
                elsif ($columns[8] =~ /M/) { $columns[8] = 1; }
                elsif ($columns[8] =~ /S/) { $columns[8] = 4; }
                elsif ($columns[8] =~ /P/) { $columns[8] = 2; }
                else { $columns[8] = 0; }
                print OUT "-ExposureProgram=\"$columns[8]\" ";
    # Flash
                if ($columns[15] =~ /Y/) { $columns[15] = "0x9"; }
                else { $columns[15] = "0x0"; }
                print OUT "-Flash=\"$columns[15]\" ";
    
                print OUT " $filename";
                print OUT "\n";
                print OUT "\#\#\#\#\#\#\#\#\n";
            } else {
                my $err = $csv->error_input;
                print "Failed to parse line: $err";
            }
        }
        close CSV;
     
  2. ChrisA macrumors G4

    Joined:
    Jan 5, 2006
    Location:
    Redondo Beach, California
    #2
    When I would shoot film the only reason I would keep exposure data was if I were using a new film or developer and I was still trying to figure out a good ISO speed to use (no you can't realy just use the ISO printed on the box.) But I could run a test using just one roll

    As for remembering my time, place and subjects. I'd make a point to finish the roll of film before moving on. Never leave it in the camera longer then location.

    I would make notes after the film was processed, at least writing down the date, main subject and location. But I'd only record this information for the roll, not each frame.

    I'd put my film on plastic Printfile sheets and then those sheets in three ring binder boxes and the boxes in a four drawer file cabinet. I have many boxes of 35mm film, black and white and color negative and color slides and quite a bit of medium format too. I'm currently having this scanned. I'm sending out about 1,000 frames per batch.

    I may go back to shooting film but I'll go with 4x5 next time around. 35mm film is to much like using a DSLR, not different enough to justify the hassle really.
     

Share This Page