예제 #1
0
    def readObsFile(self, filename):
        self.N, self.stationsOrder, self.obsOrder = Observations(filename)
        N = self.N
        self.obs1, self.ObsList = getObs(N)
        self.obs = obsSplit(self.obs1)
        for name in self.stationsOrder:
            item = QTreeWidgetItem(self.treeObs)
            item.setText(0, name)

            for t, j in self.obs[name].iteritems():
                subitem = QTreeWidgetItem(item)
                subitem.setText(1, t[0:-2])
                if j.type == 'direction':
                    subitem.setText(2, str(rad2dms(j.direction)))
                    subitem.setCheckState(0, Qt.Checked)
                if j.type == 'distance':
                    subitem.setCheckState(0, Qt.Checked)
                    subitem.setText(3, str(j.distance))
                if j.type == 'both':
                    subitem.setText(2, str(rad2dms(j.direction)))
                    subitem.setCheckState(0, Qt.Checked)
                    subitem.setText(3, str(j.distance))
                item.setCheckState(0, Qt.Checked)
예제 #2
0
 def readObsFile(self, filename):
     self.N,self.stationsOrder,self.obsOrder = Observations(filename)
     N=self.N
     self.obs1,self.ObsList=getObs(N)
     self.obs=obsSplit(self.obs1)
     for name in self.stationsOrder:
         item = QTreeWidgetItem(self.treeObs)
         item.setText(0, name)
         
         for t,j in self.obs[name].iteritems():
             subitem=QTreeWidgetItem(item)
             subitem.setText(1, t[0:-2])
             if j.type=='direction':
                 subitem.setText(2,str( rad2dms(j.direction))) 
                 subitem.setCheckState(0, Qt.Checked)          
             if j.type=='distance':
                 subitem.setCheckState(0, Qt.Checked)
                 subitem.setText(3, str(j.distance))
             if j.type=='both':
                 subitem.setText(2,str( rad2dms(j.direction))) 
                 subitem.setCheckState(0, Qt.Checked)
                 subitem.setText(3, str(j.distance))
             item.setCheckState(0, Qt.Checked)
예제 #3
0
    def saveToFileBowditch(self):
        ''' the bowditch needs to be setup such that the final coordinate is a known point, a single letter, then the reference 
        will be in the next 2 rows, with a dash next to the single letter'''
        fileName = QFileDialog.getSaveFileName(self, "Open Points File", "",
                                               "Excel (*.xlsx)", "")
        dX, dY = bowditchAdjust(self.provisionals, self.control,
                                self.obsOrder[-1][4:])
        self.bowditch.setText("not completed yet.")
        sumDistance = 0

        for i, j in self.obs1.iteritems():

            for p, t in j.iteritems():
                if self.provisionals.has_key(p):
                    sumDistance = sumDistance + t.distance

        dX = dX / sumDistance
        dY = dY / sumDistance
        fileName = str(fileName)
        workbook = xlsxwriter.Workbook(fileName)
        worksheet = workbook.add_worksheet()
        i = 0
        worksheet.write(0, 0, 'Leg')
        worksheet.write(0, 1, 'Dir/OrCorr./Dis')
        worksheet.write(0, 2, 'Name')
        worksheet.write(0, 3, 'Y')
        worksheet.write(0, 4, 'X')
        worksheet.write(2, 2, self.control[self.stationsOrder[0]].name)
        worksheet.write(2, 3, self.control[self.stationsOrder[0]].y)
        worksheet.write(2, 4, self.control[self.stationsOrder[0]].x)
        i += 4
        temp = self.stationsOrder[0]
        soFar = 0
        format = workbook.add_format()
        format.set_underline()

        for nm3 in self.stationsOrder:
            for nm, ob in self.obs1[nm3].iteritems():
                if self.provisionals.has_key(nm):
                    worksheet.write(i, 0, nm3 + "-" + nm)
                    worksheet.write(i, 1,
                                    rad2dms(self.obs1[nm3][nm].direction))
                    worksheet.write(i, 2, nm)

                    worksheet.write(i, 3, round(self.provisionals[nm].y, 3))
                    worksheet.write(i, 4, round(self.provisionals[nm].x, 3))
                    i += 1
                    ldist = self.obs1[nm3][nm].distance
                    soFar += ldist
                    worksheet.write(i, 3, soFar * dY)
                    worksheet.write(i, 4, soFar * dX)
                    i += 1
                    worksheet.write(
                        i, 1,
                        str(round(self.obs1[nm3][nm].distance, 2)) + "m")
                    worksheet.write(i, 2, nm, format)
                    worksheet.write(
                        i, 3, round(self.provisionals[nm].y + soFar * dY, 2),
                        format)
                    worksheet.write(
                        i, 4, round(self.provisionals[nm].x + soFar * dX, 2),
                        format)
                    i += 2

                    temp = nm

        workbook.close()
예제 #4
0
 def saveToFileBowditch(self):
     
     ''' the bowditch needs to be setup such that the final coordinate is a known point, a single letter, then the reference 
     will be in the next 2 rows, with a dash next to the single letter'''
     fileName = QFileDialog.getSaveFileName(self,
             "Open Points File",
             "",
             "Excel (*.xlsx)", "")
     dX,dY=bowditchAdjust(self.provisionals,self.control,self.obsOrder[-1][4:])
     self.bowditch.setText("not completed yet.")
     sumDistance=0
     
     for i,j in self.obs1.iteritems():
         
         for p,t in j.iteritems():
             if self.provisionals.has_key(p):
                 sumDistance=sumDistance+t.distance
     
     dX=dX/sumDistance        
     dY=dY/sumDistance        
     fileName=str(fileName)
     workbook = xlsxwriter.Workbook(fileName)
     worksheet = workbook.add_worksheet()
     i=0
     worksheet.write(0,0, 'Leg')
     worksheet.write(0,1, 'Dir/OrCorr./Dis')
     worksheet.write(0,2, 'Name')
     worksheet.write(0,3, 'Y')
     worksheet.write(0,4, 'X')
     worksheet.write(2,2, self.control[self.stationsOrder[0]].name)
     worksheet.write(2,3, self.control[self.stationsOrder[0]].y)
     worksheet.write(2,4, self.control[self.stationsOrder[0]].x)
     i+=4
     temp=self.stationsOrder[0]
     soFar=0
     format = workbook.add_format()
     format.set_underline()
 
    
     for nm3 in self.stationsOrder:
         for nm,ob in self.obs1[nm3].iteritems():
             if self.provisionals.has_key(nm):
                 worksheet.write(i,0, nm3+"-"+nm)
                 worksheet.write(i,1, rad2dms(self.obs1[nm3][nm].direction))
                 worksheet.write(i,2, nm)
             
                 worksheet.write(i,3, round(self.provisionals[nm].y,3))
                 worksheet.write(i,4, round(self.provisionals[nm].x,3))
                 i+=1
                 ldist=self.obs1[nm3][nm].distance
                 soFar+=ldist
                 worksheet.write(i,3,soFar*dY)
                 worksheet.write(i,4,soFar*dX)
                 i+=1
                 worksheet.write(i,1, str(round(self.obs1[nm3][nm].distance,2))+"m")
                 worksheet.write(i,2, nm,format)
                 worksheet.write(i,3, round(self.provisionals[nm].y+soFar*dY,2),format)
                 worksheet.write(i,4, round(self.provisionals[nm].x+soFar*dX,2),format)
                 i+=2
                 
                 temp=nm
         
     workbook.close()