""" Author: John Jakeman Created: 12/12/2005 Program used to convert a commer seperated .xya file consiting of X and Y corrdinates in degrees and an elevation in meters into an .xya file in which all quantities are measured in meters """ def convert_latlon_to_xycoords(lat,longt,origin): from math import cos, pi r_earth = 6.378135E+06 lat_origin,long_origin = origin # Evalulates distance in X-direction from origin for points in # Western Hemispehere if lat < 0: X = (360.0+lat-lat_origin)/360.0*abs(cos(longt*pi/180.0))*r_earth*2.0*pi elif lat < lat_origin: # Only needed when lat_origin > 0 X = (360.0-lat-lat_origin)/360.0*abs(cos(longt*pi/180.0))*r_earth*2.0*pi # Evaluates distance from origin in X-direction for points in # Eastern Hemisphere else: X = (lat-lat_origin)/360.0*abs(cos(longt*pi/180.0))*r_earth*2.0*pi # Calulates distance in Y-direction from a point to origin Y = abs((longt-long_origin)/360.0*2*pi*r_earth) if Y < 0 : Y = 2*pi*r_earth + Y return [X,Y] """ from Numeric import array, zeros, Float, asarray # Open .xya file to be converted filename = 'cairns_degrees.xya' fid = open(filename) # Skip first line line = fid.readline() # Read remaining lines lines = fid.readlines() fid.close() # Origin of cartesian system is the point (lat_origin, long_origin) lat_origin = 145.0 long_origin = -24.0 origin = lat_origin, long_origin # fields[0]: latitude # fields[1]: longitude # fields[2]: elevation # Open .xya file to be used to store new coordinates in meters filename = 'cairns_test.xya' fid = open(filename, "w") fid.write('elevation\n') for i, line in enumerate(lines): fields = line.split(',') X,Y = convert_latlon_to_xycoords(float(fields[0]),float(fields[1]),origin) # Write X and Y corrdinates and corresponding elevation to .xya file fid.write(repr(X) + ', ') fid.write(repr(Y) + ', ') fid.write(fields[2]) fid.close() """