User Tools

Site Tools


cs_lang:python:things-to-know:geographic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cs_lang:python:things-to-know:geographic [2012/06/20 11:17] cedriccs_lang:python:things-to-know:geographic [2012/06/20 11:21] (current) cedric
Line 1: Line 1:
 <code python> <code python>
 +def Deg2Rad(x):
 +    """
 +    Degrees to radians.
 +    """
 +    return x * (math.pi/180)
 +
 +def Rad2Deg(x):
 +    """
 +    Radians to degress.
 +    """
 +    return x * (180/math.pi)
 +
 +def CalcRad(lat):
 +    """
 +    Radius of curvature in meters at specified latitude.
 +    """
 +    a = 6378.137
 +    e2 = 0.081082 * 0.081082
 +    # the radius of curvature of an ellipsoidal Earth in the plane of a
 +    # meridian of latitude is given by
 +    #
 +    # R' = a * (1 - e^2) / (1 - e^2 * (sin(lat))^2)^(3/2)
 +    #
 +    # where a is the equatorial radius,
 +    # b is the polar radius, and
 +    # e is the eccentricity of the ellipsoid = sqrt(1 - b^2/a^2)
 +    #
 +    # a = 6378 km (3963 mi) Equatorial radius (surface to center distance)
 +    # b = 6356.752 km (3950 mi) Polar radius (surface to center distance)
 +    # e = 0.081082 Eccentricity
 +    sc = math.sin(Deg2Rad(lat))
 +    x = a * (1.0 - e2)
 +    z = 1.0 - e2 * sc * sc
 +    y = pow(z, 1.5)
 +    r = x / y
 +
 +    r = r * 1000.0      # Convert to meters
 +    return r
 +
 +
 def EarthDistance((lat1, lon1), (lat2, lon2)): def EarthDistance((lat1, lon1), (lat2, lon2)):
     """     """
Line 20: Line 60:
         a = -1         a = -1
     return CalcRad((lat1+lat2) / 2) * math.acos(a)     return CalcRad((lat1+lat2) / 2) * math.acos(a)
-</code> 
  
-<code python> 
 def MeterOffset((lat1, lon1), (lat2, lon2)): def MeterOffset((lat1, lon1), (lat2, lon2)):
     """     """
Line 34: Line 72:
         dx *= -1         dx *= -1
     return (dx, dy)     return (dx, dy)
-</code> 
- 
-<code python> 
-def CalcRad(lat): 
-    """ 
-    Radius of curvature in meters at specified latitude. 
-    """ 
-    a = 6378.137 
-    e2 = 0.081082 * 0.081082 
-    # the radius of curvature of an ellipsoidal Earth in the plane of a 
-    # meridian of latitude is given by 
-    # 
-    # R' = a * (1 - e^2) / (1 - e^2 * (sin(lat))^2)^(3/2) 
-    # 
-    # where a is the equatorial radius, 
-    # b is the polar radius, and 
-    # e is the eccentricity of the ellipsoid = sqrt(1 - b^2/a^2) 
-    # 
-    # a = 6378 km (3963 mi) Equatorial radius (surface to center distance) 
-    # b = 6356.752 km (3950 mi) Polar radius (surface to center distance) 
-    # e = 0.081082 Eccentricity 
-    sc = math.sin(Deg2Rad(lat)) 
-    x = a * (1.0 - e2) 
-    z = 1.0 - e2 * sc * sc 
-    y = pow(z, 1.5) 
-    r = x / y 
- 
-    r = r * 1000.0      # Convert to meters 
-    return rime.mktime(time.strptime(date_time, pattern))) 
-print epoch 
 </code> </code>
cs_lang/python/things-to-know/geographic.1340183859.txt.gz · Last modified: 2012/06/20 11:17 by cedric