测量导线中如何连续保存x、y坐标?

2024-09-30 10:38:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python编写一个简单的土地测量程序。对于每个导线测量航段,我希望方位角以及南北和东西方向位置的变化都存储在一个名为corDict的字典中,以便以后检索和分析(点数也会很大)。在

我已经做到了这一点,但是对于如何迭代这个过程并不断地添加到数据存储字典中感到困惑。在

import ui
import math

class Survey:
def __init__(self, brng, dist,lat,dep):  #bearing to be entered like this:
    self.brng = brng.                    # 'S45.2341E'
    self.dist = dist
    self.lat = lat
    self.dep = dep


def course(self):
    b = self.brng
    quad = b[0] + b[-1]
    decpoint = b.find('.')                #find the decimal point     
    deg = int(b[1:decpoint])              #convert dms to decimal degrees
    mins = int(b[decpoint+1:-3])/60.
    sec = int(b[-3:-1])/3600.
    az = (deg+mins+sec)
    if quad == 'NE':
        az = az
    elif quad == 'SE':
        az = 180 - az
    elif quad == 'SW':
        az = 180 + az
    elif quad == 'NW':
        az = 360 - az                            #need to convert to radians
    lat = math.cos(az*math.pi/180)*self.dist     #lat - change in north-south 
    dep = math.sin(az*math.pi/180)*self.dist     #dep - change in east-west 
    return az, lat, dep


def store_az_lat_dep():
    #brng = input('Input bearing:  ')
    #dist = input('Input distance:  ')           #--> eventually for user input
    #xy = Survey(brng, dist, 10000, 10000)        #ignore the 10000,10000
    xy = Survey('45.0000E', 100, 10000, 10000)    #-->for example
    corDict = {xy.course()[0] : xy.course()[1:]}  
    print corDict

store_az_lat_dep()

Tags: toselfdistdefmathsurveyazlat

热门问题