def verEspectro(): data = request.get_json() data['errorBd'] = "" nombreMisionCrear = data['nombreMisionCrear'] waypointSeleccionado = data['waypointSeleccionado'] try: conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id daoWaypoints = DaoWaypoints(conn) wayp = daoWaypoints.getWaypointByNumber(waypointSeleccionado, idMision) idWayp = wayp.id daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idWayp) idEspectro = espway.espectros_id daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) resultado = espectro.resultado conn.close() b = makeImageC(resultado, 1) with open(b, "rb") as image_file: encoded_string = base64.b64encode(image_file.read()) encoded_string = encoded_string.decode("utf-8") data['espectroC'] = encoded_string except Exception as errorBd: data['errorBd'] = "T" raise errorBd finally: return json.dumps(data)
def capturaVueloApi(a, n, data, i): #i para prueba, generar varias imágenes de la captura asíncrona global listaEspectros id_waypoints = waypointsDB(data['nombreMisionCrear']) conn = conexion() daoEspectros = DaoEspectros(conn) espectro = Espectros() espectro.white = a espectro.dark = n espectro.capturado = [] espectro.resultado = [] espectro.sensores_id = idSensorVueloVIS espectro = daoEspectros.guardarEspectros(espectro) id_espectroV = espectro.id c, d, e, f, sumaCapturado= capturarVueloSinc(data['sensorVueloNIR'], data['sensorVueloVIS'], data['tiempoIntegracion'], data['numeroCapturas'], id_espectroV, i) listaEspectros.append(id_espectroV) daoEspway = DaoEspway(conn) espway = Espway() espway.espectros_id = id_espectroV espway.waypoints_id = id_waypoints espway = daoEspway.guardarEspway(espway) conn.close() return data, c, d, f, sumaCapturado
def guardarTodos(): data = request.get_json() data['errorBd'] = "" nombreMisionCrear = data['nombreMisionCrear'] ruta = str(data['ruta']) usuario = str(data['usuario']) try: if os.path.isdir(ruta): data['errorCarpeta'] = "" idsWaypoints = [] idsEspectros = [] latlonsWaypoints = [] conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id altura = mision.elevacion daoWaypoints = DaoWaypoints(conn) waypointsList = daoWaypoints.getAllWaypoints2(idMision) for i in range(0, len(waypointsList)): idsWaypoints.append(waypointsList[i].id) latlonsWaypoints.append(waypointsList[i].latlon) print(idsWaypoints) for i in range(0, len(idsWaypoints)): daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idsWaypoints[i]) idEspectro = espway.espectros_id idsEspectros.append(idEspectro) print(idsEspectros) for i in range(0, len(idsEspectros)): latlons = latlonsWaypoints[i].split(",") rutaG = ruta daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idsEspectros[i]) resultado = espectro.resultado rutaG += "/Usuario("+usuario+")"+"Mision("+nombreMisionCrear+")"+ "WaypointNumber("+str(i)+")" print(rutaG) generate(resultado, rutaG, float(latlons[0]), float(latlons[1]), altura) # generate(resultado, rutaG, float(latlons[0]), float(latlons[1]), 5) conn.close() else: data['errorCarpeta'] = "T" # with open("D:/Tesis/Api/Flask/imagenEspectroC2.png", "rb") as image_file: # encoded_string = base64.b64encode(image_file.read()) # encoded_string = encoded_string.decode("utf-8") # data['espectroR'] = encoded_string pass except Exception as errorBd: data['errorBd'] = "T" raise errorBd return json.dumps(data)
def guardarTodos(): data = request.get_json() data['errorBd'] = "" nombreMisionCrear = data['nombreMisionCrear'] ruta = str(data['ruta']) filePath = FileManagement.to_relative(ruta) usuario = str(data['usuario']) try: if os.path.isdir(filePath): data['errorCarpeta'] = "" idsWaypoints = [] idsEspectros = [] latlonsWaypoints = [] conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id altura = mision.elevacion daoWaypoints = DaoWaypoints(conn) waypointsList = daoWaypoints.getAllWaypoints2(idMision) print(waypointsList[0].id, waypointsList[1].id) #272" lista de obj for i in range(0, len(waypointsList)): idsWaypoints.append(waypointsList[i].id) latlonsWaypoints.append(waypointsList[i].latlon) print(idsWaypoints) # print("J") print(latlonsWaypoints) for i in range(0, len(idsWaypoints)): daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idsWaypoints[i]) idEspectro = espway.espectros_id idsEspectros.append(idEspectro) for i in range(0, len(idsEspectros)): latlons = latlonsWaypoints[i].split(",") rutaG = filePath daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idsEspectros[i]) resultado = espectro.resultado rutaG += "/Usuario(" + usuario + ")" + "Mision(" + nombreMisionCrear + ")" + "WaypointNumber(" + str( i) + ")" # filePath = FileManagement.to_relative(rutaG) generate(resultado, rutaG, float(latlons[0]), float(latlons[1]), altura) conn.close() else: data['errorCarpeta'] = "T" except Exception as errorBd: data['errorBd'] = "T" print("Error en guardarTodos: ", errorBd) raise errorBd finally: return json.dumps(data)
def calcularEspectro(ids): global wavelenghtsLista # stringDark= """SELECT dark FROM espectros WHERE id='%s';""" %(ids) # stringCapturado= """SELECT dark FROM espectros WHERE id='%s';""" %(ids) # stringWhite= """SELECT dark FROM espectros WHERE id='%s';""" %(ids) medida= [] blanco= [] negro= [] negrolist= [] blancolist= [] suma= [] resta= [] espectroCal= [] espectrocor= [] wavecor= [] conn = conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(ids) blanco = espectro.white negro = espectro.dark medida = espectro.capturado # conn = psycopg2.connect(host="localhost", port = 5432, database="geospectre", user="******", password="******") # cur = conn.cursor() # cur.execute(stringDark) # negro = cur.fetchone()[0][0] # cur.execute(stringWhite) # blanco = cur.fetchone()[0][0] # cur.execute(stringCapturado) # medida = cur.fetchone()[0][0] # cur.close() # conn.close() for i in range(0, len(wavelenghtsLista)): suma.append(float(blanco[i]) - float(negro[i])) # print(str(resta)) for i in range(0, len(wavelenghtsLista)): resta.append(float(medida[i]) - float(negro[i])) for i in range(0, len(wavelenghtsLista)): if suma[i] == 0: suma[i] = 1 espectroCal.append((float(resta[i]) / float(suma[i]))*100) espectro.resultado = espectroCal espectro = daoEspectros.actualizarEspectros(espectro) conn.close() return espectroCal
def seleccionarMision(): data = request.get_json() data['errorBd'] = "" data['waypointsList'] = "" misionSeleccionada = data['misionSeleccionada'] numWaypoints = [] try: # Obtengo ID de mision conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(misionSeleccionada) idMision = mision.id # Obtengo lista IDs sensores 201, 202, 203 daoSensores = DaoSensores(conn) sensores = daoSensores.getSensoresMision(idMision) # Por cada ID de sensores obtengo ID de espectros 137, 138, 139 for i in range(len(sensores)): daoEspectros = DaoEspectros(conn) espectros = daoEspectros.getEspectrosSensores(sensores[i]) # Por cada ID de espectros retorno el RESULTADO del espectro # y verifico si está vacío for j in range(len(espectros)): espectro = daoEspectros.getEspectros(espectros[j]) idEspectro = espectro.id print(idEspectro) resultado = espectro.resultado # Si está vació borro el waypoint, y el espectro # CASCADE espway if len(resultado) == 0: daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayEspectro(idEspectro) print("llego al if") if espway == None: print("if") daoEspectros.borrarEspectros(idEspectro) else: print("else") idWaypoint = espway.waypoints_id daoWaypoints = DaoWaypoints(conn) daoWaypoints.borrarWaypoint(idWaypoint) daoEspectros.borrarEspectros(idEspectro) daoWaypoints = DaoWaypoints(conn) waypointsList = daoWaypoints.getAllWaypoints(idMision) for i in range(0, len(waypointsList)): numWaypoints.append(str(waypointsList[i].num_waypoint)) conn.close() data['waypoints'] = numWaypoints pass except Exception as errorBd: data['errorBd'] = "T" raise errorBd finally: return json.dumps(data)
def guardarEspectro(): data = request.get_json() data['errorBd'] = "" data['waypointsList'] = "" data['espectroC'] = "" data['espectroR'] = "" nombreMisionCrear = data['nombreMisionCrear'] waypointSeleccionado = data['waypointSeleccionado'] ruta = str(data['ruta']) usuario = str(data['usuario']) print(waypointSeleccionado) try: if os.path.isdir(ruta): conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id altura = mision.elevacion daoWaypoints = DaoWaypoints(conn) wayp = daoWaypoints.getWaypointByNumber(waypointSeleccionado, idMision) idWayp = wayp.id latlon = wayp.latlon latlon = latlon.split(",") daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idWayp) idEspectro = espway.espectros_id daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) resultado = espectro.resultado conn.close() ruta += "/Usuario("+usuario+")"+"Mision("+nombreMisionCrear+")"+ "Waypoint("+waypointSeleccionado+")" print(ruta) generate(resultado, ruta, float(latlon[0]), float(latlon[1]), altura) # generate(resultado, ruta, float(latlon[0]), float(latlon[1]), 5) # makeImageG(resultado, ruta, float(latlon[0]), float(latlon[1]), 5) # with open("D:/Tesis/Api/Flask/imagenEspectroC2.png", "rb") as image_file: # encoded_string = base64.b64encode(image_file.read()) # encoded_string = encoded_string.decode("utf-8") # data['espectroR'] = encoded_string else: data['errorCarpeta'] = "T" except Exception as errorBd: data['errorBd'] = "T" raise errorBd return json.dumps(data)
def guardarTodos(): data = request.get_json() data['errorBd'] = "" nombreMisionCrear = data['nombreMisionCrear'] ruta = str(data['ruta']) usuario = str(data['usuario']) try: idsWaypoints = [] idsEspectros = [] conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id daoWaypoints = DaoWaypoints(conn) waypointsList = daoWaypoints.getAllWaypoints2(idMision) for i in range(0, len(waypointsList)): idsWaypoints.append(waypointsList[i].id) print(idsWaypoints) for i in range(0, len(idsWaypoints)): daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idsWaypoints[i]) idEspectro = espway.espectros_id idsEspectros.append(idEspectro) print(idsEspectros) for i in range(0, len(idsEspectros)): rutaG = ruta daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idsEspectros[i]) resultado = espectro.resultado rutaG += "/Usuario(" + usuario + ")" + "Mision(" + nombreMisionCrear + ")" + "WaypointNumber(" + str( i) + ")" + ".png" print(rutaG) makeImageG(resultado, rutaG) conn.close() # with open("D:/Tesis/Api/Flask/imagenEspectroC2.png", "rb") as image_file: # encoded_string = base64.b64encode(image_file.read()) # encoded_string = encoded_string.decode("utf-8") # data['espectroR'] = encoded_string pass except Exception as errorBd: data['errorBd'] = "T" raise errorBd return json.dumps(data)
def guardarEspectro(): data = request.get_json() data['errorBd'] = "" nombreMisionCrear = data['nombreMisionCrear'] waypointSeleccionado = data['waypointSeleccionado'] ruta = str(data['ruta']) usuario = str(data['usuario']) filePath = FileManagement.to_relative(ruta) try: if os.path.isdir(filePath): conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id altura = mision.elevacion daoWaypoints = DaoWaypoints(conn) wayp = daoWaypoints.getWaypointByNumber(waypointSeleccionado, idMision) idWayp = wayp.id latlon = wayp.latlon.split(",") daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idWayp) idEspectro = espway.espectros_id daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) resultado = espectro.resultado conn.close() filePath += "/Usuario(" + usuario + ")" + "Mision(" + nombreMisionCrear + ")" + "Waypoint(" + waypointSeleccionado + ")" generate(resultado, filePath, float(latlon[0]), float(latlon[1]), altura) else: data['errorCarpeta'] = "T" except Exception as errorBd: data['errorBd'] = "T" raise errorBd finally: return json.dumps(data)
def guardarNegro(): global id_espectros, n, idSensorTierraVIS data = request.get_json() data['errorBd'] = "" filePathSrc = 'D:/Tesis/Api/Flask/archivoTemporalNegro.txt'; filePathDes = 'D:/Tesis/Api/Flask/archivoNegro.txt'; try: copyfile(filePathSrc, filePathDes) if id_espectros == None: conn = conexion() espectro = Espectros() espectro.white = [] espectro.capturado = [] espectro.resultado = [] espectro.dark = n espectro.sensores_id = idSensorTierraVIS daoEspectros = DaoEspectros(conn) espectro = daoEspectros.guardarEspectros(espectro) id_espectros = espectro.id conn.close() # conn = psycopg2.connect(host="localhost", port = 5432, database="geospectre", user="******", password="******") # cur = conn.cursor() # cur.execute("""INSERT INTO espectros (dark, sensores_id) # VALUES (%s, %s) RETURNING id;""", ([n], idSensorTierraVIS)) # id_espectros = cur.fetchone()[0] # conn.commit() # cur.close() # conn.close() else: conn = conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(id_espectros) espectro.dark = n espectro = daoEspectros.actualizarEspectros(espectro) conn.close() # conn = psycopg2.connect(host="localhost", port = 5432, database="geospectre", user="******", password="******") # cur = conn.cursor() # cur.execute("""UPDATE espectros SET dark=%s WHERE id=%s;""", ([n], id_espectros)) # # id_espectros = cur.fetchone()[0] # # print(id_espectros) # conn.commit() # cur.close() # conn.close() except Exception as errorBd: data['errorBd'] = "T" raise errorBd return json.dumps(data)
def guardarNegro(idEspectro, blanco, negro, capturado, resultado, idSensor): data = {} data['errorBd'] = "" if idEspectro == None: conn = Conexion.conexion() espectro = Espectros() espectro.white = blanco espectro.capturado = capturado espectro.resultado = resultado espectro.dark = negro espectro.sensores_id = idSensor daoEspectros = DaoEspectros(conn) espectro = daoEspectros.guardarEspectros(espectro) idEspectro = espectro.id conn.close() else: conn = Conexion.conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) espectro.dark = negro espectro = daoEspectros.actualizarEspectros(espectro) conn.close()
def guardarBlanco(idEspectro, blanco, negro, capturado, resultado, idSensor): if idEspectro == None: conn = Conexion.conexion() espectro = Espectros() espectro.white = blanco espectro.dark = negro espectro.capturado = capturado espectro.resultado = resultado espectro.sensores_id = idSensor daoEspectros = DaoEspectros(conn) espectro = daoEspectros.guardarEspectros(espectro) idEspectro = espectro.id print(idEspectro) conn.close() else: print("else blanco") conn = Conexion.conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) espectro.white = blanco espectro = daoEspectros.actualizarEspectros(espectro) conn.close()
def capturarVueloSinc(sensorVueloNIR, sensorVueloVIS, tiempoIntegracion, numeroCapturas, id_espectros, i): errorCal = "F" errorBd = "F" errorCapturaV = "" filePath = 'D:/Tesis/Api/Flask/archivoTemporalVuelo.txt' try: sumaCapturado = 0.0 if os.path.exists(filePath): os.remove(filePath) else: print("Can not delete the file as it doesn't exists") vueloCapturado = capturarVueloRpi(sensorVueloVIS, sensorVueloNIR, tiempoIntegracion, numeroCapturas) # print("vuelocapturado "+vueloCapturado) v = getFilesVuelo(vueloCapturado) for i in range(0, len(v)): sumaCapturado += float(v[i]) # TODO: Comparar el viejo con el nuevo, y si está mal volver a capturar # Obtener blanco referencia conn = conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(id_espectros) blancoRef = espectro.white # print(blancoRef) contador = 0 for i in range(0, len(v)): if float(v[i]) > float(blancoRef[i]): print(float(v[i]), float(blancoRef[i])) contador += 1 if contador > 100: break if contador > 100: errorCal = "T" return errorBd, errorCapturaV, id_espectros, errorCal, sumaCapturado # --------------------------------------------------------------------- # print("v") # print(v) errorCapturaV = "" except Exception as e: errorCapturaV = "T" raise e try: conn = conexion() daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(id_espectros) espectro.capturado = v espectro.resultado = [] espectro = daoEspectros.actualizarEspectros(espectro) conn.close() # conn = psycopg2.connect(host="localhost", port = 5432, database="geospectre", user="******", password="******") # cur = conn.cursor() # cur.execute("""UPDATE espectros SET capturado=%s WHERE id=%s;""", ([v], id_espectros)) # conn.commit() # # cur.close() # # conn.close() espectroCalculado = calcularEspectro(id_espectros) # makeImageC(espectroCalculado, i) # cur.execute("""UPDATE espectros SET resultado=%s WHERE id=%s RETURNING id;""", ([espectroCalculado], id_espectros)) # idLastEspectre = cur.fetchone()[0] # conn.commit() # cur.close() # conn.close() errorBd = "" except Exception as errorBd: errorBd = "T" raise errorBd return errorBd, errorCapturaV, id_espectros, errorCal, sumaCapturado
waypointSeleccionado = 0 conn = conexion() daoMision = DaoMision(conn) mision = daoMision.getMisionNombre(nombreMisionCrear) idMision = mision.id print(idMision) daoWaypoints = DaoWaypoints(conn) wayp = daoWaypoints.getWaypointByNumber(waypointSeleccionado, idMision) idWayp = wayp.id print(idWayp) daoEspway = DaoEspway(conn) espway = daoEspway.getEspwayWaypoint(idWayp) idEspectro = espway.espectros_id print(idEspectro) daoEspectros = DaoEspectros(conn) espectro = daoEspectros.getEspectros(idEspectro) capturado = espectro.capturado resultado = espectro.resultado conn.close() print(capturado) print(resultado) # data = {'a':"a", 'b':"b", 'c':"c"} # data['a'] = "hgfd" # data['b'] = "b" # data['c'] = "c" # data['d'] = "d" # print(data['a']) # app = Flask(__name__) # def er():