Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
 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()
Beispiel #4
0
    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()
Beispiel #5
0
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