--- a/bin/ptovariable
+++ b/bin/ptovariable
@@ -13,6 +13,10 @@
 my @r;
 my @p;
 my @y;
+my $translations;
+my @TrX;
+my @TrY;
+my @TrZ;
 my $view = 0;
 my $barrel = 0;
 my $centre = 0;
@@ -34,6 +38,10 @@
             'r=i' => \@r,
             'p=i' => \@p,
             'y=i' => \@y,
+            'translations' => \$translations,
+            'TrX=i' => \@TrX,
+            'TrY=i' => \@TrY,
+            'TrZ=i' => \@TrZ,
             'vignetting' => \$vignetting,
             'vignetting-centre' => \$vignetting_centre,
             'response' => \$response,
@@ -81,6 +89,10 @@
     $variable->{$index}->{p} = $positions || $pitch;
     $variable->{$index}->{y} = $positions || $yaw;
 
+    $variable->{$index}->{TrX} = $translations;
+    $variable->{$index}->{TrY} = $translations;
+    $variable->{$index}->{TrZ} = $translations;
+
     $variable->{$index}->{Eev} = $exposure;
 
     $variable->{$index}->{Er} = $white_balance;
@@ -90,6 +102,10 @@
 $variable->{$_}->{r} = 1 for (@r);
 $variable->{$_}->{p} = 1 for (@p);
 $variable->{$_}->{y} = 1 for (@y);
+
+$variable->{$_}->{TrX} = 1 for (@TrX);
+$variable->{$_}->{TrY} = 1 for (@TrY);
+$variable->{$_}->{TrZ} = 1 for (@TrZ);
 
 $pto->Write ($path_output);
 
@@ -111,6 +127,10 @@
        -r <num> <num> <..>  Optimise roll for specified images
        -p <num> <num> <..>  Optimise pitch for specified images
        -y <num> <num> <..>  Optimise yaw for specified images
+       --translations       Optimise XYZ mosaic translations for all images except anchor
+       -TrX <num> <..>      Optimise X translation for specified images
+       -TrY <num> <..>      Optimise Y translation for specified images
+       -TrZ <num> <..>      Optimise Z translation for specified images
        --view               Optimise angle of view
        --barrel             Optimise barrel distortion
        --centre             Optimise optical centre