con OFM
______________________________________________________________________
Armando Proyectos Simples con OFM
Introduccin
Este apunte est dedicado a quienes quieren armar proyectos simples de
OFM. Digo simples pues existen muchas posibilidades en la base de datos
que no sern cubiertas aqu1. El presente documento se concentrar en la
carga de datos mensuales de produccin, inyeccin, propiedades y datos
espordicos de ensayos.
Antes de poder cargar algn dato en OFM, es necesario comprender qu
posibilidades de carga tenemos, dnde se guardan los datos y cmo se
preparan los archivos ASCII para incorporarlos al proyecto. Finalmente,
explicaremos cmo crear un proyecto desde cero y eventualmente
agregarle ms datos.
______________________________________________________________________
Armando Proyectos Simples con OFM
que los datos en la tabla de produccin contienen una columna igual que
dice especficamente a quin pertenece el valor y que hace de enlace entre
ambas tablas.
Todo proyecto de OFM debe tener una tabla maestra y la primer columna de
esta base es usada como el pegamento entre las distintas tablas. Esta
columna tiene que ser definida como un STRING, es decir, una variable que
guarda una tira de caracteres (y no un nmero). Columna pegamento, en
la jerga de OFM se dice primary key.
En general (y en mbito de este apunte), los nombres que figuran en esta
columna sern los dueos de los datos que se cargarn luego en las dems
tablas.
______________________________________________________________________
Armando Proyectos Simples con OFM
El dibujo muestra tres pozos distintos, con dos intervalos cada uno. Cada uno de estos
intervalos produce gas o petrleo de distintos reservorios. La produccin de petrleo se
acumula en distintos tanques.
Los datos de campo disponibles para guardar en OFM son:
Etc.
______________________________________________________________________
Armando Proyectos Simples con OFM
Por ejemplo, la coordenada X del pozo P1 tiene un solo valor que no cambia
y si lo hace, es una correccin del valor, que reemplaza al anterior. No es
necesario mantener una historia de los valores de coordenadas X de P1. Lo
mismo podemos decir de, por ejemplo, el reservorio del cual una capa
produce. Estos tipos de datos se llaman estticos.
Como contrapartida a los datos estticos, estn los datos dinmicos, que s
requieren mltiples valores. Ejemplos de ellos seran los datos histricos de
produccin, que varan con la fecha o de perfiles, que varan con la
profundidad: Necesitamos guardar varios valores de produccin de petrleo
o necesitamos varios valores de GR para el mismo pozo.
Los datos estticos se cargan en tres tipos de tablas: STATIC MASTER, SORT o
STATIC.
Datos estticos
STATIC MASTER: Este es el tipo de tabla que se usa para crear la tabla
maestra. Se puede crear slo una tabla maestra por proyecto y como OFM
usa mucho esta tabla, es conveniente mantenerla lo ms pequea posible
(a lo ancho, es decir, minimizar el nmero de columnas), con lo cual se
deberan guardar slo los datos que obligatoriamente van all. La siguiente
lista detalla los lineamientos del contenido sugerido para una tabla
maestra2:
______________________________________________________________________
Armando Proyectos Simples con OFM
Porosidad
Etc.
Notar que todos son valores que necesitan solamente un nico valor.
Adems, son valores numricos.
La siguiente figura muestra una distribucin coherente de datos estticos en
las tres tablas mencionadas:
La tabla maestra del proyecto se llama XY4. Contiene los nombres de los
distintos intervalos con sus coordenadas. Tambin contiene los alias (que
por ser breves, van a ser prcticos para los mapas) y el nombre oficial del
pozo. Notar que las capas que pertenecen al mismo pozo repiten este valor
(y el de las coordenadas).
En la tabla de sort (que siempre se llama SC) de decidi guardar todas las
particularidades de estas capas que se describen mediante un texto. El
resto de los valores numricos, ha sido volcado a una tercer tabla esttica
llamada Propiedades.
Es importante destacar que las relaciones entre tablas con datos estticos
son del tipo uno a uno. Por cada lnea de la tabla maestra hay una y solo
una en las dems tablas:
No pueden existir dos lneas para P1:A en la tabla de sort.
Datos dinmicos
En este apunte trataremos solo dos tipos de tablas que pueden guardar este
tipo de datos: MONTHLY y SPORADIC.
La relacin entre este tipo de tablas y la maestra es del tipo uno a varios,
que significa
que para cada lnea de la tabla maestra puede haber varias lneas en las
tablas MONTHLY o SPORADIC. Ambos tipos estn pensados para guardar
datos que varan con la fecha y por lo tanto no sirven para guardar, por
ejemplo, perfiles5.
La figura de la pgina 2 muestra un ejemplo de tabla MONTHLY. Notar que
por cada lnea de la tabla maestra hay varias (puede tambin no tener
ninguna, por ejemplo un pozo que nunca produjo) lneas asociadas (por
cada pozo o intervalo, hay varios valores de produccin de petrleo segn la
fecha). La asociacin se hace mediante la primer columna de la tabla
______________________________________________________________________
Armando Proyectos Simples con OFM
Creacin de proyectos
Para crear un proyecto simple, hay que disponer de, al menos, un par de
cosas:
Un archivo con la definicin de la base de datos (opcional)
Los archivos con los datos (uno para cada tabla a llenar)
El archivo con la definicin de la base de datos es el que define qu tablas
van a crearse, de que tipo, con qu nombres, columnas, etc. Este archivo es
opcional pues existen en OFM ciertos modelos predefinidos (llamados
templates). Si alguno de ellos nos es conveniente, no necesitamos de este
archivo. Vamos a crear dos proyectos, con los mismos datos: usando un
template y usando un archivo de definicin.
1243
4232
4232
6600
5433
1232
1232
5800
P1
P2
P2
P3
P1:B
P2:A
P2:C
P3:A
1243 5433
P1
4232.00
1232.0
4232
1232
6600.0
5800.0
ARGNQNAP1x
ARGNQNBP2p
ARGNQNBP2p
ARGMZABP3x
ARGNQNAP1x
P2 ARGNQNBP2p
P2 ARGNQNBP2p
P3 ARGMZABP3x
______________________________________________________________________
Armando Proyectos Simples con OFM
Tabla Maestra
El archivo necesario para rellenar la tabla maestra es el siguiente:
//Contenidodelarchivoejemplo.xy
*METRIC
*TABLENAMEXY
*WELL
*XCOORD
*YCOORD
*ALIAS
P1:A
1243
5433
P1
P1:B
1243
5433
P1
P2:A
4232
1232
P2
P2:C
4232
1232
P2
P3:A
6600
5800
P3
P3:C
6600
5800
P3
*WELLBORE
ARGNQNAP1x
ARGNQNAP1x
ARGNQNBP2p
ARGNQNBP2p
ARGMZABP3x
ARGMZABP3x
Cualquier lnea que comienza con // es ignorada por OFM y sirve para
comentar el archivo, por lo tanto, pueden poner comentarios explicando el
contenido del archivo, la fecha de creacin, etc. La extensin recomendada
para este archivo es xy.
El comando *METRIC indica que los datos estn expresados en unidades
mtricas.
Como las coordenadas estn definidas como unidad de longitud, si no
ponemos este comando, 1243 van a ser interpretados como 1243 pies. Al
poner este comando, se interpretarn correctamente como 1243 metros.
La tabla maestra que contiene el template de PA se llama XY, por lo cual el
segundo comando del archivo especifica que estos datos se guarden en la
tabla con ese nombre.
*WELL, *XCOORD, etc. son los nombres de las columnas de la tabla maestra
de este template que van a almacenar los datos especificados. El orden es
indistinto, siempre y cuando los datos que vienen debajo estn en el mismo
orden.
Tabla de Sort
El archivo para la tabla de sort es similar, aunque los comandos son algo
distintos. Es recomendable que la extensin de este archivo sea srt.
//Contenidodelarchivoejemplo.srt
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo
P1:A
A
A
OIL
P1:B
A
A
OIL
P2:A
A
B
OIL
______________________________________________________________________
Armando Proyectos Simples con OFM
P2:C
B
B
OIL
P3:A
SIN B
GAS
P3:C
B
B
WINJ
Nuevamente, cualquier lnea que comienza con // es ignorada por OFM y
sirve para comentar el archivo. Como la tabla de sort no puede contener
datos numricos, no hay unidades y no se necesita el comando *METRIC (no
tiene sentido).
Una vez ms, el orden en que se definen y se cargan las columnas es
indistinto. Sin embargo, la lnea que define en que orden vienen los datos
(*WELL *TANQUE *CAMPO) debe ser consistente con el orden de los datos
que vienen por debajo.
Tampoco se puede especificar un dato si no se define previamente la
columna. Por ejemplo, el siguiente archivo es incorrecto pues trata de cargar
una columna estado, sin haberla definido previamente.
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo*estado
P1:A
A
A
OIL PRODUCE
P1:B
A
A
OIL PRODUCE
P2:A
A
B
OIL PRODUCE
P2:C
B
B
OIL PRODUCE
P3:A
SIN B
GAS CERRADO
P3:C
B
B
WINJ INYECTA
______________________________________________________________________
Armando Proyectos Simples con OFM
Tabla de Propiedades
El archivo de carga de la tabla propiedades es similar al visto para la tabla
maestra. Sin embargo, es conveniente que su nombre tenga una extensin
dat. Como en el template de PA no existe una tabla de propiedades,
tendremos que crearla antes de cargar este archivo. Por ello, podemos
poner cualquier nombre de tabla y columnas. Por ahora, este sera el
archivo de datos. Luego veremos como crear la tabla necesaria en el
template para que acepte a estos datos.
//Contenidodelarchivopropied.dat
*METRIC
*TABLENAMEPROPIEDADES
*WELL*POROSIDAD*PERMEABILIDAD*ESPESOR
P1:A0.182.20.6
P1:B0.122.40.7
P2:A0.111.31.2
P2:C0.1716.00.5
P3:A0.1513.10.9
P3:C0.1316.01.1
______________________________________________________________________
Armando Proyectos Simples con OFM
Los comentarios a hacer son los mismos que antes. Notar que se especifica
el nombre de la tabla destino y el nombre de sus columnas. Recordar que el
template no contiene a esta tabla, por lo cual va a ser necesario crearla
primero antes de intentar cargar estos datos.
Datos de Produccin
Vamos a trabajar con unos pocos datos, para simplificar la carga. Existen
dos formatos
para estos archivos que pasamos a mostrar.
//Contenidodelarchivoproduc.prd
//Formato 1
*METRIC
*TABLENAMEPRD
*WELL*DATE*DAYS*OIL*GAS*WATER
P1:A 199901
20
80
120 20
P1:A 199902
25
81 130 21
P1:A 199903
22
78 150 20
P1:A 199904
30
78 140 19
P1:A 199905
30
75 100 22
P1:A 199906
24 74
110 23
P1:B 199902
21 60
0
16
P1:B 199903
27 59
0
15
P1:B 199904
28 59
0
13
P1:B 199905
22 60
0
16
P1:B 199906
23 60
0
17
______________________________________________________________________
Armando Proyectos Simples con OFM
199902
21
60 0
16
199903
27
59 0
15
199904
28
59 0
13
199905
22
60 0
16
199906
23
60 0
17
Notar que se agrega un nuevo comando (*KEYNAME) que significa: Los
datos que siguen, hasta nuevo aviso, pertenecen a
Datos de Ensayos
Los datos de ensayos son datos similares a los vistos para produccin:
pertenecen a una determinada capa y fecha. Sin embargo, no tienen la
regularidad de stos: No tenemos datos de ensayos una vez por mes, sino
de vez en cuando.
Guardar estos datos en una tabla de tipo MONTHLY sera un inconveniente
pues sta hace lugar para uno y siempre un dato al mes: No me permite
guardar dos valores en el mismo mes y si no guardo nada en un
determinado mes, igual crea el lugar.
______________________________________________________________________
Armando Proyectos Simples con OFM
P1:B199902022.000.000.53
P1:B199905192.000.000.53
P3:A199906012.000.000.57
Datos de Inyeccin
Para terminar, citamos a un archivo con datos de inyeccin. Para simplificar,
diremos que el pozo P3 est siendo usado para inyectar a travs de su capa
punzada en el reservorio C, o sea que P3:C es inyectora.
El archivo de carga de los datos de inyeccin de esta capa podra ser:
//ContenidodelarchivoInyeccion.dat
//Formato1
*METRIC
*TABLENAMEWINJ
*DATE*WIDAY*WINJ*WIPRE
*KEYNAMEP3:C
19990425.41100400
19990530.01600480
19990627.81800467
o bien
//ContenidodelarchivoInyeccion.dat
//Formato2
*METRIC
*TABLENAMEWINJ
*WELL*DATE*WIDAY*WINJ*WIPRE
P3:C19990425.41100400
P3:C19990530.01600480
P3:C19990627.81800467
Notar que este archivo est preparado para la tabla WINJ del template, que
se usa para guardar los valores mensuales de inyeccin de agua. WIDAY es
una de las columnas que guarda los das de inyeccin al mes, WINJ es el
volumen de agua inyectada y WIPRE la presin.
Armado del proyecto con el template de PA
Crear un directorio vaco para guardar al proyecto. Es aconsejable crear un
subdirectorio llamado Data, donde colocaremos los archivos ASCII
preparados para el proyecto. Una vez hecho esto, arrancar OFM.
Con OFM abierto, seleccionar File/New. Esto inicia el proceso de creacin
del nuevo proyecto. Elegir el directorio vaco creado para el proyecto e
ingresar el nombre deseado. En el ejemplo, se bautiz al proyecto como
Basado en PA.
______________________________________________________________________
Armando Proyectos Simples con OFM
______________________________________________________________________
Armando Proyectos Simples con OFM
En la parte superior se
muestran
los
archivos
disponibles. Al hacer doble
click sobre ellos, se mueven
a la parte inferior.
Esta
seccin
inferior
muestra los archivos que
van a ser cargados.
Seleccionar los archivos a
cargar, tal como lo muestra
la figura.
______________________________________________________________________
Armando Proyectos Simples con OFM
Los datos ya estn cargados, sin embargo hace falta decirle a OFM un par
de cosas importantes. Lo primero a hacer es Edit/Map/Association. Esto
abre una ventana donde debemos asociar los distintos datos cargados.
El primer botn (WellType-Sort) se
usa para decirle a OFM en cul
columna de la tabla de Sort estn las
siglas que describen al tipo de smbolo
a usar en el mapa. Seleccionar la
columna TIPO y el Well Symbol File
Default.
Repasar
las
opciones segn la
figura
y
hacer
click en OK. OFM
muestra
nuevamente
el
mapa,
aunque
ahora
con
distintos smbolos,
acordes
a
lo
indicado
en
la
columna TIPO de
la tabla de sort.
______________________________________________________________________
Armando Proyectos Simples con OFM
______________________________________________________________________
Armando Proyectos Simples con OFM
______________________________________________________________________
Armando Proyectos Simples con OFM
Sigla
Descripcin en la
leyenda
OIL
Oil Producer
GAS
Gas Producer
GINJ
Gas Injector
WINJ
Water Injector
CINJ
Carbon Dioxide Injector
CO2PRD Carbon Dioxide Producer
DRY
Dry Hole
PROSP Prospect
SWDIS
Salt Water Disposal
P&A
Plugged & Abandoned
SCYCL
ObSer
N2INJ
WSUPP
SINJ
SPROD
GEOTH
HORIZ
DISCV
MON
WACO2
ITA
PTA
SWD
Cyclic Steam
Observation
Nitrogen Injector
Water Supply
Steam Injection
Steam Production
Geothermal Producer
Horizontal
Discovery Well
Monitor Well
WACO2
TA'd Injector
TA'd Producer
SWD
______________________________________________________________________
Armando Proyectos Simples con OFM
Luego, desde el mapa base hacemos Edit/Project/Data. OFM nos muestra
la lista de tablas que existen en el proyecto. Como vern, existen muchas y
esto es debido a que
______________________________________________________________________
Armando Proyectos Simples con OFM
hayan sido cargados correctamente en el proyecto de OFM. Si los datos
coinciden, podemos seguir. Si no, ser necesario investigar la causa y
recargar el archivo ASCII. El siguiente paso es controlar los datos de Sort.
Para ello, cerramos esta grilla con File/Close y una vez en el mapa base
hacemos Edit/Project/Sort. OFM muestra la tabla de sort y su contenido,
como en la figura anterior.
Una vez revisados los datos de sort, hacemos File/Close.
El resto de los datos a revisar son del tipo dinmico y no se pueden ver
todos a la vez. OFM es capaz de mostrar una grilla similar a la vista pero de
a un dueo a la vez, o sea, de a una historia a la vez. El siguiente ejemplo
clarifica esta aclaracin.
______________________________________________________________________
Armando Proyectos Simples con OFM
resto de la tabla.
Completamos la siguiente ventana con la definicin de la primera de las
columnas: Porosidad (prxima figura, a la izquierda). Notar que hemos
elegido tambin una unidad del tipo Fraction.
______________________________________________________________________
Armando Proyectos Simples con OFM
archivos que ya cargamos. Como no los queremos volver a cargar, hacemos
click en
Clear All y seleccionamos el
archivo ASCII con los datos que
van a la tabla de propiedades, tal
como se muestra en la siguiente
figura. Luego hacemos click en
Load y OFM carga los datos.
Con este ltimo paso damos por finalizado el primer ejercicio. A modo de
repaso,
resumiremos los principales puntos de esta seccin.
____________________________________________________________________
Armando Proyectos Simples con OFM
Hemos preparado los archivos ASCIIs con los datos necesarios para el
nuevo proyecto.
Como el proyecto se basa en el template de PA, no es necesario crear las
tablas antes de la carga. Sin embargo, los archivos de datos deben estar
preparados para ser tomados por las tablas de este template.
Creamos un directorio nuevo, vaco y creamos all el nuevo proyecto. En
la misma operacin, hicimos la carga de nuestros archivos de datos.
Una vez hecha la carga, revisamos las asociaciones desde
Edit/Map/Associations.
El archivo de definicin
Este archivo posee una sintaxis algo complicada, sin embargo, con el
mnimo de comandos se puede crear la estructura bsica y completarla
desde dentro del programa,
en forma interactiva. Este es el modo en que vamos a proceder. Para ms
detalles del archivo de definicin, ver la seccin correspondiente mas
adelante.
En general, el archivo define una a una las tablas que deseamos incluir en el
proyecto.
Como regla, se debe definir la tabla maestra primero y se debe prestar
especial atencin a que la primer columna que en ella se defina sea de tipo
STRING. Esta ser la columna pegamento (primary key) del proyecto.
El siguiente es un ejemplo de archivo de definicin mnimo, con todas las
tablas que
vamos a necesitar.
______________________________________________________________________
Armando Proyectos Simples con OFM
//Archivodedefinicinbsico.manual.def
*TABLENAMEMAESTRAStaticMaster
CAPA
XCOORD
YCOORD
ALIAS
POZO
STRING20
FLOAT
FLOAT
STRING10
STRING30
*TABLENAMEPRODUCCIONMonthly
DIAS
FLOAT
OIL
FLOAT
GAS
FLOAT
WATER
FLOAT
PDOIL
CALCULATED*4"OIL/DIAS"
PDGAS
CALCULATED*4"GAS/DIAS"
PDWATER
CALCULATED*4"WATER/DIAS"
*TABLENAMEINYECCIONMonthly
DIAS
FLOAT
WATERINJ
FLOAT
PRESION
FLOAT
PDWINJ
CALCULATED*4"WATERINJ/DIAS"
*TABLENAMETESTSporadic
DATE
OIL
GAS
WATER
HORAS
INT4
FLOAT
FLOAT
FLOAT
FLOAT
*TABLENAMEPROPIEDADESStatic
POROSIDAD
FLOAT
PERMEABILIDAD
FLOAT
ESPESOR
FLOAT
______________________________________________________________________
Armando Proyectos Simples con OFM
Para nuestro caso, en el cual partimos desde nada, decidimos escribir este
archivo con los detalles mnimos necesarios. Una vez terminado, an
debemos preparar el resto de los archivos ASCII de datos en forma similar al
caso anterior. Sin embargo, es necesario notar que los nombres de las
tablas ahora son distintos por lo cual, algunas partes de estos sern
diferentes. Los siguientes cuadros muestran los distintos archivos de datos
preparados para ser cargados en las tablas especificadas en el archivo de
definicin.
Tabla Maestra
//Contenidodelarchivoejemplo.xy
*METRIC
*TABLENAMEMAESTRA
*CAPA*XCOORD*YCOORD*ALIAS*POZO
P1:A1243
5433 P1 ARGNQNAP1x
P1:B1243
5433 P1 ARGNQNAP1x
P2:A4232
1232 P2 ARGNQNBP2p
P2:C4232
1232 P2 ARGNQNBP2p
P3:A6600
5800 P3 ARGMZABP3x
P3:C6600
5800 P3 ARGMZABP3x
Tabla de Sort
//Contenidodelarchivoejemplo.srt
//Igualqueelanterior
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo
P1:AA
A
OIL
P1:BA
A
OIL
P2:AA
B
OIL
P2:CB
B
OIL
P3:ASIN
B
GAS
P3:CB
B
WINJ
Tabla de Propiedades
//Contenidodelarchivopropied.dat
*METRIC
*TABLENAMEPROPIEDADES
*CAPA*POROSIDAD*PERMEABILIDAD*ESPESOR
P1:A
0.18
2.2
0.6
P1:B
0.12
2.4
0.7
P2:A
0.11
1.3
1.2
P2:C
0.17
16.0
0.5
P3:A
0.15
13.1
0.9
P3:C
0.13
16.0
1.1
Tabla de Produccin
//Contenidodelarchivoproduc.prd
//Formato 1
______________________________________________________________________
Armando Proyectos Simples con OFM
*METRIC
*TABLENAMEPRODUCCION
*CAPA*DATE*DIAS*OIL*GAS*WATER
P1:A1999012080 12020
P1:A199902258113021
P1:A199903227815020
P1:A199904307814019
P1:A199905307510022
P1:A199906247411023
P1:B1999022160016
P1:B1999032759015
P1:B1999042859013
P1:B1999052260016
P1:B1999062360017
//Contenidodelarchivoproduc.prd
//Formato 2
*METRIC
*TABLENAMEPRODUCCION
*DATE*DIAS*OIL*GAS*WATER
*KEYNAMEP1:A
199901208012020
199902258113021
199903227815020
199904307814019
199905307510022
199906247411023
*KEYNAMEP1:B
1999022160016
1999032759015
1999042859013
1999052260016
1999062360017
Datos de Ensayos
//Contenidodelarchivotests.dat
//Formato 1
*METRIC
*TABLENAMETEST
*DATE*OIL*GAS*WATER
*KEYNAMEP1:A
199901122.674.000.67
199902192.704.330.70
199905022.503.330.73
199606242.473.670.77
*KEYNAMEP1:B
199902022.000.000.53
199905192.000.000.53
*KEYNAMEP3:A
199906012.000.000.57
______________________________________________________________________
Armando Proyectos Simples con OFM
//Contenidodelarchivotests.dat
//Formato 2
*METRIC
*TABLENAMETEST
*CAPA*DATE*OIL*GAS*WATER
P1:A199901122.674.000.67
P1:A199902192.704.330.70
P1:A199905022.503.330.73
P1:A199606242.473.670.77
P1:B199902022.000.000.53
P1:B199905192.000.000.53
P3:A199906012.000.000.57
Datos de Inyeccin
//ContenidodelarchivoInyeccion.dat
//Formato 1
*METRIC
*TABLENAMEINYECCION
*DATE*DIAS*WATERINJ*PRESION
*KEYNAMEP3:C
19990425.41100400
19990530.01600480
19990627.81800467
//ContenidodelarchivoInyeccion.dat
//Formato 2
*METRIC
*TABLENAMEINYECCION
*CAPA*DATE*DIAS*WATERINJ*PRESION
P3:C19990425.41100400
P3:C19990530.01600480
P3:C19990627.81800467
______________________________________________________________________
Armando Proyectos Simples con OFM
Una vez hecho esto, OFM vuelve a abrir la ventana del Data Loader. Como
dijimos, en
primera instancia vamos
a cargar nicamente al
archivo de definicin,
por lo tanto, la ventana
del Data Loader, debera
quedar
como
la
siguiente figura.
Una vez hecho esto,
clickeamos Load y OFM
MAESTRA
XCOORD
YCOORD
ft
ft
PRODUCCION
DIAS
OIL
GAS
WATER
PDOIL
PDGAS
PDWATER
Days
bbl
cf
bbl
bbl/d
cf/d
bbl/d
INYECCION
DIAS
WATERINJ
Days
bbl
______________________________________________________________________
Armando Proyectos Simples con OFM
PRESION
psi
PDWINJ
bbl/d
TEST
DATE
OIL
GAS
WATER
HORAS
Date
bbl/d
cf/d
bbl/d
Hours
PROPIEDADES
POROSIDAD
Fraction
PERMEABILIDAD md
ESPESOR
ft
Como vern, las unidades que les estoy sugiriendo son inglesas. Por ahora,
me voy a limitar a una sugerencia, sin entrar en detalles sobre el tema de
unidades (tratado en profundidad en el OFM Administrator Handbook). En
general, es ms sencillo asignar las unidades desde el sistema ingls (o sea,
con el Tools/Settings/Units en no-mtrico).
El problema es que hay varias unidades inglesas que tienen el mismo
equivalente en el sistema mtrico. Por ejemplo:
______________________________________________________________________
Armando Proyectos Simples con OFM
Para cargar los datos, debemos llamar al cargador de datos: File/Get
External
Data/Data Loader. En este
pasos, hay que asegurarse
de borrar el manual.def,
pues sino volveremos al
principio y perderemos las
unidades
definidas
anteriormente.
Luego seleccionamos los
archivos a cargar, como se
indic
en
el
ejercicio
anterior. La figura muestra
este paso. Notar que estn
todos
los
archivos
seleccionados.
El de inyeccin tambin, solo
que est ltimo en la lista y
no se ve.
Una
vez
hecho
esto,
clickeamos en Load.
OFM carga los archivos y nos
muestra el mapa base con
______________________________________________________________________
Armando Proyectos Simples con OFM
Una vez hechas estas modificaciones, el mapa cambia como se muestra en
la siguiente figura.
Control de datos
El prximo paso sera el de asegurarse de que los datos hayan sido
correctamente. Esto
se hace repitiendo los mismos pasos que mencionamos en el anterior
ejercicio, en la
seccin Control de Datos, de la pgina 18. Recuerden que ahora las tablas y
columnas
tienen otros nombres, por lo cual, al seguir las mismas instrucciones habr
que tener
esto en cuenta.
______________________________________________________________________
Armando Proyectos Simples con OFM
Tabla Maestra
Tabla de Sort
______________________________________________________________________
Armando Proyectos Simples con OFM
Datos de Produccin de P1:A
______________________________________________________________________
Armando Proyectos Simples con OFM
Datos de Ensayos de P1:B
Tabla de Propiedades
Reusando Datos
En los ejercicios anteriores hemos visto como construir proyectos sencillos
basados en un template o en un archivo de definicin. Tambin vimos que
un template es ms cmodo siempre que la estructura se adapte a nuestras
necesidades. Por el contrario, el archivo de definicin es ms flexible pero
un poco ms laborioso. Existe entre ambos una solucin de compromiso y es
la de robarle el archivo de definicin a un proyecto existente. Este mtodo
es muy conveniente pues el archivo no solo contiene la estructura de tablas,
sino todo lo relacionado con ellas: unidades, apariencia en plots y reportes,
multiplicadores, etc.
En las siguientes secciones, mostraremos como hacer este tipo de
operaciones y que detalles deben tenerse en cuenta al preparar los archivos
ASCII de datos.
Archivo de Definicin
El archivo de definicin puede ser creado a partir de otro que robemos a
algn proyecto modelo. A modo de ejemplo, abramos el proyecto DemoDB
que viene con la distribucin de OFM.
______________________________________________________________________
Armando Proyectos Simples con OFM
*rh"""HEADERID""UPPERPERF"
*rf101Right
LOWERPERF
FLOAT
*pn"HEADERID.LOWERPERF"
*pa"Cyan""Solid""None"4
*u"None"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""HEADERID""LOWERPERF"
*rf101Right
TOTALDEPTH
FLOAT
*pn"HEADERID.TOTALDEPTH"
*pa"Red""Solid""None"4
*u"None"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""HEADERID""TOTALDEPTH"
*rf101Right
MIDPERFDEPTH
FLOAT
*pn"HEADERID.MIDPERFDEPTH"
*pa"Green""Solid""None"4
*u"None"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""HEADERID""MIDPERFDEPTH"
*rf101Right
OWNERFRACTION
FLOAT
*pn"HEADERID.OWNERFRACTION"
*pa"Blue""Solid""None"4
*u"None"
______________________________________________________________________
Armando Proyectos Simples con OFM
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""HEADERID""OWNERFRACTION"
*rf101Right
WELLBORE
STRING20
*rh"""HEADERID""WELLBORE"
*rf201Right
*TABLENAMEMONTHLYPRODMonthly
DAYSINT4
*pn"ProducingDays"
*pa"Black""Solid""None"4
*u"days"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""Producing""Days"
*rf100Right
OILFLOAT
*pn"MonthlyOil"
*pa"Green""Solid""None"4
*u"bbl"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""Monthly""Oil"
*rf100Right
GASDOUBLE
*pn"MonthlyGas"
*pa"Red""Solid""None"4
*u"cf"
*mu"M""M"
*id0
*maYesNone
*da0099999
*rh"""Monthly""Gas"
*rf100Right
WATERFLOAT
*pn"MonthlyWater"
*pa"Blue""Solid""None"4
*u"bbl"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""Monthly""Water"
*rf100Right
PRESSURE
FLOAT
______________________________________________________________________
Armando Proyectos Simples con OFM
*pn"ReservoirPressure"
*pa"Black""None""Diamond"0
*u"psia"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"Reservoir""Pressure"""
*rf100Right
STATUSSTRING4
*rh"Status"""""
*rf41Right
ONCALCULATED*1"OIL|GAS|WATER"
*pn"MONTHLYPROD.ON"
*pa"Gray""Solid""None"4
*u"None"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""MONTHLYPROD""ON"
*rf101Right
Etctera
Como vemos, un archivo de definicin no solo contiene los nombres de las
tablas y sus columnas, sino que tambin puede contener cada uno de los
posibles atributos de ellas.
Un archivo con todo esto correctamente definido hace que el paso
intermedio de asignacin de unidades mostrado en el ejercicio anterior sea
totalmente innecesario. Un buen archivo de definicin contiene todo esto,
solo que es difcil especificarlo a mano.
Analicemos alguna de las variables, por ejemplo el petrleo de la tabla de
produccin.
OIL FLOAT
*pn"MonthlyOil"
*pa"Green""Solid""None"4
*u"bbl"
*mu"1""1"
*id0
*maYesNone
*da0099999
*rh"""Monthly""Oil"
*rf100Right
Estos comandos crean la columna OIL de tipo FLOAT. Sin embargo, tambin
especifican:
*pn: plot name, la leyenda que va a incluirse en los plots cuando se use esta
variable.
*pa: plot attributes, el color, tipo de lnea, markers y su ancho para los plots.
______________________________________________________________________
Armando Proyectos Simples con OFM
*u: units, las unidades de la variable.
*mu: multiplicadores de entrada y salida, para la carga y presentacin.
*ma: math average, para especificar si el valor de grupo es una suma o
promedio.
*da: data range, para especificar los valores mximo, mnimo y default.
*rh: report header, que aparecer en las tres lneas de la cabeza del reporte.
*rf: report format, ancho, decimales y alineacin en los reportes.
Etc.
Existen ms atributos especificables mediante este archivo, descriptos en el
Help.
Qu es lo que queremos explicar con esto? Que una vez que tenemos un
proyecto modelo, con todo definido a nuestro gusto, es muy fcil clonarlo
______________________________________________________________________
Armando Proyectos Simples con OFM
______________________________________________________________________
Armando Proyectos Simples con OFM
OFM ensambla las tablas y carga los datos. Inmediatamente despus,
muestra el mapa con los resultados. Las asociaciones se deben revisar,
como siempre.
Archivos de Datos
Existen una serie de consejos, reglas y trucos para los archivos de datos.
Trataremos de exponerlas en esta seccin.
Datos numricos
Se han visto problemas cuando los datos numricos tienen decimales y
estos estn en el archivo a lo latino, es decir, con la coma como separador
decimal. Mi mejor consejo es que trabajen siempre con el punto y jams
mezclen. Es tambin recomendable que el mismo Windows est seteado
con este formato.
Ejemplos:
//ContenidodelarchivoInyeccion.dat
//Formato1
*METRIC
*TABLENAMEWINJ
*DATE*WIDAY*WINJ*WIPRE
______________________________________________________________________
Armando Proyectos Simples con OFM
*KEYNAMEP3:C
19990425.41100400
19990530.01600480
19990627.81800467
//ContenidodelarchivoInyeccion.dat
//Formato1
*METRIC
*TABLENAMEWINJ
*DATE*WIDAY*WINJ*WIPRE
*KEYNAMEP3:C
19990425,41100400
19990530,01600480
19990627,81800467
Datos no numricos
Cuando el archivo contiene datos no numricos (tiras de caracteres), es
necesario seguir la siguiente regla: Si la tira contiene espacios, es necesaria
encomillarla. Si no hacen esto, OFM considera como dato a la primer parte
antes del espacio. Lo que siga, va a ser asignado como dato siguiente!
Por ejemplo,
//Contenidodelarchivoejemplo.srt
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo
P1:ATanqueACampoAOIL
P1:BTanqueACampoAOIL
P2:ATanqueACampoBOIL
P2:CTanqueBCampoBOIL
P3:ASinTanqueCampoBGAS
//Contenidodelarchivoejemplo.srt
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo
P1:A
Tanque A
Campo A OIL
P1:BTanqueACampoAOIL
P2:ATanqueACampoBOIL
P2:CTanqueBCampoBOIL
P3:ASinTanqueCampoBGAS
Tanque va a ir a *tanque, A
va a ir a *campo, Campo va
a ir a *tipo y ni A ni OIL van
a ser tenidos en cuenta
Alineacin
La alineacin de los datos es innecesaria. Ya se ha mencionado esto antes
pero lo repetimos para que la seccin quede completa. Para separar dos
datos en una lnea,
______________________________________________________________________
Armando Proyectos Simples con OFM
OFM necesita al menos un espacio o un tabulador o cualquier combinacin de ellos.
Para
OFM, los siguientes archivos son igualmente vlidos.
ARGNQNAP1x
ARGNQNBP2p
ARGNQNBP2p
ARGMZABP3x
P1:B12435433P1ARGNQNAP1x
P2:A 4232.001232.0P2
P2:C
4232 1232
P2
ARGNQNBP2p
ARGNQNBP2p
P3:A6600.05800.0P3ARGMZABP3x
Fechas
El campo de fechas tiene muchas posibilidades. El formato depende del tipo
de tabla a la que se va a cargar la fecha. Si la tabla es mensual, no es
necesario especificar el da, por lo cual, las siguientes fechas son totalmente
vlidas y equivalentes:
19961201
961201
9612
Si la tabla que va a aceptar los datos es diaria o espordica, el da del mes
es necesario.
En este caso, cualquiera de estos formatos es vlido y equivalente:
19961201
961201
Como OFM es compatible con el problema del ao 2000, tiene un algoritmo
para discernir entre fechas ambiguas. Cuando un ao se especifica con solo
dos dgitos, OFM los trata de diferente manera, de acuerdo al ao
especificado.
Si el ao nn es menor que 20, entonces lo considera como 20nn. Si por el
contrario, es mayor o igual a 20, OFM lo considera como 19nn. Para tener
total control, es conveniente especificar los cuatro dgitos. Si esto no se
hace, OFM aplica la regla mencionada.
Ejemplos
1801
1901
2001
2101
2201
9902
201801
201901
192001
192101
192201
199902
Ignorando datos
Cuando cargamos un archivo de datos, existen dos maneras de decirle a
OFM que ignore ciertos datos: Que ignore cierta columna o que ignore cierta
seccin del final del archivo.
______________________________________________________________________
Armando Proyectos Simples con OFM
Si queremos que OFM ignore cierta columna que est presente en el archivo
y no queremos cargar, usamos el comando *SKIP como titulo de esa
columna. Ejemplo:
//Contenidodelarchivoejemplo.srt
*define
*tanque
*campo
*tipo
*end_define
*SKIP *well*tanque*SKIP *campo*tipo
1) P1:ATanqueA199001 CampoAOIL
2) P1:BTanqueA199001 CampoAOIL
3) P2:ATanqueA199001 CampoBOIL
4) P2:CTanqueB199001 CampoBOIL
5) P3:ASinTanque199001 CampoBGAS
OFM ignorar los datos de las columnas 1 y 4, debido al comando
especificado. Esto
tambin sirve para archivos de datos, por ejemplo:
//ContenidodelarchivoInyeccion.dat
//Formato1
*METRIC
*TABLENAMEINYECCION
*DATE*DIAS*WATERINJ*PRESION*SKIP
*KEYNAMEP3:C
19990425.41100400921
19990530.0160048082.2
19990627.81800467nada
El comando *SKIP permite ignorar secciones verticales del archivo. Si
necesitamos ignorar secciones horizontales, se usa el comando *EOF. OFM
ignora cualquier cosa despus de este comando. Por ejemplo:
*METRIC
*TABLENAMEINYECCION
*DATE*DIAS*WATERINJ*PRESION
*KEYNAMEP3:C
19990425.41100400
19990530.01600480
19990627.81800467
19990725.41100400
*EOF
199908 30.0 1600 480
199909 27.8 1800 467
199910 25.4 1100 400
Estos datos son ignorados por OFM
199911 30.0 1600 480
199912 27.8 1800 467
Los comandos *SKIP y *EOF sirven para archivos de datos. No se aplican en
el archivo
de definicin.
______________________________________________________________________
Armando Proyectos Simples con OFM
Multiplicadores
Existe una opcin ms para evitar la edicin innecesaria del archivo. Esto
hace uso del
multiplicador de entrada definido para la variable en cuestin. Para
modificar este
multiplicador, es necesario hacer:
Edit/Project/Definition
Seleccionar la tabla deseada
Clickear en Fields
Seleccionar la variable deseada desde Variable Name
Seleccionar la oreja de Math
Verificar el multiplicador de entrada (Input Multiplier)
______________________________________________________________________
Armando Proyectos Simples con OFM
Ejemplos:
Unidades
Finalmente, hablaremos respecto
de las unidades. OFM trabaja con
dos
sistemas
de
unidades:
Mtrico/Ingls. El sistema se
selecciona
mediante
Tools/Settings/Units.
Desde
esta
ventana,
se
selecciona el sistema deseado
para la presentacin de los datos,
pero nada tiene que ver con la
carga de ellos. La forma de
decirle a OFM que los datos a
cargar estn en sistema mtrico
es mediante la inclusin del
comando *METRIC en el archivo
de carga. OFM no tiene en cuenta
el seteo de Units a la hora de
______________________________________________________________________
Armando Proyectos Simples con OFM
hacer la carga. Slo respeta a la presencia (o ausencia) del comando
*METRIC en el archivo de carga.
Por lo tanto, se puede estar trabajando en sistema ingls y cargar sin
problemas un archivo con datos mtricos, siempre que este incluya el
comando *METRIC. La situacin opuesta es igualmente vlida.
Entidades Existentes
Si la capa (o pozo) ya existe en la tabla maestra, entonces agregar sus
nuevos datos es tan fcil como preparar un archivo ASCII apropiado y
cargarlo. Por ejemplo, si deseamos agregar datos a P1:A del mes de Julio del
99, entonces los archivos seran:
Datos de Produccin
//Contenidodelarchivoproduc.prd
//Formato 1
*METRIC
*TABLENAMEPRD
*WELL*DATE*DAYS*OIL*GAS*WATER
P1:A199907237310923
//Contenidodelarchivoproduc.prd
//Formato 2
*METRIC
*TABLENAMEPRD
______________________________________________________________________
Armando Proyectos Simples con OFM
*DATE*DAYS*OIL*GAS*WATER
*KEYNAMEP1:A
199906237310923
Datos de Ensayos
//Contenidodelarchivotests.dat
//Formato 1
*METRIC
*TABLENAMETEST
*DATE*OIL*GAS*WATER
*KEYNAMEP1:A
199907112.343.900.66
//Contenidodelarchivotests.dat
//Formato 2
*METRIC
*TABLENAMETEST
*WELL*DATE*OIL*GAS*WATER
P1:A199907112.343.900.66
Si deseamos agregar datos a ms de un pozo (o capa) a la vez, podemos
poner todo esto en un mismo archivo. Por ejemplo, para produccin:
//Contenidodelarchivoproduc.prd
//Formato 1
*METRIC
*TABLENAMEPRD
*WELL*DATE*DAYS*OIL*GAS*WATER
P1:A199907237310923
P1:B1999072060015
//Contenidodelarchivoproduc.prd
//Formato 2
*METRIC
*TABLENAMEPRD
*DATE*DAYS*OIL*GAS*WATER
*KEYNAMEP1:A
199907237310923
*KEYNAMEP1:B
1999072060015
Para modificar un dato existente, se recarga el archivo ASCII con el dato
modificado. Por ejemplo, si la produccin de agua de P1:B de Julio del 99 era
14.5 y no 15, como se carg con el archivo anterior, simplemente editamos
el archivo ASCII y lo volvemos a cargar.
//Contenidodelarchivoproduc.prd
//Formato 1
*METRIC
______________________________________________________________________
Armando Proyectos Simples con OFM
*TABLENAMEPRD
*WELL*DATE*DAYS*OIL*GAS*WATER
P1:A199907237310923
P1:B1999072060014.5
//Contenidodelarchivoproduc.prd
//Formato 2
*METRIC
*TABLENAMEPRD
*DATE*DAYS*OIL*GAS*WATER
*KEYNAMEP1:A
199907237310923
*KEYNAMEP1:B
1999072060014.5
Entidades nuevas
Si la entidad no existe en la tabla maestra, debemos preparar los archivos
necesarios para agregarla all. Supongamos que se ha perforado un nuevo
pozo P4, que produce de una sola capa C. Nos han enviado los datos de
produccin de esta nueva capa, junto con los primeros ensayos. Como no
existe P4:C en nuestra base, antes de poder cargar sus datos debemos
agregarlo a la tabla maestra. Si bien no es indispensable (para poder cargar
los datos mencionados), al agregar el P4:C a la tabla maestra, tambin
deberamos incluir sus datos en la tablas de sort y propiedades. Por lo tanto,
los archivos necesarios seran:
Tabla Maestra
//Contenidodelarchivonuevo.xy
*METRIC
*TABLENAMEXY
*WELL*XCOORD*YCOORD*ALIAS*WELLBORE
P4:C22006100P4ARGNQNAP4P
Tabla de Sort
Si recuerdan, habamos mencionado que antes de poder cargar datos a la
tabla de Sort, haba que definir sus columnas y que esto se haca en la
primer parte del archivo *.srt.
El siguiente cuadro muestra un ejemplo del archivo para agregar los datos
de P4:C a la tabla de sort.
//Contenidodelarchivonuevo.srt
*define
*tanque
*campo
*tipo
*end_define
*well*tanque*campo*tipo
P4:CABOIL
______________________________________________________________________
Armando Proyectos Simples con OFM
Sin embargo, como las columnas de esta tabla ya estn definidas (nuestro
proyecto ya contiene una tabla de sort y con esas mismas columnas),
podemos crear un archivo ms simple que no incluya estos comandos y el
resultado ser totalmente equivalente (recrear una columna de sort con el
mismo nombre no afecta a los valores que ya estn cargados en ella). Este
archivo sera:
//Contenidodelarchivonuevo.srt
//Notarquenocontieneloscomandos*define*end_define
//yaqueestascolumnasyaestnenlatabladesort.
*well*tanque*campo*tipo
P4:CABOIL
Tabla de Propiedades
//Contenidodelarchivopropied.dat
*METRIC
*TABLENAMEPROPIEDADES
*WELL*POROSIDAD*PERMEABILIDAD*ESPESOR
P4:C
0.12
1.6
0.3
Datos de Produccin
//Contenidodelarchivoproduc.prd
//Formato 1
*METRIC
*TABLENAMEPRD
*WELL*DATE*DAYS*OIL*GAS*WATER
P4:C 199907237310923
//Contenidodelarchivoproduc.prd
//Formato 2
*METRIC
*TABLENAMEPRD
*DATE*DAYS*OIL*GAS*WATER
*KEYNAMEP4:C
199906237310923
Datos de Ensayos
//Contenidodelarchivotests.dat
//Formato 1
*METRIC
*TABLENAMETEST
*DATE*OIL*GAS*WATER
*KEYNAMEP4:C
199907132.343.900.66
//Contenidodelarchivotests.dat
//Formato 2
*METRIC
*TABLENAMETEST
*WELL*DATE*OIL*GAS*WATER
P4:C199907132.343.900.66
______________________________________________________________________
Armando Proyectos Simples con OFM
Conclusiones
______________________________________________________________________
Armando Proyectos Simples con OFM
Finalmente, recordemos que una vez que se carga un archivo a un proyecto,
el archivo ASCII se puede borrar. Sin embargo, es muy recomendable
quedarse siempre con todos los archivos cargados a un proyecto debido a
que si se presenta algn problema, ste se puede reconstruir en unos pocos
minutos. Mi sugerencia final sera, pues, jams se deshagan de los archivos
ASCII que se cargan a un proyecto. Usen la // para agregar comentarios y
documentar que contiene cada archivo y mantengan siempre una copia en
un lugar seguro.
Por ahora, nada ms. Espero que les sirva para su trabajo diario con OFM.
Saludos para todos.
Milci
Buenos Aires, 16 de Julio de 1999.