[Tutor] import values, calculate distance

LN A-go-go lnartist at yahoo.com
Thu Aug 21 04:12:10 CEST 2014


Python Mentors,

I can't get this code to run and at times, I can't even save it.  It is sections of code used from previous exercises, put it together and it just isn't right.  

Thank-you,
LN

The method is as follows:
	1. Run the distance calculations for pt1 to all other points, and print or save the results. 
	2. Set a holding variable for pt1 values, then switch the values from pt1 to pt2 (so pt2 is now in the first position of your coordinate list). 
	3. Calculate the new distances for pt2 to all other points, and print or save the results. 
	4. Switch pt2 and pt1 so that they are back in their original positions. 
	5. Re-set the holding variable for pt1 values, then switch the values from pt1 to pt3 (so pt3 is now in the first position of your coordinate list). Calculate the new distances for pt3 to all other points, and print or save the results. 
… continue with this method until all points are done. 
Here is the text file of points:

ID X Y
PT1 2.6 8.7
PT2 5.6 10.3
PT3 8.9 45.7
PT4 10.4 6.2
PT5 2.1 21.4
PT6 8.7 78.2
PT7 44.5 15.2
PT8 23.6 45.8
PT9 43.1 2.3
PT10 1.1 62.5






 
# Description: read in all of the given data file and then calculate 
# the distance between each of the data points and then write or print out the results 
# to a new text file.

# Open path to file, readlines and create variables, run a 'while' loop, split the line (initialize with import string) into the three variable lists
infile = open("z:/filepath/coordinate.txt","r")
line = infile.readline()
import math
import string
IDCODE = []
XCOORDINATE = []
YCOORDINATE = []
n = 0
while True:
 line = infile.readline()
 if not line: break
 ID,X,Y = string.split(line)
 XNUM = float(X)
 YNUM = float(Y)
 n = n + 1
 XCOORDINATE.append(XNUM)
 YCOORDINATE.append(YNUM)
 IDCODE.append(ID) 
 
print (XCOORDINATE, YCOORDINATE), IDCODE
#
# activate the math modular function (use import math function) in order to use the 
#square root function
dist = {}
def distance(n,p,s, XCOORDINATE, YCOORDINATE, IDCODE):
 import math
 p = 1
 s = 0
 DP = []
 while p < n:
   DT= math.sqrt((XCOORDINATE[p]-XCOORDINATE[0])**2 + (YCOORDINATE[p]-YCOORDINATE[0])**2)
  DP.append(DT)
  p = p + 1
 while s < n-1:
  dist[DP[s]] = IDCOORDINATE[s+1]
  s = s + 1
  
  for key in sorted(dist):
   print dist[key],[key]
 return dist
def switch(n,XCOORDINATE, YCOORDINATE, IDCODE):
 import math, string
 idcodezero = IDCODE[0]
 xcodezero = XCOORDINATE[0]
 ycodezero = YCOORDINATE[0]
 z = 1
 while z <=n - 1:
  IDCODE[0] = IDCODE[z]
  XCOORDINATE[0] = XCOORDINATE[z]
  YCOORDINATE[0] = YCOORDINATE[z]
  IDCODE[z] = IDCODEzero
  XCOORDINATE[z] = XCOORDINATEzero
  YCOORDINATE[z] = YCOORDINATEzero
  DR = distance(n,XCOORDINATE, YCOORDINATE, IDCODE)
  IDCODE[z] = IDCODE[0]
  XCOORDINATE[z] = XCOORDINATE[0]
  YCOORDINATE[z] = YCOORDINATE[0]
  IDCODE[0] = IDCODEzero
  XCOORDINATE[0] = XCOORDINATEzero
  YCOORDINATE[0] = YCOORDINATEzero
  DP = []
  z = z + 1
  
#
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20140820/02d3f515/attachment.html>


More information about the Tutor mailing list