knitr::opts_chunk$set(warning = FALSE, message = FALSE)
library(SISINTAR)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
#> [1] "No se pudo conectar con SISINTA. El código siguiente no se va a evaluar."
En esta viñeta se presentan distintos ejemplos de uso de las funciones principales del paquete {SISINTA} para trabajar con perfiles de suelo.
La función buscar_perfiles()
permite buscar perfiles en
función de la localización, la fecha y la clase. La primera vez que se
corre, descarga el archivo http://sisinta.inta.gob.ar/es/perfiles.geojson.
Si se corre sin argumentos, devuelve todos los perfiles disponibles.
Técnicamente, también lista algunos perfiles que no están disponibles públicamente:
La búsqueda por clase devuelve todos los perfiles que contienen alguno de los términos a buscar. Por ejemplo, la siguiente búsqueda devuelve los perfiles que contengan “hapludol” o “natralbol”.
También se puede buscar for fechas. La siguiente búsqueda devuelve los perfiles realizados durante 2019.
Y si se busca los perfiles de una o más series en particular. Este campo es un filtro exacto. La serie tiene que existir así como está escrita, en caso contrario la función tira error.
buscar_perfiles(serie = c("Ramallo", "Calabresse")) %>%
dplyr::group_by(serie) %>%
slice_head(n = 2)
La combinación de criterios de búsqueda devuelve los perfiles que cumplen con ambos criterios. La siguiente búsqueda devuelve perfiles obtenidos en 2019 y que tienen “hapludol” o “natralbol”.
Para descargar lo datos de los perfiles se usa la función
get_perfiles()
. Ésta toma un vector con los ids de los
perfiles a descargar.
Alternativamente, puede tomar un data.frame que tenga una columna
llamada “perfil_id”. Esto es así para que se pueda usar directamente la
salida de buscar_perfiles()
para descargar los perfiles
buscados.
buscar_perfiles(rango_fecha = c("2019-01-01", "2019-12-31"),
clase = c("hapludol", "natralbol")) %>%
get_perfiles() %>%
.[, 1:5]
get_perfiles()
por defecto descarga los datos en una
carpeta temporal de modo que si se vuelve a correr la misma línea de
código no descarga el o los perfil nuevamente.
# Primera llamada, tarda porque descarga los datos
system.time(get_perfiles(c(3238, 3182)))
# Segunda llamada, levanta los datos de la carpeta temporal
system.time(get_perfiles(c(3238, 3182)))
La carpeta de descarga se puede cambiar con el argumento
dir
de modo que se puede cambiar a una carpeta permanente
de datos dentro de un proyecto. Para forzar la re-descarga de los datos,
hay que setear el argumento refresh = TRUE
.
Algunos perfiles no se pueden descargar públicamente. Cuando pasa
esto, get_perfiles()
devuelve un data.frame con los
perfiles que sí se pudieron descargar y un warning describiendo qué
problemas hubo.
Para elevar este warning a un error, hay que setear el argumento
parar_en_error
a TRUE
. En este caso, la
función va a tirar error al primer perfil que no pueda descargar.
Para convertir los perfiles a un SoilProfileCollection se usa
as_SoilProfileCollection()
. En este caso convertimos dos
perfiles al mismo tiempo.
Utilizando la librería {aqp}, se pueden plotear los perfiles.
La función interpolar_perfiles()
permite transformar el
perfil en horizontes estandarizados utilizando alguno de los métodos
implementados, promedios ponderados o función spline. El argumento
variables
recibe un vector con las variables a estandarizar
y por defecto genera horizontes cada 30 centrímetros.
Por defecto utiliza el método de promedios ponderados
interpolar_promedio_ponderado()
:
También es posible definir los horizontes estandarizados utilizando
el argumento horizontes
, por ejemplo de 0 a 100, cada 10
centímetros.
get_perfiles(c(3238, 4634)) %>%
interpolar_perfiles(variables = c("sum_bases", "cic"),
horizontes = seq(0, 100, 10))
Para utilizar el método de splines, se utiliza la opción
metodo = interpolar_spline()
. Este método no acepta datos
faltantes en las profundidades, así que primero hay que imputar la
profundidad inferior.
La función exportar_excel()
permite exportar perfiles de
SISINTA en formato MS Excel. Esta función recibe un data.frame con
perfiles leidos o el resultado de get_perfiles()
. El
archivo de excel tendrá dos hojas, la primera con los datos del sitio
llamada “sitios” y la segunda con los datos de los horizontes, llamada
“horizontes”.