Beispiel #1
0
 def device_info(self):
     """
     This function returns information about connected WFS instruments. 
     """
     count = self.device_count()
     sensors = []
     for list_index in range(count):
         device_id = ViInt32()
         in_use = ViInt32()
         instrument_name = ViChar256()
         instrument_sn = ViChar256()
         resource_name = ViRsrc()
         WfsLib.result(
             self._dll.WFS_GetInstrumentListInfo(VI_NULL(), list_index,
                                                 byref(device_id),
                                                 byref(in_use),
                                                 instrument_name,
                                                 instrument_sn,
                                                 resource_name))
         log.info(f"WFS device_id: {device_id.value}")
         log.info(f"in use: {in_use.value}")
         log.info(f"instrument_name: {instrument_name.value}")
         log.info(f"instrument_sn: {instrument_sn.value}")
         log.info(f"resource_name: {resource_name.value}")
         sensors.append([
             device_id.value, in_use.value, instrument_name.value,
             instrument_sn.value, resource_name.value
         ])
     return sensors
Beispiel #2
0
 def get_mla_info(self):
     """
     This functions lists all available microlens arrays.
     """
     mlas = []
     for mla_index in range(self.get_mla_count()):
         mla_name = ViChar256()
         cam_pitch = ViReal64()
         lenslet_pitch = ViReal64()
         spot_offset = [ViReal64(), ViReal64()]
         lenslet_f = ViReal64()
         grd_corr_0 = ViReal64()
         grd_corr_45 = ViReal64()
         WfsLib.result(
             self._dll.WFS_GetMlaData(self._handle, mla_index, mla_name,
                                      byref(cam_pitch),
                                      byref(lenslet_pitch),
                                      byref(spot_offset[0]),
                                      byref(spot_offset[1]),
                                      byref(lenslet_f), byref(grd_corr_0),
                                      byref(grd_corr_45)))
         log.info(f"MLA name: {mla_name.value}")
         mlas.append([
             mla_name.value, cam_pitch.value, lenslet_pitch.value,
             spot_offset[0].value, spot_offset[1].value, lenslet_f.value,
             grd_corr_0.value, grd_corr_45
         ])
     return mlas
Beispiel #3
0
def obtener_nombre_alumno(archivo, sw):
    log.info("NOMBRE_ALUMNO | Obteniendo nombre del alumno ...")
    nombre_alumno.extend(obtener_nombre_y_apellido_del_alumno(archivo, sw))
    if nombre_alumno:
        log.info("NOMBRE_ALUMNO | Alumno que realizo el ensayo: " + nombre_alumno[0])
    else:
        log.warning("NOMBRE_ALUMNO | No se encontro el nombre del alumno")
Beispiel #4
0
 def get_mla_count(self):
     """
     This function returns the number of calibrated Microlens Arrays
     """
     mla_count = ViInt32()
     WfsLib.result(self._dll.WFS_GetMlaCount(self._handle,
                                             byref(mla_count)))
     log.info(
         f"WFS_GetMlaCount: {mla_count.value} available microlens arrays")
     return mla_count.value
Beispiel #5
0
def define_indexes():
    log.info('defining indexes')
    db.wipo.create_index('field_id')
    db.wipo.create_index('patent_id')

    db.uspatentcitation.create_index('patent_id')
    db.uspatentcitation.create_index('citation_id')

    db.patent.create_index('id')
    db.patent.create_index('date')

    # db.series.create_index('node')
    # db.series.create_index('date')
    # db.series.create_index('measure')
    log.info('indexes defined!')
Beispiel #6
0
 def get_status(self):
     """
     This function returns the device status of the Wavefront Sensor instrument.
     """
     device_status = ViInt32()
     log.spam(f"querying device status")
     WfsLib.result(
         self._dll.WFS_GetStatus(self._handle, byref(device_status)))
     log.info(f"WFS_GetStatus: {device_status.value}")
     # check all status bits
     status = {}
     for key in WFS_STATUS:
         if WFS_STATUS[key] & device_status.value:
             status[key] = True
         else:
             status[key] = False
     return status
