Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import miepython | |
| import sqlite3 | |
| """" | |
| def calculate_mie_arrays(material_data, radius): | |
| results = {} | |
| for material_id, (valor_lambda_array, n_array, k_array) in material_data.items(): | |
| # Calculo del 铆ndice complejo m y el par谩metro x | |
| m = n_array - 1.0j * k_array | |
| x = 2 * np.pi * radius / valor_lambda_array | |
| # Calcular los par谩metros usando la funci贸n de miepython | |
| qext, qsca, qback, g = miepython.mie(m, x) | |
| # Coeficiente de absorci贸n | |
| qabs = qext - qsca | |
| # Guardar resultados en el diccionario | |
| results[material_id] = (qext, qsca, qabs) | |
| return results | |
| # Conectar a la base de datos SQLite | |
| #b_path = pruebas\prueba.db" | |
| #conn = sqlite3.connect(db_path) | |
| cursor = conn.cursor() | |
| # IDs de los materiales que queremos filtrar | |
| material_ids = [1, 2,3,4] # Lista de IDs de materiales | |
| # Leer los datos de la base de datos para cada material | |
| material_data = {} | |
| for material_id in material_ids: | |
| cursor.execute("SELECT longitud_onda, n, k FROM DatosDeRefraccion WHERE material_id = ?", (material_id,)) | |
| data = cursor.fetchall() | |
| if data: | |
| # Convertir los datos le铆dos en arrays de numpy | |
| valor_lambda_array = np.array([row[0] for row in data]) | |
| n_array = np.array([row[1] for row in data]) | |
| k_array = np.array([row[2] for row in data]) | |
| material_data[material_id] = (valor_lambda_array, n_array, k_array) | |
| # Cerrar la conexi贸n a la base de datos | |
| conn.close() | |
| # Valor del radio de las part铆culas | |
| radius = 0.1 # En micr贸metros | |
| # Llamada a la funci贸n con los par谩metros le铆dos de la base de datos | |
| results = calculate_mie_arrays(material_data, radius) | |
| # Imprimir los resultados para comprobar | |
| for material_id, (qext_array, qsca_array, qabs_array) in results.items(): | |
| print(f"Resultados para el material ID {material_id}:") | |
| valor_lambda_array, n_array, k_array = material_data[material_id] | |
| for i in range(len(valor_lambda_array)): | |
| print(f" Para 位 = {valor_lambda_array[i]:.2f} 渭m, n = {n_array[i]:.2f}, k = {k_array[i]:.2f}, radio = {radius:.2f} 渭m:") | |
| print(f" Coeficiente de extinci贸n (qext): {qext_array[i]:.4f}") | |
| print(f" Coeficiente de dispersi贸n (qsca): {qsca_array[i]:.4f}") | |
| print(f" Coeficiente de absorci贸n (qabs): {qabs_array[i]:.4f}") | |
| # Ejemplo: ahora puedes usar los resultados para gr谩ficas en matplotlib | |
| """ |