안녕하세요 다음 코드가 있습니다.값을 전달하고이 함수를 사용하는 방법
import csv
import math
EASTING_BASE = 500
NORTHING_BASE = 500
def main():
global NORTHING_BASE
global EASTING_BASE
for i, a in getStationCoords():
statione = int(i)
stationn = int(a)
print statione,stationn
stationEasting = int(getStationCoords()[0][0])
stationNorthing = int(getStationCoords()[0][1])
for i in range(0, len(eastingList)):
print "Co-ordinates (" + str(eastingList[i]) + "," + str(northingList[i]) + ")"
print calculateDistance(NORTHING_BASE, EASTING_BASE, northingList[i], eastingList[i])
print calculateBearing(NORTHING_BASE, EASTING_BASE, northingList[i], eastingList[i])
def getStationCoords():
listStation = []
a_reader = None
a_reader = open('data.csv', 'rU')
a_csv_reader = csv.reader(a_reader)
a_csv_reader.next()
for i in [row[-2:] for row in a_csv_reader]:
listStation.append(i)
a_reader.close()
count = 0
sum = 0.0
a_reader = open('data.csv', 'rU')
a_csv_reader = csv.reader(a_reader)
#for row in a_csv_reader:
# if count != 0 and row[0] != '':
# sum = sum + float(row[0])
# count = count + 1
#print 'Number of lines is:',count
#print 'Sum is:',sum
return listStation
def main2():
global NORTHING_BASE
global EASTING_BASE
eastingList = []
northingList = []
def calculateDistance(northingOne, eastingOne, northingTwo, eastingTwo):
# Determine differences in eastings and northings
deltaEasting = eastingTwo - eastingOne
deltaNorthing = northingTwo - northingOne
# We don't need to worry about +/- as using pythag below
distance = (deltaEasting **2 + deltaNorthing **2) **0.5
# Return the value for distance
return distance
def calculateBearing(northingOne, eastingOne, northingTwo, eastingTwo):
diffEasting = eastingTwo - eastingOne
diffNorthing = northingTwo - northingOne
# Work out if in QI/II or QIII/IV
if diffEasting >= 0:
# This is in QI/II
if diffNorthing >0:
# This is in QI
bearing = math.atan(diffEasting/diffNorthing)
else:
# This is in QII
bearing = math.pi - math.atan(diffEasting/abs(diffNorthing))
else:
# This is in QIII/IV
if diffNorthing >0:
# This is in QIV
bearing = 2 * math.pi - math.atan(abs(diffEasting)/diffNorthing)
else:
# This is in QIII
bearing = math.pi + math.atan(abs(diffEasting)/abs(diffNorthing))
# Return the value
return bearing
main2()
main()
좋아, 그럼 내가 easting 및 northing 목록에 값을 배치해야합니다. 이하. 내 첫 main 함수는() 나는 끼 었어 다음
476050 7709929
473971 7707713
465676 7691097
515612 7702192
516655 7704405
519788 7713255
538466 7683341
는 Y 좌표와 X 좌표 목록으로 Y 좌표 (왼쪽)과 X 좌표 (오른쪽)에 대한 이러한 값을 얻는 방법입니다 생산하고 있습니다. 사람이 내가 main2()에있는 easting 및 northing 목록으로 가져 오는 방법에 대해 완전히 확신 할 수 없기 때문에 누군가 도와 줄 수 있습니까?
easting에서 northing 및 easting 값을 호출하여 함수를 올바르게 구현하고 있습니다. 북쪽 목록?
어떤 도움
이 많이 감사합니다.
그럼, 왼쪽에있는 모든 값을 별도의 목록에서 원하십니까? 그리고 오른쪽에있는 모든 사람들은 별도의 목록에 있습니까? – TerryA
@Haidro 예 thats 그것하시기 바랍니다. 왼쪽에있는 모든 값을 eastlist = []에 넣고 오른쪽에있는 모든 값을 northlist = []로 할 수 있습니까?/여기서는 어디에서 구현합니까? – Newbie
대답을 추가했습니다 – TerryA