Beispiel #7
0
def obtener_tema_del_texto(archivo_test, sw, cantidad_de_topicos):
    log.info("TOPICOS | Obteniendo topicos del texto ...")
    log.debug("TOPICOS | Preparando archivos para modelo LDA ...")
    nlp = spacy.load('es_core_news_sm')

    hilos_preparar_archivos_para_lda = list()
    for archivo in archivos_entrenamiento_limpios:
        hilo_preparar_archivo_para_lda = threading.Thread(
            target=preparar_archivo_entrenamiento_para_lda,
            args=(
                archivo.texto,
                nlp,
                sw,
            ))
        hilos_preparar_archivos_para_lda.append(hilo_preparar_archivo_para_lda)
        hilo_preparar_archivo_para_lda.start()

    texto_preparado_test = preparar_texto_para_lda(archivo_test, nlp, sw)

    for index, thread in enumerate(hilos_preparar_archivos_para_lda):
        thread.join()

    log.debug("TOPICOS | Archivos de entrenamiento preparados")
    log.debug(
        "TOPICOS | Corriendo algoritmo LDA para archivos de entrenamiento ...")
    diccionario = corpora.Dictionary(textos_preparados_entrenamiento)
    corpus = [
        diccionario.doc2bow(texto) for texto in textos_preparados_entrenamiento
    ]
    modelo_lda = gensim.models.LdaMulticore(corpus,
                                            num_topics=10,
                                            id2word=diccionario,
                                            passes=2)

    log.debug(
        "TOPICOS | Algoritmo LDA para archivos de entrenamiento finalizado")
    log.debug("TOPICOS | Corriendo algoritmo LDA para archivos de test ...")
    indice, score = sorted(
        modelo_lda[diccionario.doc2bow(texto_preparado_test)],
        key=lambda tup: -1 * tup[1])[0]
    topico_con_mas_score.extend([
        palabra.split("*")[1].replace("\"", "") for palabra in
        modelo_lda.print_topic(indice, cantidad_de_topicos).split(" + ")
    ])

    log.info(f"TOPICOS | Topicos del texto: {topico_con_mas_score}")
Beispiel #8
0
def obtener_plagio_de_internet(texto_archivo_test_limpio, sw, cantidad_de_links, buscar_en_pdfs):
    log.info("PLAGIO_DE_INTERNET | Obteniendo plagio de paginas de internet...")
    hilos_plagio_de_internet = list()

    for oracion in texto_archivo_test_limpio:
        oracion_preparada = preparar_oracion(oracion, sw)
        if oracion_preparada is None:
            continue
        hilo_plagio_de_internet = threading.Thread(target=obtener_oracion_mas_parecida_de_internet,
                                                   args=(oracion, oracion_preparada, sw, cantidad_de_links, buscar_en_pdfs,))
        hilos_plagio_de_internet.append(hilo_plagio_de_internet)
        hilo_plagio_de_internet.start()

    for index, thread in enumerate(hilos_plagio_de_internet):
        thread.join()

    plagio_de_internet.extend([(oracion, posible_plagio, porcentaje, archivo, ubicacion) for
                          (oracion, posible_plagio, porcentaje, archivo, ubicacion) in porcentajes_de_aparicion_internet if
                          (porcentaje > 0.7)])
    log.info(f"PLAGIO_DE_INTERNET | {len(plagio_de_internet)} plagios de paginas de internet encontrados")
