Index: /anuga_core/source/anuga/coordinate_transforms/geo_reference.py
===================================================================
--- /anuga_core/source/anuga/coordinate_transforms/geo_reference.py	(revision 3613)
+++ /anuga_core/source/anuga/coordinate_transforms/geo_reference.py	(revision 3614)
@@ -237,7 +237,7 @@
             other.zone = self.zone            
         else:    
-            msg = 'Both geospatial_data objects must be in the same \
-            ZONE to allow reconciliation. I got zone %d and %d'\
-            %(self.zone, other.zone)
+            msg = 'Both geospatial_data objects must be in the same '+\
+                  'ZONE to allow reconciliation. I got zone %d and %d'\
+                  %(self.zone, other.zone)
             raise ANUGAError, msg
     
Index: /anuga_core/source/anuga/coordinate_transforms/redfearn.py
===================================================================
--- /anuga_core/source/anuga/coordinate_transforms/redfearn.py	(revision 3613)
+++ /anuga_core/source/anuga/coordinate_transforms/redfearn.py	(revision 3614)
@@ -163,18 +163,53 @@
 
 
-# FIXME (Ole) 
-def convert_points_from_latlon_to_utm(latitudes, longitudes,
+
+def convert_points_from_latlon_to_utm(points,
                                       false_easting=None,
                                       false_northing=None):
-    """Wrapper
-    """
-    
-    return convert_lats_longs(latitudes,
-                              longitudes,
-                              false_easting,
-                              false_northing)
-
-    
-
+    """Convert a list of points given in latitude and longitude to UTM
+
+
+    Input
+
+    points: list of points given in decimal degrees (latitude, longitude)
+    false_easting (optional)
+    false_northing (optional)
+
+    Output
+
+    zone:   UTM zone for converted points
+    points: List of converted points
+
+
+    Notes
+
+    Assume the false_easting and false_northing are the same for each list.
+    If points end up belonging to different UTM zones, an ANUGAerror is thrown.
+
+    
+    
+    """
+
+    old_geo = Geo_reference()    
+    utm_points = []
+    for point in points:
+        zone, easting, northing = redfearn(float(point[0]),
+                                           float(point[1]),
+                                           false_easting=false_easting,
+                                           false_northing=false_northing)
+
+        new_geo = Geo_reference(zone)
+        old_geo.reconcile_zones(new_geo)
+        
+        utm_points.append([easting, northing])
+
+
+    return old_geo.get_zone(), utm_points
+
+
+    
+
+
+# FIXME (Ole): Is this not supersedede by the above?
 def convert_lats_longs(latitudes,
                        longitudes,
Index: /anuga_core/source/anuga/coordinate_transforms/test_redfearn.py
===================================================================
--- /anuga_core/source/anuga/coordinate_transforms/test_redfearn.py	(revision 3613)
+++ /anuga_core/source/anuga/coordinate_transforms/test_redfearn.py	(revision 3614)
@@ -164,4 +164,5 @@
         self.failUnless(zone == 56,
                         'Bad zone error!')
+        
     def test_convert_lats_longs2(self):
 
@@ -180,4 +181,5 @@
         lats = [lat_gong, lat_2]
         longs = [lon_gong, lon_2]
+        
         try:
             zone, points = convert_lats_longs(lats, longs)
@@ -185,6 +187,6 @@
             pass
         else:
-            self.failUnless(0 ==1,
-                        'Error not thrown error!')
+            self.failUnless(False,
+                            'Error not thrown error!')
             
     def test_convert_lats_longs3(self):
@@ -208,6 +210,78 @@
             pass
         else:
-            self.failUnless(0 ==1,
-                        'Error not thrown error!')
+            self.failUnless(False,
+                            'Error not thrown error!')
+
+    # Similar test for alternative interface        
+    def test_convert_latlon_to_UTM1(self):
+
+        #Site Name:    GDA-MGA: (UTM with GRS80 ellipsoid) 
+        #Zone:   56    
+        #Easting:  222908.705  Northing: 6233785.284 
+        #Latitude:   -34  0 ' 0.00000 ''  Longitude: 150  0 ' 0.00000 '' 
+        #Grid Convergence:  -1  40 ' 43.13 ''  Point Scale: 1.00054660 
+
+        lat_gong = degminsec2decimal_degrees(-34,30,0.)
+        lon_gong = degminsec2decimal_degrees(150,55,0.)
+        
+        lat_2 = degminsec2decimal_degrees(-34,00,0.)
+        lon_2 = degminsec2decimal_degrees(150,00,0.)
+        
+        points = [[lat_gong, lon_gong], [lat_2, lon_2]]
+        zone, points = convert_points_from_latlon_to_utm(points)
+
+        assert allclose(points[0][0], 308728.009)
+        assert allclose(points[0][1], 6180432.601)
+        assert allclose(points[1][0],  222908.705)
+        assert allclose(points[1][1], 6233785.284)
+        self.failUnless(zone == 56,
+                        'Bad zone error!')
+
+    def test_convert_latlon_to_UTM2(self):       
+
+        #Site Name:    GDA-MGA: (UTM with GRS80 ellipsoid) 
+        #Zone:   56    
+        #Easting:  222908.705  Northing: 6233785.284 
+        #Latitude:   -34  0 ' 0.00000 ''  Longitude: 150  0 ' 0.00000 '' 
+        #Grid Convergence:  -1  40 ' 43.13 ''  Point Scale: 1.00054660
+
+        lat_gong = degminsec2decimal_degrees(-34,30,0.)
+        lon_gong = degminsec2decimal_degrees(150,55,0.)
+        
+        lat_2 = degminsec2decimal_degrees(34,00,0.)
+        lon_2 = degminsec2decimal_degrees(100,00,0.)
+
+        points = [[lat_gong, lon_gong], [lat_2, lon_2]]
+
+        try:
+            zone, points = convert_points_from_latlon_to_utm(points)            
+        except ANUGAError:
+            pass
+        else:
+            self.fail('Error not thrown error!')
+
+    def test_convert_latlon_to_UTM3(self):            
+
+        #Site Name:    GDA-MGA: (UTM with GRS80 ellipsoid) 
+        #Zone:   56    
+        #Easting:  222908.705  Northing: 6233785.284 
+        #Latitude:   -34  0 ' 0.00000 ''  Longitude: 150  0 ' 0.00000 '' 
+        #Grid Convergence:  -1  40 ' 43.13 ''  Point Scale: 1.00054660 
+
+        lat_gong = "-34.5"
+        lon_gong = "150.916666667"
+        lat_2 = degminsec2decimal_degrees(34,00,0.)
+        lon_2 = degminsec2decimal_degrees(100,00,0.)
+
+        points = [[lat_gong, lon_gong], [lat_2, lon_2]]
+
+        try:
+            zone, points = convert_points_from_latlon_to_utm(points)                        
+        except ANUGAError:
+            pass
+        else:
+            self.fail('Error not thrown error!')
+
+            
 #-------------------------------------------------------------
 if __name__ == "__main__":
