Changeset 3739


Ignore:
Timestamp:
Oct 11, 2006, 10:43:29 AM (17 years ago)
Author:
duncan
Message:

resolved convert lat longs

Location:
anuga_core/source/anuga
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/coordinate_transforms/redfearn.py

    r3616 r3739  
    164164
    165165
    166 def convert_points_from_latlon_to_utm(points,
    167                                       false_easting=None,
    168                                       false_northing=None):
    169     """Convert a list of points given in latitude and longitude to UTM
     166def convert_from_latlon_to_utm(latitudes=None,
     167                               longitudes=None,
     168                               points=None,
     169                               false_easting=None,
     170                               false_northing=None):
     171    """Convert latitude and longitude data to UTM as a list of coordinates.
    170172
    171173
    172174    Input
    173175
    174     points: list of points given in decimal degrees (latitude, longitude)
     176    points: list of points given in decimal degrees (latitude, longitude) or
     177    latitudes: list of latitudes   and
     178    longitudes: list of longitudes
    175179    false_easting (optional)
    176180    false_northing (optional)
     
    185189
    186190    Assume the false_easting and false_northing are the same for each list.
    187     If points end up belonging to different UTM zones, an ANUGAerror is thrown.
    188 
    189    
    190    
     191    If points end up belonging to different UTM zones, an ANUGAerror is thrown.   
    191192    """
    192193
    193194    old_geo = Geo_reference()   
    194195    utm_points = []
     196    if points == None:
     197       
     198        assert len(latitudes) == len(longitudes)
     199        points =  map(None, latitudes, longitudes)
    195200    for point in points:
    196201        zone, easting, northing = redfearn(float(point[0]),
     
    198203                                           false_easting=false_easting,
    199204                                           false_northing=false_northing)
    200 
    201205        new_geo = Geo_reference(zone)
    202         old_geo.reconcile_zones(new_geo)
    203        
     206        old_geo.reconcile_zones(new_geo)       
    204207        utm_points.append([easting, northing])
    205208
    206 
    207209    return utm_points, old_geo.get_zone()
    208 
    209 
    210    
    211 
    212 
    213 # FIXME (Ole): Is this not supersedede by the above?
    214 def convert_lats_longs(latitudes,
    215                        longitudes,
    216                        false_easting=None,
    217                        false_northing=None):
    218     """
    219     Redfearn a list of latitudes and longitudes.
    220 
    221     Assume the false_easting and false_northing are the same for each list.
    222 
    223     Note, if a zone turns out to be different, an ANUGAerror is thrown.
    224     """
    225     # Using geo_ref so there is only one point in the code where zones
    226     # are checked.
    227     old_geo = Geo_reference()
    228     points = []
    229     for lat, long in map(None, latitudes, longitudes,):
    230         zone, easting, northing = redfearn(float(lat),
    231                                            float(long),
    232                                            false_easting=false_easting,
    233                                            false_northing=false_northing)
    234         new_geo = Geo_reference(zone)
    235         old_geo.reconcile_zones(new_geo)
    236         #print "old_geo.get_zone()", old_geo.get_zone()
    237         points.append([easting, northing])
    238        
    239     return old_geo.get_zone(), points
  • anuga_core/source/anuga/coordinate_transforms/test_redfearn.py

    r3616 r3739  
    156156        lats = [lat_gong, lat_2]
    157157        longs = [lon_gong, lon_2]
    158         zone, points = convert_lats_longs(lats, longs)
     158        points, zone = convert_from_latlon_to_utm(lats, longs)
    159159
    160160        assert allclose(points[0][0], 308728.009)
     
    183183       
    184184        try:
    185             zone, points = convert_lats_longs(lats, longs)
     185            points, zone = convert_from_latlon_to_utm(lats, longs)
    186186        except ANUGAError:
    187187            pass
     
    206206        longs = [lon_gong, lon_2]
    207207        try:
    208             zone, points = convert_lats_longs(lats, longs)
     208            points, zone  = convert_from_latlon_to_utm(lats, longs)
    209209        except ANUGAError:
    210210            pass
     
    213213                            'Error not thrown error!')
    214214
    215     # Similar test for alternative interface       
    216215    def test_convert_latlon_to_UTM1(self):
    217216
     
    229228       
    230229        points = [[lat_gong, lon_gong], [lat_2, lon_2]]
    231         points, zone = convert_points_from_latlon_to_utm(points)
    232 
     230        points, zone = convert_from_latlon_to_utm(points=points)
     231        #print "points",points
    233232        assert allclose(points[0][0], 308728.009)
    234233        assert allclose(points[0][1], 6180432.601)
     
    255254
    256255        try:
    257             points, zone = convert_points_from_latlon_to_utm(points)           
     256            points, zone = convert_from_latlon_to_utm(points=points)           
    258257        except ANUGAError:
    259258            pass
     
    277276
    278277        try:
    279             points, zone = convert_points_from_latlon_to_utm(points)           
     278            points, zone = convert_from_latlon_to_utm(points=points)           
    280279        except ANUGAError:
    281280            pass
     
    287286if __name__ == "__main__":
    288287
     288    #mysuite = unittest.makeSuite(TestCase,'test_convert_latlon_to_UTM1')
    289289    mysuite = unittest.makeSuite(TestCase,'test')
    290290    runner = unittest.TextTestRunner()
  • anuga_core/source/anuga/geospatial_data/geospatial_data.py

    r3738 r3739  
    1111from anuga.utilities.numerical_tools import ensure_numeric
    1212from anuga.coordinate_transforms.geo_reference import Geo_reference, TitleError
    13 from anuga.coordinate_transforms.redfearn import convert_lats_longs
     13from anuga.coordinate_transforms.redfearn import convert_from_latlon_to_utm
    1414
    1515       
     
    324324            raise ValueError, msg
    325325       
    326         zone, data_points = convert_lats_longs(latitudes, longitudes)
     326        data_points, zone  = convert_from_latlon_to_utm(latitudes, longitudes)
    327327       
    328328        return data_points, Geo_reference(zone=zone)
Note: See TracChangeset for help on using the changeset viewer.