Carga archivos LAS con la librera Welly de Python desde R
El paquete reticulate proporciona un amplio conjunto de herramientas para la interoperabilidad entre Python y R. El paquete incluye facilidades para:
Llamar a Python desde R en una variedad de formas, incluyendo R Markdown, scripts de Python, importación de módulos de Python, y el uso de Python de forma interactiva dentro de una sesión de R.
Traducción entre objetos R y Python (por ejemplo, entre dataframes R y Pandas, o entre matrices R y matrices NumPy).
Vinculación flexible a diferentes versiones de Python, incluyendo entornos virtuales y entornos Conda.
En este ejemplo cargamos los paquetes reticulate y dplyr para utilizar las librerías de Python y manipular datos. Podemos especificar la ruta de python o utilizar la variable path por defecto
#install.packages("reticulate")
library(reticulate)
library(dplyr)
use_python("C:/Python37")
Primero Cargamos las librerías python; welly para leer archivos .las y numpy para manejar arrays y dataframes. En la función import() el parámetro module es el nombre del módulo de Python, el parámetro convert indica si los objetos de Python se convertirán automáticamente a su equivalente en R.
Cargamos de datos desd un archvo *.las, en este caso son datos de registro de un pozo de campo Volve, tomados de un conjunto de datos público. Usamos el operador $ para llamar laa funciones de librerías python
w1.las = wl$Well$from_las('159-19A_LFP.las')
Después de leer el archivo LAS podemos convertirlo en pandas dataframe, y luego en un objeto equivalente de R con la función py_to_r()
#convert to pandas dataframe
w1.pyDF = wl$Well$df(w1.las)
#Convert to R object
w1.rDF <- py_to_r(w1.pyDF)
Ahora podemos manipular los datos de registro en el ambiente R. Usando la función select() del paquete dplyr, obtenemos sólo 5 variables (columnas) del dataframe y usando la función summary se muestra un resumen estadistico de cada variable.
#Select 5 columns
W1.log <- w1.rDF %>%
select(LFP_GR,LFP_DT,LFP_NPHI,LFP_RHOB,LFP_RT)
#Set columns names
colnames(W1.log) <- c("GR","DT","NPHI","RHOB","RT")
head(W1.log)
GR DT NPHI RHOB RT
3500.0183 36.62100 76.72920 0.1542000 2.460200 1.791000
3501.0183 19.33979 78.63159 0.1597398 2.471712 1.854558
3502.0183 18.84149 77.20108 0.1608761 2.501013 2.030150
3503.0183 13.04376 75.79430 0.1516073 2.495261 1.945968
3504.0183 16.61945 74.73752 0.1431858 2.531302 2.160454
3505.0183 16.07623 73.56017 0.1331433 2.491674 2.280584
summary(W1.log)
GR DT NPHI RHOB
Min. : 0.00 Min. : 59.89 Min. :0.06296 Min. :2.005
1st Qu.: 23.80 1st Qu.: 72.14 1st Qu.:0.13956 1st Qu.:2.369
Median : 36.80 Median : 77.62 Median :0.17711 Median :2.466
Mean : 53.49 Mean : 80.92 Mean :0.20888 Mean :2.449
3rd Qu.: 66.14 3rd Qu.: 84.85 3rd Qu.:0.23487 3rd Qu.:2.550
Max. :783.63 Max. :131.36 Max. :4.40690 Max. :2.901
NA's :9 NA's :1
RT
Min. : 0.1903
1st Qu.: 1.5673
Median : 2.0722
Mean : 9.5929
3rd Qu.: 4.4428
Max. :1786.9496