Este es un código de Python que resuelve el cálculo del espesor real de las capas mediante el uso de funciones matemáticas cuyos atributos de entrada son los datos tomados en campo, los cuales comúnmente están representados por bases de datos en archivos excel que pueden ser cargados y visualizados en este lenguaje de programación mediante el uso de la librería Pandas.
- DistSegmento: Longitud del segmento A-B
- Azi_Segmento: Azimut segmento A-B
- Dip_Segmento: Inclinación segmento A-B
- Az_rumbo_bedding: Azimut de rumbo de las capas
- Az_buz_bedding: Azimut de buzamiento de las capas
- dip_bedding: Buzamiento de las capas
- espesor: Columna donde se guardan los espesores reales calculados en metros
- az2carto(azi): donde el argumento de entrada azi es el ángulo en azimut (en grados, 0 - 360). Esta es una función que convierte los datos de azimut del rumbo en ángulos euclidianos
out = az2carto(azi)
- cal_thick(L,I,a,b,f): donde los argumentos de entrada son L (longitud del segmento), I (buzamiento de la capa), a (azimut de rumbo de las capas), b (azimut de buzamiento de las capas), f (azimut de rumbo del segmento)
out = cal_thick(L,I,a,b,f)
Las variables de entrada están definidas de la siguiente forma:
I=I*np.pi/180
a=az2carto(a)*np.pi/180
b=az2carto(b)*np.pi/180
f=az2carto(f)*np.pi/180
El cálculo de las variables aparentes está dado por:
omega=np.arctan(np.tan(I)*np.sin(abs(a-f)))*180/np.pi #ángulo de dirección aparente
E=np.sin(omega*np.pi/180)*L #espesor aparente
El cálculo de las variables reales está dado por:
L2=abs(np.cos((f-b))*L) #longitud proyectada en la misma dirección del buzamiento
E2=np.sin(I)*L2 #espesor real
Para obtener la documentación sobre las variables de entrada que requiere la función puedes ejecutar la siguiente celda:
help(cal_thick)
En este Colab está un ejemplo completo del uso de las funciones y el proceso automático para aplicarlas en un archivo de excel. Para abrirlo de click en el siguiente ícono:
El espesor real puede ser calculado ingresando los datos tomados en campo segmento por segmento, así como se muestra en la primera parte del código. Pero, también mediante el uso de la función cal_thick que calcula los espesores de manera automática para todos los segmentos ingresados en la tabla excel. Para esto se recomienda nombrar las variables de la misma forma que se encuentra en el Colab.
Los espesores reales de todos los segmentos se guardan automáticamente en una nueva columna denominada espesor. El archivo resultante puede ser exportado nuevamente en un archivo .csv, el cual puede visualizarse en excel con todos los datos de la poligonal desarrollada. El archivo exportado podrá descargarse desplegando el panel izquierdo donde se visualizará una carpeta llamada DesarrolloPoligonales y dentro de la cual se encontrará el archivo que contiene los espesores reales con extensión .csv
Para usar en el disco local, se debe descargar la carpeta y usar alguna de las siguientes opciones:
- Para los usuarios de Jupyter-notebook: Usar el ejemplo presentado en el archivo poligonal.ipynb.
- Para los usuarios de spyder u otro IDE: Usar el ejemplo presentado en el archivo poligonal.py.
Ayúdame difundiendo. Envíame más ejemplos para hacer diferentes test. Encuentra errores y repórtalos en un issue en GitHub.
Contáctanos
Ana Mantilla: [email protected]
Paul Goyes: [email protected]
Mantilla, A y Goyes, P (2024). Anagabrielamantilla/DesarrolloPoligonales: DesarrolloPoligonales (poligonales). Zenodo. https://doi.org/10.5281/zenodo.10995259