def calcular(self): #Q=self.Q #3tpozo=self.tpozo #obs=self.obs #print obs self.d = self.controlador.obtenerDominio() #t_obs=self.t_obs #r_obs=self.r_obs Tmin = float(self.listaParametros[0].valoresParametro.valor) Tmax = float(self.listaParametros[1].valoresParametro.valor) Smin = float(self.listaParametros[2].valoresParametro.valor) Smax = float(self.listaParametros[3].valoresParametro.valor) T_Nint = int(self.listaParametros[4].valoresParametro.valor) S_Nint = int(self.listaParametros[5].valoresParametro.valor) c_Nint = int(self.listaParametros[6].valoresParametro.valor) goteo_min = int(self.listaParametros[7].valoresParametro.valor) goteo_max = int(self.listaParametros[8].valoresParametro.valor) Test_T = numpy.linspace(Tmin, Tmax, T_Nint) Test_S = numpy.linspace(Smin, Smax, S_Nint) Test_c = numpy.linspace(goteo_min, goteo_max, c_Nint) #[T_T, T_S] = meshgrid(Test_T, Test_S) #[T_T, T_c] = meshgrid(Test_T, Test_c) obj = numpy.zeros((T_Nint, S_Nint, c_Nint), float) minobj = 999999999999999 iToptimo = 0.0 iSoptimo = 0.0 icoptimo = 0.0 metodo = None n = Hantush(self.d, self.controlador.parametros, None) for n_T in range(T_Nint): #acui.T=Test_T(n_T) for n_S in range(S_Nint): #acui.S=Test_S(n_S) for n_c in range(c_Nint): #acui.c=Test_c(n_c) n.setearValores([Test_T[n_T], Test_S[n_S], Test_c[n_c]]) #print "paraemtros ", Test_T[n_T], Test_S[n_S], Test_c[n_c] #Itero por todos los pozos de observacion for p in self.pozosobs: #Itero por las observaciones de un pozo for obs in p.observaciones[0].devolverO(): t = obs.tiempo descenso = n.funcionObjetivo2(p, t) obj[n_S, n_T, n_c] = obj[n_S, n_T, n_c] + numpy.power( (obs.nivelpiezometrico - (self.d.calcularH0(p.x, p.y) - descenso)), 2) #if n_T==0 and n_S==0 and n_c==0: #print "obj[1,1,1] :",obj[n_S,n_T,n_c],"tiempo :",obs.tiempo,"h :",obs.nivelpiezometrico,"descenso :",descenso #Luego del for de goteo va la comparacion if (obj[n_S, n_T, n_c] < minobj): minobj = obj[n_S, n_T, n_c] iToptimo = n_T iSoptimo = n_S icoptimo = n_c obj[n_S, n_T, n_c] = np.log(obj[n_S, n_T, n_c]) #acui.T=Test_T(iToptimo) #acui.S=Test_S(iSoptimo) #acui.c=Test_c(icoptimo) self.T = Test_T[iToptimo] self.S = Test_S[iSoptimo] self.c = Test_c[icoptimo] self.obj = obj[:, :, icoptimo] self.metodo = Hantush(self.d, self.controlador.parametros, None) self.metodo.setearValores([self.T, self.S, self.c]) self.d.optimizacioneshechas[self.__str__()] = self retorno = {} retorno = {'T': self.T, 'S': self.S, 'C': self.c} return retorno
def cargar_demobarrera1000hantush(self): global ContEnsayo ContEnsayo=controlador.Proyecto() ContEnsayo.dominio.alto = 1000 ContEnsayo.dominio.ancho = 1000 ContEnsayo.dominio.a=0 ContEnsayo.dominio.b=0 ContEnsayo.dominio.c=10 ##Como prueba se elijio el metodo Theis de una, esto ya asocia el metodo al dominio m=Hantush(ContEnsayo.dominio, ContEnsayo.parametros, True) #m=Theis(ContEnsayo.dominio, ContEnsayo.parametros, True) m.setearValores([1000,1.e-4,676.7]) #m.setearValores([700,1.1e-4]) #print "c ",ContEnsayo.metodo.dominio.c ContEnsayo.metodo=m #Adherimos la vista del dominio self.ui = UiForm() self.ui.setupUi(MainWindow, ContEnsayo, app.desktop().size().width(), app.desktop().size().height()) #b = vistaPozo(QtGui.QPixmap("content/images/blackDotIcon.png"), "pozo", self.ui.caja.scene()) #b.setX(500) #b.setY(250) #b.id = elementoDominio.ContEnsayo.agregarPozo(500, 250) #self.ui.caja.botones.append(b) b=self.agregarPozo(500, 250) #pob = vistaPozo(QtGui.QPixmap("content/images/blackDotIcon.png"), "pozo", self.ui.caja.scene()) #pob.setX(600) #pob.setY(250) #pob.id = elementoDominio.ContEnsayo.agregarPozo(600, 250) #self.ui.caja.botones.append(pob) pob=self.agregarPozo(600, 250) x0=250 y0=0 x1=500 y1=1000 #r = QtCore.QLineF(x0, y0, x1, y1) #barrera = vistaBarrera(x0, y0, x1, y1, "barrera", self.ui.caja.scene()) #barrera.id = ContEnsayo.agregarRecta("positivo", x0, y0, x1, y1, ContEnsayo.dominio.alto, ContEnsayo.dominio.ancho) #self.ui.caja.rectas.append(barrera) #barrera=self.agregarRecta(x0, y0, x1, y1, "positivo") noexec=1 self.ventanaImpoObs(noexec, True) #self.vimp.archivo="ficheros/obsTheiscnbarrera.ods" self.vimp.archivo="ficheros/obsHantush.ods" self.vimp.nombre.setText('obs1') self.vimp.ext="ods" self.vimp.accionaceptar() self.vimp.close() self.ventanaImportarProyecto(noexec, True) #self.importar.archivo="ficheros/bombeos.txt" self.importar.archivo="ficheros/haintush.txt" self.importar.nombre.setText('ens1') self.importar.ext="txt" self.importar.accionaceptar() self.importar.close() frmasociar=QtGui.QDialog() asoe=asociarEnsayos.Ui_Dialog() asoe.setupUi(frmasociar, b.id, ContEnsayo, True) asoe.oe=ContEnsayo.ensayos[0] asoe.tipo="e" asoe.asociar() asoe.setupUi(frmasociar, pob.id, ContEnsayo, True) asoe.oe=ContEnsayo.observaciones[0] asoe.tipo="o" asoe.asociar()