def residuals(self): self.stdDevTree.clear() self.resid={} for x in self.unknowns: list=[] name=x[0:-2] item = QTreeWidgetItem(self.stdDevTree) item.setText(0, name) if not self.resid.has_key(name): self.resid[name]=[None,None,None] if x[-1]=="o": self.resid[name][2]=(self.precisi[name+"_o"]) item.setText(3, str(round(float(self.resid[name][2]),3))) elif x[-1]=="x": self.resid[name][0]=(self.precisi[name+"_x"]) item.setText(1, str(round(float(self.resid[name][0]),3))) elif x[-1]=="y": self.resid[name][1]=(self.precisi[name+"_y"]) item.setText(2, str(round(float(self.resid[name][1]),3))) for name in self.unknowns: name=x[0:-2] if not (self.resid[name][2])==None: if (self.resid[name][0])==None and (self.resid[name][1])==None: item.setText(0, name+"(control)") self.vtpvLabel.setText("VTPV: "+str(self.vtpv)) self.vtpvLabel.setVisible(True) if float(round(float((self.A.T*self.P*self.V).T*(self.A.T*self.P*self.V)),6))==0.: self.numcheckLabel.setVisible(True) self.posteriori.setText("Posteriori: "+str(self.posterioriValue)) self.posteriori.setVisible(True) self.posteriori_2.setText(str(round(self.posterioriValue,5))) self.posteriori_2.setVisible(True) check1=globalCheck(self.provis,self.control,self.V,self.obs,self.unknowns,self.Xdict) for x,ob in self.XOdict.iteritems(): list=[] name=x[0:-2] item = QTreeWidgetItem(self.stdDevTree) item.setText(0, name+" orientation:") item.setText(3, str(round(float(self.XOdict[x]),3))) sum=0 for i in check1.values(): sum+=round(i,4) if round(sum,3)==0.: self.glocheckLabel.setVisible(True) else: self.glocheckLabel.setText("GLOBAL UNSUCCESS") # self.glocheckLabel.setStyleSheet(color="red") self.glocheckLabel.setVisible(True)
def writeOut(self): fileName = QFileDialog.getSaveFileName(self, "Open Points File", "", "Text File (*.txt);;", "") file = open(fileName, "w") file.write("________CONTROL POINTS________\n\n") for i, j in self.control.iteritems(): file.write(i + ":\n" + str(j) + "\n") file.write("________UNKNOWNS________\n\n") file.write(str(self.unknowns) + '\n\n') file.write( "_______________________________________ CALCULATIONS _______________________________________ \n\n\n\n" ) k = 0 for i in range(self.iterations): k += 1 provis = adjustProvisional(self.Xdict, self.provis, self.obs, self.unknowns) A, Xdict, provis, obs, control, unknowns, L = Iterate( provis, self.obs, self.control, self.unknowns, self.P) X = ((A.T * self.P * A)**-1) * A.T * self.P * L Xdict = Points("Solutions Dictionary") j = 0 for i in unknowns: Xdict[i] = X[j] j += 1 V, posteriori, covarience_mat, precisi = precisions( A, X, self.P, L, obs, unknowns) file.write("________ITERATION: " + str(k) + " ________\n\n") if float(round(float((A.T * self.P * V).T * (A.T * self.P * V)), 6)) == 0.: file.write( "____________________________________________________\n\nCalculation check 'A.tPV' successful\n---------------------------------------------\n" ) else: file.write( "Calculation check 'A.tPV' unsuccessful to 6 dec places\n\n" ) # V,posteriori,covarience_mat,precisions file.write("________'V.TPV'________\n\n") file.write(str(V.T * self.P * V) + '\n\n') file.write("________Posteriori________\n\n") file.write(str(posteriori) + '\n\n') # file.write("________Covarience Matrix________\n\n") # COVARIENCE MATRIX # file.write(str(covarience_mat)+'\n\n') file.write("________Precisions of Unknowns ________\n\n") for i, j in precisi.iteritems(): file.write(i + ":\n" + str(round(float(j), 3)) + "\n\n") check = globalCheck(provis, control, V, obs, unknowns, Xdict) file.write("________Global Check________\n\n") for i, j in check.iteritems(): file.write(i + ":\n" + str(j) + "\n") file.write("________________---- END OF ITERATION " + str(k) + " ----____________\n\n") file.write( "_______________________________________________________________________\n\n" ) # showGraph(N,provisionals,control) file.write("________FINAL COORDINATES________\n\n") for i, j in provis.iteritems(): file.write(i + ":\n" + str(j) + "\n\n") file.write( "________X Solution Vector, With distances in meters and directions in seconds ________\n\n" ) for i, j in Xdict.iteritems(): file.write(i + ":\n" + str(round(float(j), 3)) + "\n\n")
def residuals(self): self.stdDevTree.clear() self.resid = {} for x in self.unknowns: list = [] name = x[0:-2] item = QTreeWidgetItem(self.stdDevTree) item.setText(0, name) if not self.resid.has_key(name): self.resid[name] = [None, None, None] if x[-1] == "o": self.resid[name][2] = (self.precisi[name + "_o"]) item.setText(3, str(round(float(self.resid[name][2]), 3))) elif x[-1] == "x": self.resid[name][0] = (self.precisi[name + "_x"]) item.setText(1, str(round(float(self.resid[name][0]), 3))) elif x[-1] == "y": self.resid[name][1] = (self.precisi[name + "_y"]) item.setText(2, str(round(float(self.resid[name][1]), 3))) for name in self.unknowns: name = x[0:-2] if not (self.resid[name][2]) == None: if (self.resid[name][0]) == None and ( self.resid[name][1]) == None: item.setText(0, name + "(control)") self.vtpvLabel.setText("VTPV: " + str(self.vtpv)) self.vtpvLabel.setVisible(True) if float( round( float((self.A.T * self.P * self.V).T * (self.A.T * self.P * self.V)), 6)) == 0.: self.numcheckLabel.setVisible(True) self.posteriori.setText("Posteriori: " + str(self.posterioriValue)) self.posteriori.setVisible(True) self.posteriori_2.setText(str(round(self.posterioriValue, 5))) self.posteriori_2.setVisible(True) check1 = globalCheck(self.provis, self.control, self.V, self.obs, self.unknowns, self.Xdict) for x, ob in self.XOdict.iteritems(): list = [] name = x[0:-2] item = QTreeWidgetItem(self.stdDevTree) item.setText(0, name + " orientation:") item.setText(3, str(round(float(self.XOdict[x]), 3))) sum = 0 for i in check1.values(): sum += round(i, 4) if round(sum, 3) == 0.: self.glocheckLabel.setVisible(True) else: self.glocheckLabel.setText("GLOBAL UNSUCCESS") # self.glocheckLabel.setStyleSheet(color="red") self.glocheckLabel.setVisible(True)
def writeOut(self): fileName = QFileDialog.getSaveFileName(self, "Open Points File", "", "Text File (*.txt);;", "") file = open(fileName, "w") file.write("________CONTROL POINTS________\n\n") for i,j in self.control.iteritems(): file.write(i +":\n"+ str(j)+"\n") file.write("________UNKNOWNS________\n\n") file.write(str(self.unknowns)+'\n\n') file.write("_______________________________________ CALCULATIONS _______________________________________ \n\n\n\n") k=0 for i in range (self.iterations): k+=1 provis=adjustProvisional(self.Xdict,self.provis, self.obs, self.unknowns) A,Xdict,provis,obs,control,unknowns,L=Iterate(provis, self.obs, self.control, self.unknowns,self.P) X=((A.T*self.P*A)**-1)*A.T*self.P*L Xdict=Points("Solutions Dictionary") j=0 for i in unknowns: Xdict[i]=X[j] j+=1 V,posteriori,covarience_mat,precisi=precisions(A,X,self.P,L,obs,unknowns) file.write("________ITERATION: "+str(k)+" ________\n\n") if float(round(float((A.T*self.P*V).T*(A.T*self.P*V)),6))==0.: file.write("____________________________________________________\n\nCalculation check 'A.tPV' successful\n---------------------------------------------\n") else: file.write("Calculation check 'A.tPV' unsuccessful to 6 dec places\n\n") # V,posteriori,covarience_mat,precisions file.write("________'V.TPV'________\n\n") file.write(str(V.T*self.P*V)+'\n\n') file.write("________Posteriori________\n\n") file.write(str(posteriori)+'\n\n') # file.write("________Covarience Matrix________\n\n") # COVARIENCE MATRIX # file.write(str(covarience_mat)+'\n\n') file.write("________Precisions of Unknowns ________\n\n") for i,j in precisi.iteritems(): file.write(i +":\n"+ str(round(float(j),3))+"\n\n") check=globalCheck(provis,control,V,obs,unknowns,Xdict) file.write("________Global Check________\n\n") for i,j in check.iteritems(): file.write(i +":\n"+ str(j)+"\n") file.write("________________---- END OF ITERATION "+str(k)+" ----____________\n\n") file.write("_______________________________________________________________________\n\n") # showGraph(N,provisionals,control) file.write("________FINAL COORDINATES________\n\n") for i,j in provis.iteritems(): file.write(i +":\n"+ str(j)+"\n\n") file.write("________X Solution Vector, With distances in meters and directions in seconds ________\n\n") for i,j in Xdict.iteritems(): file.write(i +":\n"+ str(round(float(j),3))+"\n\n")