[Tutor] data storage question

Colby Christensen colbychristensen at hotmail.com
Mon Aug 1 16:47:32 EDT 2016


I'm a novice programmer. I have a decent understanding of algorithms but I don't have a lot of computer science/software engineering experience. As a way to help me learn, I've begun a coordinate geometry program similar to the COGO program developed years ago at MIT. Currently, I store the points in a dictionary in the format point_number : [North, East]. I eventually will add a Z component to the points and possibly a description after I get enough of the horizontal geometry worked through. I would like to be able to save the point table so that I can have multiple projects. My main python script is below. It reads in a text file that contains commands to create/calculate the location of the various points. My question is what is a good method to store the point data outside of python? I eventually will also add the capability to define a baseline that consists of multiple points with some attributes to define relative locations along the baseline (stationing). 

I use enthought canopy express with python 2.7.11 on windows 10 64 bit. 

""" Coordinate geometry program """
import sys
from store_point import store_point
from clear_points import clear_points
from dump_points import dump_points
from redefine import redefine
from dist import dist
from locate_azimuth import locate_azimuth
from locate_bearing import locate_bearing
from locate_line import locate_line
from line_line_int import line_line_int
from parallel_line import parallel_line
from arc_line_pts import arc_line_pts
from divide_line import divide_line

try:
    infile = open(raw_input("Enter input file name; name.txt:"),'r')
except:
    print "Invalid filename"
    exit()

pt_table = {}
cmd_table = {"5":store_point, "7":clear_points, "8":dump_points,
                      "9":redefine, "10":dist, "11":locate_azimuth, "12":locate_bearing,
                      "15":locate_line, "18":parallel_line,
                      "19":line_line_int, "22":arc_line_pts, "40":divide_line}
count = 0

for line in infile:
    #print line
    args = line.split()
    cmd = args.pop(0)
    if cmd in cmd_table:
         func = cmd_table[cmd]
         func(pt_table, *args)

infile.close()

Thanks,
Colby 		 	   		  


More information about the Tutor mailing list