Beispiel #9
0
def insert_file(file_path, strip_fields=[], decode_field=[]):
    log.info("inserting " + file_path)
    # insert everything as string! We don't need any numberic queries!
    df = pd.read_csv(file_path, sep='\t',iterator=True, chunksize=5000, dtype='str')
    collection = os.path.basename(file_path).split('.')[0]
    collection = db.get_collection(collection)
    for f in df:
        for field in strip_fields:
            try:
                f[field] = pd.core.strings.str_strip(f[field])
            except:
                # I'm a scatman :)
                pass

        for field in decode_field:
            try:
                f[field] = f[field].str.decode('unicode-escape').str.encode('utf8')
            except:
                # I'm a scatman :)
                pass

        collection.insert_many(f.to_dict('records'))
Beispiel #10
0
def obtener_plagio_de_otros_tps(texto_archivo_test_limpio, sw):
    log.info("PLAGIO_DE_TPS | Obteniendo plagio de otros tps...")
    hilos_plagio_de_otros_tps = list()

    for oracion in texto_archivo_test_limpio:
        oracion_preparada = preparar_oracion(oracion, sw)
        if oracion_preparada is None:
            continue

        archivos_entrenamiento = archivos_entrenamiento_limpios
        hilo_plagio_de_otros_tps = threading.Thread(target=obtener_oracion_mas_parecida_del_dataset,
                                                    args=(oracion, oracion_preparada, texto_archivo_test_limpio, archivos_entrenamiento, sw,))
        hilos_plagio_de_otros_tps.append(hilo_plagio_de_otros_tps)
        hilo_plagio_de_otros_tps.start()

    for index, thread in enumerate(hilos_plagio_de_otros_tps):
        thread.join()

    plagio_de_otros_tps.extend([(oracion, posible_plagio, porcentaje, archivo, ubicacion) for
                           (oracion, posible_plagio, porcentaje, archivo, ubicacion) in porcentajes_de_aparicion_otros_tps if
                           (porcentaje > 0.7)])
    log.info(f"PLAGIO_DE_TPS | {len(plagio_de_otros_tps)} plagios de otros tps encontrados")
Beispiel #11
0
def inversion():
    f = forward.forward_gpu()

    real_geo_model = forward.geoelectric_model()
    real_geo_model.load_from_file('../test_data/test_geo_model.json')

    coef = forward.filter_coefficient()
    coef.load_cos_coef('../test_data/cos_xs.txt')
    coef.load_hkl_coef('../test_data/hankel1.txt')

    time = forward.forward_data()
    time.generate_time_stamp_by_count(-5, -2, 20)

    f.load_general_params(10, 100, 50)
    f.load_filter_coef(coef)
    f.load_geo_model(real_geo_model)
    f.load_time_stamp(time)

    f.forward()

    real_response = f.get_result_magnetic()
    real_response.name = real_geo_model.name

    # helper.add_noise(m, 0.05)
    real_response_m = real_response['response']

    inversion_geo_model = forward.isometric_model()
    inversion_geo_model.resize(20)
    inversion_geo_model.height = 10
    inversion_geo_model.name = 'inversion'

    inv = Inversion(inversion_geo_model, f)
    inv.set_initial_geo_model(npy.ones([inversion_geo_model.count]) * 50.0)
    inv.set_target_magnetic(real_response_m)

    for i in range(500):
        log.info('iteration %d ' % i)

        inv.rand_grad()
        inv.update_model()
        inv.update_step()

        log.info('iteration %d, loss = %f' % (i, inv.loss()))
        if i % 10 == 0:
            inversion_geo_model.set_item_s('resistivity',
                                           inv.geo_model.tolist())
            inversion_geo_model.name = 'Inversion'
            f.load_geo_model(forward.iso_to_geo(inversion_geo_model))

            f.forward()
            inversion_response = f.get_result_magnetic()
            inversion_response.name = 'Inversion'

            fig = helper.draw_resistivity(
                real_geo_model,
                forward.iso_to_geo(inversion_geo_model),
                last_height=240)
            fig.show()

            fig = helper.draw_forward_result(real_response, inversion_response)
            fig.show()

            print('loss = %f' % helper.loss(real_response, inversion_response))
            pass

        pass