Index: anuga_core/source/anuga/coordinate_transforms/redfearn.py
===================================================================
--- anuga_core/source/anuga/coordinate_transforms/redfearn.py	(revision 4198)
+++ anuga_core/source/anuga/coordinate_transforms/redfearn.py	(revision 4199)
@@ -205,5 +205,5 @@
         new_geo = Geo_reference(zone)
         old_geo.reconcile_zones(new_geo)        
-        utm_points.append([easting, northing])
+        utm_points.append([northing, easting])
 
     return utm_points, old_geo.get_zone()
Index: anuga_core/source/anuga/coordinate_transforms/test_redfearn.py
===================================================================
--- anuga_core/source/anuga/coordinate_transforms/test_redfearn.py	(revision 4198)
+++ anuga_core/source/anuga/coordinate_transforms/test_redfearn.py	(revision 4199)
@@ -158,8 +158,8 @@
         points, zone = convert_from_latlon_to_utm(latitudes=lats, longitudes=longs)
 
-        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)
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
         self.failUnless(zone == 56,
                         'Bad zone error!')
@@ -230,8 +230,9 @@
         points, zone = convert_from_latlon_to_utm(points=points)
         #print "points",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)
+       
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
         self.failUnless(zone == 56,
                         'Bad zone error!')
Index: anuga_core/source/anuga/geospatial_data/geospatial_data.py
===================================================================
--- anuga_core/source/anuga/geospatial_data/geospatial_data.py	(revision 4198)
+++ anuga_core/source/anuga/geospatial_data/geospatial_data.py	(revision 4199)
@@ -16,5 +16,8 @@
     
 from anuga.utilities.numerical_tools import ensure_numeric
-from anuga.coordinate_transforms.geo_reference import Geo_reference, TitleError
+
+from anuga.coordinate_transforms.lat_long_UTM_conversion import UTMtoLL
+from anuga.coordinate_transforms.geo_reference import Geo_reference, \
+     TitleError, DEFAULT_ZONE 
 from anuga.coordinate_transforms.redfearn import convert_from_latlon_to_utm
 from anuga.utilities.anuga_exceptions import ANUGAError
@@ -332,6 +335,9 @@
         return self.geo_reference
        
-    def get_data_points(self, absolute=True, geo_reference=None):
-        """Get coordinates for all data points as an Nx2 array
+    def get_data_points(self, absolute=True, geo_reference=None,
+                        as_lat_long=False):
+        """Get coordinates for all data points as an Nx2 array.
+        Column 0 is x values
+        Column 1 is y values
 
         If absolute is False returned coordinates are relative to the
@@ -344,5 +350,23 @@
         Default: absolute is True.
         """
-
+        if as_lat_long is True:
+            msg = "Points need a zone to be converted into lats and longs"
+            assert self.geo_reference is not None, msg
+            zone = self.geo_reference.get_zone()
+            assert self.geo_reference.get_zone() is not DEFAULT_ZONE, msg
+            lats_longs = []
+            for point in self.get_data_points(True):
+                ### UTMtoLL(northing, easting, zone,
+                print "point[0]",point[0]
+                print "point[1]",point[1]
+                print "zone",zone
+                results = UTMtoLL(point[0],point[1], zone)
+                print "results", results
+                lat_calced, long_calced = UTMtoLL(point[0],point[1], zone)
+                print "lat_calced", lat_calced
+                print "long_calced", long_calced
+                lats_longs.append(UTMtoLL(point[0],point[1], zone))
+            
+            
         if absolute is True and geo_reference is None:
             return self.geo_reference.get_absolute(self.data_points)
@@ -353,5 +377,4 @@
         else:
             return self.data_points
-        
     
     def get_attributes(self, attribute_name=None):
Index: anuga_core/source/anuga/geospatial_data/test_geospatial_data.py
===================================================================
--- anuga_core/source/anuga/geospatial_data/test_geospatial_data.py	(revision 4198)
+++ anuga_core/source/anuga/geospatial_data/test_geospatial_data.py	(revision 4199)
@@ -162,5 +162,35 @@
         assert allclose(results, points_rel)
 
-        
+  
+    def DSG_test_get_data_points_lat_long(self):
+        # lat long [-30.],[130]
+        #Zone:   52    
+        #Easting:  596450.153  Northing: 6680793.777 
+        # lat long [-32.],[131]
+        #Zone:   52    
+        #Easting:  688927.638  Northing: 6457816.509 
+        
+        points_Lat_long = [[-30.,130], [-32,131]]
+        
+        spatial = Geospatial_data(latitudes=[-30, -32.],
+                                  longitudes=[130, 131])
+
+        results = spatial.get_data_points()
+        print "results UTM",results
+        
+        results = spatial.get_data_points(as_lat_long=True)
+        print "results",results 
+        assert allclose(results, points_rel)
+        
+        x_p = -1770
+        y_p = 4.01
+        geo_ref = Geo_reference(56, x_p, y_p)
+        points_rel = geo_ref.change_points_geo_ref(points_ab)
+        results = spatial.get_data_points \
+                  ( geo_reference=geo_ref)
+        
+        assert allclose(results, points_rel)
+
+              
     def test_set_geo_reference(self):
         points_ab = [[12.5,34.7],[-4.5,-60.0]]
@@ -1876,8 +1906,9 @@
         points = results.get_data_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)
+
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
         
       
@@ -1897,9 +1928,9 @@
         points = results.get_data_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)
-
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
+        
           
     def test_load_csv_lat_long_bad(self):
@@ -1925,4 +1956,8 @@
         
     def test_lat_long(self):
+        #Zone:   56    
+        #Easting:  308728.009  Northing: 6180432.601 
+        #Latitude:   -34  30 ' 0.00000 ''  Longitude: 150  55 ' 0.00000 '' 
+
         lat_gong = degminsec2decimal_degrees(-34,30,0.)
         lon_gong = degminsec2decimal_degrees(150,55,0.)
@@ -1937,8 +1972,8 @@
         points = gsd.get_data_points(absolute=True)
         
-        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)
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
         self.failUnless(gsd.get_geo_reference().get_zone() == 56,
                         'Bad zone error!')
@@ -1990,8 +2025,9 @@
         points = gsd.get_data_points(absolute=True)
         
-        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)
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
+        
         self.failUnless(gsd.get_geo_reference().get_zone() == 56,
                         'Bad zone error!')
Index: anuga_core/source/anuga/shallow_water/test_data_manager.py
===================================================================
--- anuga_core/source/anuga/shallow_water/test_data_manager.py	(revision 4198)
+++ anuga_core/source/anuga/shallow_water/test_data_manager.py	(revision 4199)
@@ -4532,8 +4532,10 @@
         points = gsd.get_data_points(absolute=True)
         
-        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)
+
+        assert allclose(points[0][0], 6180432.601)
+        assert allclose(points[0][1], 308728.009)
+        assert allclose(points[1][0], 6233785.284)
+        assert allclose(points[1][1], 222908.705)
+        
         self.failUnless(gsd.get_geo_reference().get_zone() == 56,
                         'Bad zone error!')
