Sistema IMAP es una aplicación desarrollada para apoyar la identificación y sistematización del mecanismo de atrapamiento en operaciones de perforación de pozos, a partir de la interpretación de reportes de actividades (SIOP) y de la aplicación de la Hoja de identificación del mecanismo de atrapamiento con múltiples usos entre ellos en las Investigaciones Causa-Raíz (ICR).
Desarrollar un programa que, mediante la lectura de un archivo de reportes de actividades (SIOP), identifique y sistematice la identificación del mecanismo de atrapamiento en las operaciones de perforación de pozos mediante la Hoja de identificación del mecanismo de atrapamiento.
El atrapamiento de sarta de perforación es una de las problemáticas operativas más relevantes durante la perforación de pozos, ya que generan tiempos no productivos, incremento de costos, retrasos operativos y toma de decisiones bajo condiciones críticas.
Este proyecto busca automatizar parte del proceso de análisis mediante una interfaz que permite:
- Cargar reportes de actividades en formato Excel.
- Seleccionar la hoja de trabajo del archivo cargado.
- Visualizar las columnas disponibles del reporte.
- Filtrar información por fecha o rango de días asociados al evento de atrapamiento.
- Descargar el archivo filtrado.
- Ejecutar un procesamiento automatizado con apoyo de inteligencia artificial.
- Generar una hoja de identificación del mecanismo de atrapamiento en formato Excel.
- Presentar el mecanismo de atrapamiento identificado con base en criterios técnicos.
El sistema se basa en la interpretación de eventos operativos registrados antes y después del atrapamiento. A partir de estos eventos, se evalúan condiciones como:
- Dirección del movimiento de la tubería de perforación antes del atrapamiento.
- Movimiento descendente de la sarta después del atrapamiento.
- Condición de rotación posterior al atrapamiento.
- Condición de circulación posterior al atrapamiento.
Estas condiciones permiten asignar valores a tres posibles mecanismos principales:
- Empacamiento o Puenteo
- Presión Diferencial
- Geometría del Pozo
El mecanismo con mayor puntuación en la hoja de identificación se considera el mecanismo más probable de atrapamiento.
Figura 1. Hoja de identificación del mecanismo de atrapamiento.
Mitchell, J. (2001). Trouble-Free Drilling: Stuck Pipe Prevention (Vol. 1). Drilbert Engineering Inc.
El sistema está compuesto por dos partes principales:
La interfaz fue desarrollada en MATLAB App Designer y permite al usuario interactuar con el sistema mediante ventanas, tablas, botones, listas desplegables y selectores de fecha.
Funciones principales de la interfaz:
- Carga de archivos
.xlsx. - Selección de hoja de archivo.
- Visualización de datos cargados.
- Selección de columnas relevantes.
- Filtrado por fecha de inicio y fecha final del atrapamiento.
- Descarga del archivo filtrado.
- Ejecución del procesador de inteligencia artificial.
- Visualización de resultados en la pestaña de salida.
Archivo principal:
SistemaHIMA.mlapp
Nota: en este repositorio el código fuente exportado desde MATLAB App Designer puede encontrarse como archivo
.mo como texto auxiliar, según la versión de trabajo.
El procesamiento automatizado se realiza mediante el modelo Llama-3.1-nemotron-70b-instruct con un script de Python que:
- Lee el archivo Excel de actividades.
- Convierte el contenido del Excel a texto ordenado.
- Identifica eventos antes y después del atrapamiento.
- Analiza palabras clave operativas como:
sarta atrapadatorsióncompresiónsin circulaciónintento de empacamientotrabaja sartasin movimiento
- Clasifica las operaciones.
- Llena la hoja de identificación.
- Genera un archivo Excel con los resultados.
Archivo principal:
Sistema_IMAP_ProcesadorIA.py
- MATLAB R2022b o superior recomendado.
- App Designer.
- Soporte para lectura de archivos Excel.
- Python 3.10 o superior.
- Librerías requeridas:
pip install pandas openpyxl openaipandas
openpyxl
openai
os
reEl procesador utiliza un cliente compatible con la API de OpenAI/NVIDIA para realizar el análisis del texto operativo.
Por seguridad, no se recomienda guardar claves API directamente en el código fuente. Se sugiere utilizar una variable de entorno:
setx NVIDIA_API_KEY "tu_clave_api"Y en Python:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key=os.getenv("NVIDIA_API_KEY")
)Puede obtener una clave API Key desde: https://docs.api.nvidia.com/nim/reference/llm-apis
Abrir el archivo principal de la interfaz desde MATLAB App Designer o ejecutar la clase exportada:
app = SistemaHIMAv1;En la pestaña Input:
- Presionar el botón Cargar.
- Seleccionar el archivo Excel con los reportes de actividades.
- Elegir la hoja del archivo.
- Verificar que los datos se muestren correctamente en la tabla.
En el componente List Box, seleccionar las columnas que contienen información relevante, por ejemplo:
- Fecha
- Hora inicio
- Hora fin
- Actividad
- Bitácora
- Descripción operativa
Seleccionar:
- Día de inicio
- Día final
Después presionar Aplicar Filtrado.
Presionar Descargar Filtrado para guardar el archivo procesado en formato .xlsx.
Presionar el botón Ejecutar para llamar al script de Python encargado del análisis con inteligencia artificial.
En la pestaña Output, el sistema mostrará:
- Resultado del procesamiento.
- Tabla de la hoja de identificación.
- Archivo Excel generado con el análisis.
Durante la ejecución del sistema se pueden generar los siguientes archivos:
| Archivo | Descripción |
|---|---|
Archivo_Temporal_Ordenado.txt |
Texto ordenado generado a partir del archivo Excel. |
Clasificacion_Atrapamiento.txt |
Clasificación de operaciones antes y después del atrapamiento. |
Hoja_Identificacion_AI.txt |
Resultado textual del llenado de la hoja de identificación. |
Hoja_Identificacion_AI.xlsx |
Archivo final en Excel con la hoja de identificación generada. |
La hoja de identificación asigna valores a cada mecanismo de acuerdo con la condición observada:
| Condición evaluada | Opciones principales |
|---|---|
| Dirección del movimiento de la TP antes del atrapamiento | Hacia arriba, Hacia abajo, Estática |
| Movimiento descendente después del atrapamiento | Libre, Con restricción, Imposible |
| Rotación después del atrapamiento | Libre, Con restricción, Imposible |
| Circulación después del atrapamiento | Libre, Con restricción, Imposible |
Cada opción asigna valores a:
- Empacamiento o Puenteo.
- Presión Diferencial.
- Geometría del Pozo.
Al final se calcula un total para cada mecanismo. El mayor total orienta la identificación del mecanismo predominante.
Versión inicial del sistema:
- Interfaz gráfica funcional en MATLAB.
- Carga y visualización de archivos Excel.
- Filtrado por columnas y fechas.
- Descarga del archivo filtrado.
- Ejecución de script externo en Python.
- Generación automática de hoja de identificación con apoyo de IA.
Proyecto desarrollado como parte del trabajo académico y técnico relacionado con la identificación de mecanismos de atrapamiento en operaciones de perforación de pozos.
Asesoría técnica:
M. en C. Cantera Martínez Gerardo
Jefe de Academia de Perforación
ESIA Ticomán | 2024
M. en C. José Adalberto Morquecho Robles
Especialista en Perforación y Geomecánica de pozos
Grupo TANIS | 2024
Mitchell, J. (2001). Trouble-Free Drilling: Stuck Pipe Prevention (Vol. 1). Drilbert Engineering Inc.




