0% encontró este documento útil (0 votos)
93 vistas17 páginas

Ventajas del uso de R en cuencas hidrográficas

El documento aboga por el uso de lenguajes de programación de código abierto como R por parte de los analistas de cuencas hidrográficas. R proporciona herramientas para el análisis de datos comunes en cuencas hidrográficas y permite automatizar tareas repetitivas. El uso de código reproducible es importante para la reproducibilidad y transparencia de los análisis.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
93 vistas17 páginas

Ventajas del uso de R en cuencas hidrográficas

El documento aboga por el uso de lenguajes de programación de código abierto como R por parte de los analistas de cuencas hidrográficas. R proporciona herramientas para el análisis de datos comunes en cuencas hidrográficas y permite automatizar tareas repetitivas. El uso de código reproducible es importante para la reproducibilidad y transparencia de los análisis.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

RESUMEN

Tanto la ciencia como la práctica asociadas a la gestión de cuencas hidrográficas implican el


procesamiento, la presentación y el análisis de información cuantitativa. En este artículo se aboga
por el uso de lenguajes de programación de código abierto por parte de los analistas de cuencas
hidrográficas. El lenguaje R, en particular, proporciona un rico conjunto de herramientas para los
tipos de datos que se encuentran comúnmente en el análisis de cuencas hidrográficas. La utilidad
de la R se ilustra mediante tres ejemplos: análisis de intensidad-duración-frecuencia de los datos
de las precipitaciones, separación del flujo de base, y delineación y mapeo de las cuencas
hidrográficas

INTRODUCCION

Tanto la ciencia como la práctica asociadas a la gestión de cuencas hidrográficas implican el


procesamiento, presentación y análisis de la información cuantitativa. Los instrumentos de que
disponen los analistas de cuencas hidrográficas evolucionaron dramáticamente en las últimas
décadas. Cuando el autor principal era un estudiante universitario En los años 70, los estudiantes
de ciencia e ingeniería aprendieron a programar en uno de los dialectos del FORTRAN en los
ordenadores centrales. Los análisis estadísticos en esa época se realizaban típicamente utilizando
funciones dentro de las Bibliotecas Numéricas de la Biblioteca Internacional de Matemáticas y
Estadística (IMSL), llamado desde un programa FORTRAN, o usando una implementación de un
paquete estadístico en el mainframe como SAS, SPSS, o BMDP. En los años 80, los avances en los
ordenadores personales de sobremesa cambiaron el panorama del análisis de datos. Los
programadores, incluyendo al autor principal, se movieron de los pesados compiladores de
FORTRAN de entonces disponible para microcomputadoras para una más rápida compilación de
implementaciones de Pascal. Programas como SYSTAT proporcionó la capacidad de realizar
análisis estadísticos sofisticados y generar gráficos complejos en un formato de calidad apto para
su publicación. Los programas de hojas de cálculo como Lotus 123, Quattro, y más tarde Microsoft
Excel se convirtió en la navaja del ejército suizo para el análisis de datos, proporcionando una
amplia gama de funciones para el procesamiento de datos, análisis y gráficos. Desarrollo continuo
del sistema de información geográfica (GIS) revolucionó nuestra capacidad de analizar y visualizar
la información espacial. En particular, el capacidad de delimitar los límites de la cuenca a partir de
modelos digitales de elevación (DEM) y de extraer la cubierta terrestre ha sido una bendición para
la ciencia y la práctica del análisis y la gestión de las cuencas hidrográficas. En nuestras
interacciones con consultores y científicos del gobierno que están involucrados en el análisis de
cuencas, parece que las hojas de cálculo siguen dominando el estado de la práctica, junto con
otras productos de software para realizar análisis que no están respaldados por hojas de cálculo
(por ejemplo, el SIG y los programas estadísticos paquetes). Las hojas de cálculo también se siguen
utilizando en la comunidad académica.

En lo que respecta a los lenguajes de programación, Matlab es popular tanto en la comunidad


profesional como en la académica, en particular cuando se requieren métodos numéricos para
resolver ecuaciones. Matlab es un producto comercial que facilita la programación de alto nivel
dentro de una interfaz gráfica de usuario (GUI) sofisticada y, junto con los paquetes
complementarios, puede dar cabida a toda la gama de tareas que suelen realizar los analistas de
cuencas hidrográficas. El lenguaje de programación de código abierto R ha sido adoptado
principalmente por los científicos de cuencas hidrográficas orientados a la investigación y no
parece tener todavía una aceptación generalizada entre los profesionales. El objetivo de este
artículo es argumentar a favor del uso ampliado de un lenguaje de programación dentro de la
comunidad científica y de gestión de cuencas hidrográficas. En particular, se alienta el uso del
lenguaje R. Aunque en este artículo se describen algunas funciones y tipos de datos específicos
dentro de R, no se pretende ser una introducción práctica; sin embargo, señala recursos útiles
para usuarios principiantes y novatos de R se proporcionan.

POR QUÉ LOS ANALISTAS DE CUENCAS HIDROGRÁFICAS DEBERÍAN USAR UN LENGUAJE DE


PROGRAMACIÓN

El uso de un lenguaje de programación o de scripts facilita la automatización de tareas repetitivas


y así puede reducir el tiempo y el costo asociado a muchos análisis de cuencas. Además, el uso de
los lenguajes de programación o de escritura es cada vez más importante a efectos de la
reproducibilidad de análisis. Sandve y otros (2013) señalaron la importancia de la reproducibilidad
y la transparencia en la contexto de la investigación esbozando 10 pasos que deben seguirse para
asegurar la reproducibilidad. Para ejemplo, debe evitarse la manipulación manual de datos (por
ejemplo, rellenando a mano los datos que faltan dentro de una hoja de cálculo o copiar y pegar
datos entre hojas de cálculo). Aunque es posible editar datos de manera transparente dentro de
una hoja de cálculo, por ejemplo, creando una columna adicional para la serie de datos editados y
dejando la serie original sin alterar, este enfoque es engorroso y difícil de automatizar para
aplicaciones repetitivas. Además, es más simple auditar el código que inspeccionar manualmente
múltiples hojas de cálculo para asegurar que el relleno de datos se ha realizado correctamente. La
reproducibilidad debería ser una alta prioridad en las aplicaciones prácticas y en la investigación,
en particular para proyectos controvertidos relacionados con los recursos que pueden ser objeto
de procesos de apelación ambiental. El enfoque recomendado es escribir un programa o guión que
lea en los datos en bruto, realice cualquier que se requiere editar o manipular, luego guarda los
datos editados en un nuevo archivo para su posterior procesamiento y análisis, preservando así la
integridad del conjunto de datos original. Muchos paquetes estadísticos, incluyendo SAS, JMP,
SPSS, Minitab, y SYSTAT, tienen poderosos scripts y así facilitar la reproducibilidad y la facilidad de
automatización. Estos paquetes proporcionan acceso a sofisticados procedimientos estadísticos y
han establecido credibilidad en el gobierno, la industria y académico. La mayoría de ellos también
proporcionan funciones para gráficos estadísticos e incluso para la cartografía y las estadísticas
espaciales. Sin embargo, sus principales limitaciones para el análisis de cuencas de propósito
general son su falta de apoyo a la modelización numérica (por ejemplo, la solución de ecuaciones
diferenciales) y las operaciones relacionadas con el SIG, como análisis digital del terreno. Una
consideración importante para muchos usuarios es que los productos comerciales como Matlab,
ArcGIS, y SAS proporciona apoyo técnico y se compromete a arreglar los errores. Sin embargo, a
pesar de estas ventajas de productos de software comercial, ha habido una creciente adopción de
software de código abierto sobre las dos últimas décadas, especialmente en las comunidades de
análisis de datos y ciencia de los datos. Código abierto Los lenguajes de programación tienen la
ventaja de que el cliente no necesita comprar una licencia para software comercial para modificar
el código desarrollado para ellos por consultores. Además, el código abierto Los idiomas tienen
una comunidad entusiasta y productiva de desarrolladores y colaboradores, que producen una rica
variedad de paquetes para acomodar una amplia gama de análisis. No obstante, cabe señalar que
Los paquetes contribuidos por el usuario pueden presentar posibles escollos, como se examina en
la sección Antecedentes Información sobre R.

Varios idiomas de código abierto permiten acceder a una amplia gama de procedimientos
analíticos requerida en el análisis de cuencas hidrográficas dentro de una sola plataforma, que
puede agilizar el flujo de trabajo para proyectos complejos y, por lo tanto, proporcionan ventajas
de tiempo y de costo en comparación con los enfoques que requieren datos para se transfieran
entre diferentes aplicaciones informáticas. Los analistas de datos parecen favorecer actualmente
la Lenguas R, Python y Julia. Aunque los autores abogan por el uso de la R, se reconoce que
Python, Julia y otros idiomas de código abierto pueden ser alternativas viables y tienen claras
ventajas sobre R para propósitos específicos.

Por ejemplo, Python tiene una sintaxis más fácil de aprender que la R, y muchos lo consideran
superior para el desarrollo de aplicaciones y especialmente para operaciones a nivel de servidor
(DataCamp Team 2016).

Julia también tiene una sintaxis más simple que la R, y se destaca por su velocidad de
procesamiento, que puede rivalizar con la de Fortran y C en algunos puntos de referencia (Julia
Language, s.d.). La fuerza de R se deriva de sus ricas capacidades en el análisis estadístico y la
visualización de datos, especialmente para las series temporales y los datos geoespaciales con los
que trabajan regularmente los analistas de cuencas hidrográficas.

El autor principal y sus estudiantes de investigación han descubierto que la R, junto con el paquete
de SIG de código abierto de la SAGA, proporciona toda la funcionalidad necesaria para casi todas
sus necesidades de investigación relacionadas con las cuencas hidrográficas.

Hutton y otros (2016) hicieron un llamado a la comunidad hidrológica para que se mueva hacia
flujos de trabajo integrado y reproducible a través del uso de código reutilizable para aumentar la
credibilidad e integridad de los resultados de la investigación. El uso de un lenguaje de
programación de código abierto, como R, que permite la integración de un flujo de trabajo
completo, desde la compilación y el procesamiento de datos hasta el análisis o la simulación, y
luego a la presentación de informes- puede desempeñar un papel fundamental en este proceso.
INFORMACIÓN DE FONDO SOBRE R

R fue desarrollado por Robert Gentleman y Ross Ihaka de la Universidad de Auckland. Se basó en
el lenguaje S desarrollado por John Chambers en los Laboratorios Bell, que formó la base del
paquete S-PLUS desarrollado comercialmente. Gran parte del código escrito bajo la S funcionará
sin cambios en la R.

R es un proyecto de Gnu's Not UNIX (GNU), y está disponible gratuitamente bajo la Licencia
Pública General de GNU. R es actualmente desarrollado y mantenido por el equipo central de
desarrollo de R. Para más información, consulte la página principal del proyecto R ([Link]
[Link]/).

El lenguaje R se construye alrededor de un conjunto de paquetes, que son colecciones de


funciones y tipos de datos definidos para realizar tareas específicas. Los paquetes también pueden
contener conjuntos de datos que pueden ser utilizados para probar o demostrar programas R sin
necesidad de leer los datos de un archivo externo. La instalación por defecto, a menudo llamada
"base R", incluye más de una docena de paquetes, entre los que se encuentran base (que
proporciona tipos de datos y funciones para operaciones fundamentales como entrada/salida de
archivos, cálculos, bucles y ejecución condicional), stats (con funciones para estadísticas
descriptivas, modelos estadísticos lineales y no lineales, análisis de series temporales), gráficos
(visualización de datos) y conjuntos de datos. El paquete de conjuntos de datos contiene una
variedad de conjuntos de datos, como un modelo digital de elevación del volcán Maunga Whau de
Auckland, millas de pasajeros en aerolíneas comerciales de [Link]., y la velocidad y las distancias
de parada de los coches.

Un punto fuerte de R es que se dispone de una plétora de paquetes contribuidos por el usuario
para proporcionar acceso a una rica variedad de funciones y tipos de datos para el procesamiento,
análisis y visualización de datos. Sin embargo, este punto fuerte también puede plantear posibles
escollos. Por ejemplo, en muchos casos, más de un paquete puede proporcionar funciones
similares, y no hay una autoridad clara para dar orientación sobre cuál es el paquete superior.
Además, no existe un proceso sistemático para verificar la exactitud y fiabilidad de los paquetes
aportados por el usuario. Incluso la base R tiene problemas conocidos, como se enumera en el
sitio web "R inferno".

R COMO LENGUAJE DE PROGRAMACIÓN

El lenguaje R soporta la ejecución condicional (si las declaraciones), los bucles (para, repetir y
mientras las declaraciones) y las funciones. La sintaxis de R es algo parecido a la de C; por ejemplo,
utiliza llaves rizadas ("{" y "}") para indicar el comienzo y el final de un bloque de declaraciones.
Una limitación del uso de R como herramienta de programación de uso general es que es un
lenguaje interpretado y, por lo tanto, no se ejecutará tan rápidamente como un lenguaje
compilado como Fortran o C++. En particular, el código R que involucra bucles se ejecuta
lentamente.

En muchos casos, el uso de bucles puede evitarse aprovechando el código "vectorizado". Por
ejemplo, supongamos que un analista hace que se midan series temporales de flujo de corriente
en dos lugares a lo largo de una corriente y quiere calcular la contribución incremental a la
descarga entre los dos lugares. Un enfoque consistiría en "hacer un bucle" a través de todos los
intervalos de tiempo, calcular la diferencia en cada intervalo de tiempo y luego almacenarla en el
lugar apropiado en un vector, como en el siguiente fragmento de código:
for (i in 1:n) Qinc[i] <- Qds[i] – Qus[i]

donde "i" indexa el intervalo de tiempo, "n" es el número de intervalos de tiempo, "Qinc" es el
nombre del vector que contiene el incremento de descarga calculado, "Qds" y "Qus" son los
nombres de los vectores que contienen las series de descarga descendente y ascendente, y "<-" es
un operador de asignación. También puede utilizarse un signo igual ("=") para la asignación, pero
no es favorecido por la comunidad general de R por razones históricas. Una alternativa, mucho
más rápida, es codificar la operación de la siguiente manera:
Qinc <- Qds – Qus

donde la operación en el lado derecho se aplica en el sentido de los elementos dentro de los
vectores.

Muchos análisis implican lo que los científicos de datos llaman operaciones de "dividir-aplicar-
combinar" (Wickham 2011). Por ejemplo, un analista de cuencas hidrográficas puede tener datos
de precipitaciones diarias durante varios años en varias estaciones, y puede querer calcular
resúmenes anuales (por ejemplo, totales o máximos) para cada año de la estación. Un enfoque
consistiría en escribir un código que se "repitiera" cada año y luego cada estación, calculando el
valor del resumen dentro de cada iteración y almacenándolo en una variable. Un enfoque más
rápido, más elegante y más fácil de leer es utilizar las funciones agregadas() o una de las funciones
apply() dentro de la base R o una de las funciones desarrolladas más recientemente en los
paquetes plyr y dplyr contribuidos. Estas funciones aplican una función incorporada o definida por
el usuario a cada subconjunto definido dentro de un conjunto de datos, con la salida siendo un
objeto de datos que contiene los resultados.

En algunos casos, el uso de bucles es inevitable. Por ejemplo, cuando se calcula un balance de
humedad del suelo a través del tiempo, el cálculo en un paso de tiempo determinado implica la
humedad del suelo al final del paso de tiempo precedente, como en el código de ejemplo:
for (i in 2:n) SM[i] <- SM[i-1] + P[i] – ET[i] – D[i]

donde SM[i] es el contenido de humedad del suelo al final del intervalo de tiempo "i" y P[i], ET[i], y
D[i] son la precipitación, la evapotranspiración y el drenaje durante ese intervalo. En estos casos,
las opciones para acelerar el código R son utilizar el paquete compilador, que compila el código en
tiempo de ejecución, o utilizar el paquete en línea, que permite la inclusión de código escrito en C,
C++ o Fortran dentro del código R. El paquete foreach proporciona funciones para hacer bucles
que pueden ser más rápidas que las estándar para los bucles. Si se utiliza una computadora con
múltiples procesadores, foreach puede reducir considerablemente la ejecución en tiempo de
ejecución al admitir la ejecución en paralelo la ejecución de las declaraciones de for loop.

R DE ANÁLISIS ESTADÍSTICO Y MODELIZACIÓN

El paquete de estadísticas en la base R incluye una amplia gama de funciones incorporadas para
las estadísticas descriptivas e inferenciales. Para la estadística descriptiva, las funciones
comúnmente utilizadas incluyen media( ), sd( ) (desviación estándar), fivenum( ) (mínimo, bisagra
inferior, mediana, bisagra superior, máximo), y cuantiles( ) (para calcular los percentiles
especificados). El paquete de estadísticas también tiene un rico conjunto de funciones para la
modelización estadística. Por ejemplo, la función lm( ) puede ajustarse a un modelo lineal para una
variable de respuesta numérica basada en una o más variables predictoras, que pueden ser
numéricas, factoriales o una combinación. Así pues, lm( ) puede utilizarse para la regresión lineal
(simple y múltiple), el análisis de la varianza y la modelización lineal general. También hay
funciones que facilitan una modelización estadística más avanzada, como como regresión de
mínimos cuadrados no lineales mediante la función nls( ) y modelización lineal generalizada
mediante la función glm( ). Los modelos lineales generalizados pueden acomodar variables de
respuesta que normalmente no son distribuidas, e incluyen la regresión logística, en la que la
cantidad a predecir es una variable binaria, como la presencia/ausencia de una especie acuática.

El paquete de estadísticas también contiene funciones útiles para el análisis de series temporales.
El acf( ) y el pacf( ) pueden generar gráficos de autocorrelación y autocorrelación parcial para una
sola serie temporal, y la función ccf( ) genera funciones de correlación cruzada para un par de
series temporales. La función arima( ) permite modelar series temporales como procesos de media
móvil integrados autorregresivos. En Además de la modelización de una serie temporal
univariante, la función arima( ) puede acomodar variables regresivas, de modo que la función
puede ser utilizada para ajustar modelos de regresión que pueden abordar cuestiones como
residuos autocorrelacionados, que violan los supuestos que subyacen a la regresión de los
mínimos cuadrados ordinarios (eg, Guenther et al. 2014).

Además de los paquetes en la base R, una plétora de paquetes contribuidos por el usuario
contiene funciones para casi cualquier forma de análisis que se pueda imaginar. Por ejemplo, el
paquete rpart contiene funciones para ajustar la clasificación y los modelos de árbol de regresión.
Esta forma de modelo es útil cuando el fenómeno a predecir es una variable categórica y las
variables de predicción son numéricas. Los paquetes lme y nlme apoyan la aplicación de modelos
de efectos mixtos, que pueden acomodar la autocorrelación espacial y/o temporal en los residuos,
ambos de los cuales ocurren comúnmente en los conjuntos de datos ambientales.

Es importante que los usuarios sean conscientes de que muchas funciones estadísticas en R
devolverán resultados diferentes de los generados por un paquete estadístico como SAS. Por
ejemplo, cuando se utiliza la función lm() para el análisis de la varianza, R devuelve lo que se
denomina pruebas de tipo I o incrementales en lugar de las pruebas de tipo III o marginales, como
las que genera SAS. En particular, se obtendrán diferentes resultados usando lm() dependiendo
del orden en que los factores se enumeren en la especificación del modelo. Otro ejemplo es la
convención por la cual la función arima() devuelve la media estimada como la interceptar. Es
fundamental que, sin importar el paquete estadístico que se utilice, la responsabilidad recae en el
usuario para entender cómo el paquete realiza e informa de una prueba, y para asegurarse de que
los análisis son emprendidas e interpretadas correctamente para cada aplicación específica. Al
pasar a R desde otro paquete de software analítico, se recomienda realizar análisis paralelos en
ambos para asegurar la consistencia de los resultados.

R DE VISUALIZACIÓN DE DATOS Y PRESENTACIÓN GRÁFICA

Hay tres paquetes principales disponibles para la producción de gráficos dentro de R: el paquete
de gráficos por defecto (comúnmente llamado gráficos base), los gráficos en red y ggplot2. Todos
pueden generar gráficos estándar como histogramas, diagramas de dispersión y de contorno, así
como una amplia gama de gráficos más complejos, y todos permiten un alto nivel de
personalización. Sin embargo, los paquetes difieren fundamentalmente en sus enfoques
subyacentes.

El paquete de gráficos base aplica una estrategia tradicional de trazado con lápiz sobre papel, en la
que se utilizan comandos para dibujar conjuntos específicos de puntos, líneas, formas o texto en
lugares concretos dentro del trazado marco. Incluso para un solo panel de gráficos, a menudo se
requieren varias llamadas a funciones para crear un completo con leyendas, especialmente
cuando se trazan múltiples series de datos.

En los gráficos en red, se genera un gráfico utilizando una sola llamada de función, con toda la
personalización manejada por parámetros dentro de la llamada. Una característica poderosa es la
capacidad de generar gráficos de "condicionamiento" para explorar cómo varía entre
subconjuntos una relación entre dos variables o una distribución de frecuencias. Por ejemplo, se
podrían generar histogramas de las precipitaciones diarias o un gráfico de la temperatura del aire
frente a la elevación por mes del año.

El paquete ggplot2 se basa en el concepto de "gramática de los gráficos" desarrollado por


Wilkinson (2005). En lugar de construir un gráfico basado en componentes gráficos individuales,
como en los gráficos de base, ggplot2 construye un gráfico en capas con llamadas a funciones que
operan a un alto nivel de abstracción. Para construir un gráfico, el usuario especifica un marco de
datos (es decir, el conjunto de datos que debe utilizarse), mapeos estéticos (por ejemplo, qué
variables corresponden a los ejes x e y, y el uso del color y/o el tamaño de los símbolos para
representar variables adicionales), delineación en facetas (para parcelas condicionadas por
subconjuntos), geomembranas (puntos, líneas y formas que deben trazarse), estadísticas
(transformaciones, incluido el binning para los histogramas) y escalas (por ejemplo, relacionar los
colores con los valores de una variable). El paquete ggplot2 es particularmente útil para explorar
las relaciones multivariantes dentro de un conjunto de datos.
R DE COMPUTACIÓN, ANÁLISIS NUMÉRICO Y SIMULACIÓN

R es probablemente más conocido por sus rutinas estadísticas y gráficas, pero también incluye una
amplia gama de funciones para el cómputo general y el análisis y la simulación numérica. En
particular, proporciona un amplio conjunto de funciones para aritmética, trigonometría,
logaritmos y distribuciones de probabilidad, y para álgebra matricial, como las inversiones
matriciales.

La base R contiene funciones para la generación de números aleatorios, búsqueda de raíces y


optimización. Contribución del usuario Los paquetes también proporcionan funciones para la
solución de ecuaciones diferenciales. Por ejemplo, el paquete deSolve proporciona soluciones
para problemas de valor inicial que implican un diferencial ordinario ecuaciones, ecuaciones
diferenciales parciales, ecuaciones algebraicas diferenciales y diferenciales de retardo mientras
que bvpSolve puede utilizarse para resolver problemas de valores límite para ecuaciones
diferenciales ordinarias. Leach & Moore (2015) programaron un modelo hidrotérmico acoplado
para la cabecera de las cuencas en R enmarcando el modelo como conjuntos vinculados de
ecuaciones diferenciales. La configuración del modelo, el pre-procesamiento y el post-
procesamiento fueron todos codificados en R, con una llamada dentro del guión R a un deSolve
que resuelve las ecuaciones diferenciales modelo, que fueron codificadas en Fortran (pero nótese
que deSolve también puede enlazar con C o C++).

ENTRADA Y SALIDA DE DATOS

En la base R, varias funciones pueden leerse en datos de varios formatos. Para los datos
almacenados en archivos de texto, las funciones pertinentes son [Link]( ), [Link]( ) y
[Link]( ) (esta última para formatos de ancho fijo). El resultado de estas funciones es un objeto
rectangular llamado marco de datos, en el que cada variable es una columna y cada fila es un caso.
Dentro de una columna (variable), todos los valores deben ser del mismo tipo, ya sea numérico, de
carácter o de factor. Las variables numéricas incluyen tanto números enteros como números
reales; las variables de carácter son cadenas de caracteres (como el nombre del sitio de
muestreo); y los factores son variables categóricas, que pueden codificarse como numéricas (por
ejemplo, el número del sitio) o como un carácter (por ejemplo, el nombre del sitio). Los usuarios
deben tener presente que, a menos que se especifique lo contrario, toda columna en la que
alguna de las entradas sea no numérica se interpretará como una variable factorial cuando se
utilicen las funciones R de base para la lectura de los archivos. En algunos casos, esto puede crear
problemas si el usuario trata de tratarlo como un personaje. La solución es coaccionar la variable a
un carácter utilizando la función [Link]().

Los analistas de cuencas frecuentemente trabajan con series temporales. Al leer un conjunto de
datos, las fechas y las variables de fecha y hora pueden codificarse para su introducción de
diversas maneras. Una de ellas consiste en codificar cada parte (por ejemplo, el año, el mes, el día,
la hora, los minutos, los segundos) como una variable numérica separada, y luego crear una
variable fecha-hora de la Organización Internacional de Normalización (ISO) utilizando la función
ISOdatetime(). Alternativamente, se podría codificar una variable fecha-hora como una cadena de
caracteres como "2005-12-4 [Link]" y luego crear una variable fecha-hora ISO utilizando la
función strptime(). Además de las funciones de fecha y hora en la base R, el paquete de lubricación
proporciona un conjunto consistente de funciones para facilitar el manejo y la manipulación de las
variables de fecha y hora.

Las funciones están disponibles en la base R o en paquetes contribuidos por el usuario que
permiten leer los datos de un amplio número de formatos de archivo especializados, incluyendo
hojas de cálculo de Excel (como archivos CSV), forma de SIG archivos, archivos de paquetes
estadísticos (incluyendo SAS, SPSS y SYSTAT) y bases de datos relacionales. Por ejemplo, el
paquete RMySQL proporciona funciones que permiten a R conectarse y extraer datos de una base
de datos MySQL. El paquete XLconnect proporciona funciones para permitir a los usuarios leer y
escribir Hojas de cálculo de Microsoft Excel. R también soporta la entrada de datos desde archivos
NetCDF, lo que permite el acceso a conjuntos de datos atmosféricos a gran escala y en cuadrícula.
Además, R puede producir datos en varios formatos que corresponden a los formatos de archivo
de entrada utilizados por una serie de paquetes de software.

ANÁLISIS Y CARTOGRAFÍA ESPACIALES

Los hidrólogos dependen en gran medida de los conjuntos de datos espaciales y los análisis de los
SIG, y R puede ser una parte importante de la de análisis espacial. Por ejemplo, el paquete sp
proporciona clases de datos y métodos para su manejo, procesamiento y visualización de datos
espaciales; el paquete raster facilita el análisis y la visualización de datos espaciales en cuadrícula,
como capas raster del SIG, imágenes de teledetección y modelos digitales de elevación; maptools
apoya la lectura, escritura, manipulación y visualización de archivos de forma; y gstat proporciona
funciones para el análisis geoestadístico, como el ajuste de variogramas y la interpolación espacial
por medio de la distancia inversa pesaje y kriging. Estos son solo una muestra de algunos de los
más populares paquetes R que están disponibles para el análisis de datos espaciales.

Se dispone de paquetes para trabajar con aplicaciones de cartografía en Internet. Por ejemplo, el
paquete ggmap proporciona una potente interfaz de programación de aplicaciones OpenStreetTM
y Google MapsTM , que permite a los usuarios utilizar conjuntos de datos geoespaciales dentro de
R como parte de sus visualizaciones de datos. El paquete plotKML apoya el trazado de datos
espaciales en Google Earth mediante la creación de archivos *.kml y *.kmz.

Mirando más allá de la R, se han desarrollado paquetes para aprovechar el poder de otros
lenguajes y aplicaciones. Por ejemplo, el paquete RPyGeo proporciona acceso a (prácticamente
cualquier) herramienta de geoprocesamiento ArcGIS desde dentro de R ejecutando scripts de
geoprocesamiento Python sin escribir código Python o tocar ArcGIS (aunque tanto Python como
ArcGIS deben estar instalados en el sistema del usuario). El paquete spgrass6 proporciona una
forma similar de ejecutar el SIG de GRASS desde dentro de R. Muchos científicos de cuencas
hidrográficas utilizan la aplicación SIG de SAGA, que es un SIG de código abierto basado en raster
escrito por geocientíficos (Conrad et al. 2015). Es rápido y potente, e incluye rutinas robustas para
la delimitación de cuencas. El uso del paquete RSAGA permite que los comandos del SAGA se
ejecuten desde un guión R, facilitando así la automatización. En
[Link] se puede encontrar un guión para utilizar R y RSAGA
para delinear los límites de las cuencas hidrográficas.
ANÁLISIS Y MODELIZACIÓN HIDROLÓGICA

En el cuadro 1 se describen brevemente una muestra de paquetes que son útiles para realizar
análisis hidrológicos. Rigon (s.f.) proporciona enlaces y descripciones de muchos de estos
paquetes.

Tabla 1. Breves descripciones de una muestra de paquetes R aportados de especial interés para los
hidrólogos.

Nombre del paquete

EcoHidrología: Separación hidrográfica; funciones para ayudar a establecer y calibrar el modelo


hidrológico SWAT2005; cálculo de la radiación solar y de onda larga, la evapotranspiración y el
balance energético de la superficie; un modelo para simular el equivalente en agua de los
manglares en un punto; un modelo agrupado para simular el flujo de corriente basado en el
mecanismo de generación de escorrentía por exceso de saturación.

hydroTSM: Gestión, análisis, interpolación y trazado de series temporales utilizadas en la


hidrología y las ciencias ambientales conexas; este paquete está muy orientado a las tareas de
modelización hidrológica.

TUWmodel: El modelo hidrológico de la cuenca de lumped catching basado en el modelo sueco


HBV

nsRFA: Instrumentos para realizar análisis de frecuencias regionales no supervisadas de datos


hidrológicos utilizando el método de índice-valor

seas: Herramientas para analizar y visualizar las variaciones estacionales del tiempo ambiental
datos en serie; funciones para analizar los archivos de datos del Centro Canadiense del Clima

Lmoments: Estimaciones L-momentos y L-momentos recortados de los datos

Evd: Funciones para el análisis de las distribuciones de valores extremos

Lfstat: Funciones para el análisis de flujos bajos basadas en el Informe de Hidrología Operacional
Nº 50 (1999) de la Organización Meteorológica Mundial; funciones para el análisis de frecuencia
de flujos bajos, análisis de recesión, curvas de duración del flujo y separación del flujo de base

Spei: Cálculo de índices de sequía estandarizados; funciones para calcular la evaporación


potencial basadas en los métodos de Hargreaves, Penman y Thornthwaite

waterData: Acceso a los datos de flujo diario del U.S. Geological Survey y al cálculo de anomalías

extremes: Herramientas para el análisis de valores extremos


Aunque es posible crear modelos hidrológicos con escalas de tiempo dentro de R (por ejemplo,
Moore et al. 2012; Leach & Moore 2015), el lenguaje de programación de R no es una plataforma
ideal para la codificación de modelos, excepto tal vez para probar el código del prototipo. Un
mejor enfoque sería trabajar con un modelo flexible como el marco de modelización hidrológica
de Raven (Craig et al. 2015) o el Modelo Hidrológico de Regiones Frías (CRHM) (Pomeroy et al.
2007), utilizando R para preprocesar los datos espaciales y temporales para la entrada del modelo.
Por ejemplo, el paquete WATCHr genera archivos de datos de forzamiento meteorológico para de
entrada al CRHM basado en productos de datos de re-análisis de cuadrículas (Shook 2015).

R también puede utilizarse como "envoltorio" para automatizar la configuración y ejecución del
modelo. Puede ser especialmente útil para la calibración del modelo dentro de un marco
generalizado de estimación de la incertidumbre de la verosimilitud (GLUE), en que un modelo se
ejecuta varias veces con diferentes conjuntos de parámetros, con todos los conjuntos que logran
un determinado de rendimiento que se está adoptando como parte de una familia "conductual".
Por ejemplo, Jost y otros (2012) usó R como envoltura para realizar una calibración de tipo
adhesivo del modelo hidrológico HBV-EC para el La cuenca del río Columbia, río arriba de la presa
de Mica.

R PARA LA PRESENTACIÓN DE INFORMES Y PRESENTACIÓN

Para los usuarios de la aplicación de preparación de documentos LaTeX, la función de sudor dentro
de la base La instalación permite a los usuarios incrustar código R dentro de un archivo fuente de
LaTeX. El código R se ejecuta cada vez que el El documento LaTeX está compilado. Así, por
ejemplo, en lugar de insertar una figura como un archivo gráfico o un como un objeto de texto, se
inserta el código R para crear la figura o tabla, lo que permite automatizar actualización de los
documentos si cambian los datos o los análisis. El sudor también se puede utilizar dentro de
OpenOffice y archivos HTML pero no documentos de Word.

Otra valiosa herramienta de información es el R Markdown, que es un lenguaje de marcado en el


que el contenido, códigos de formato, y el código R se incorporan a los archivos de texto. A
diferencia de los lenguajes de marcado como el HTML, en el que el formato se controla mediante
etiquetas insertadas en el texto, R Markdown utiliza menos molestos códigos de formato que son
más intuitivos y fáciles de aprender. Como el sudor, la reducción de la marca R permite la creación
de documentos dinámicos, en los que los gráficos y tablas se actualizan automáticamente cuando
el documento se procesa. R Markdown permite la generación no sólo de pdf y OpenOffice pero
también documentos de Word, archivos HTML, presentaciones de diapositivas y otros formatos.
CÓMO EMPEZAR

El software R puede ser descargado a través de la Red de Archivo Integral de R (CRAN) (https://
[Link]/). Además del software, el CRAN proporciona acceso a manuales, preguntas
frecuentes y el Diario R.

Muchos recursos que son adecuados para los usuarios de R principiantes y novatos están
disponibles en línea y a través de libros de texto. Un tutorial de aprendizaje interactivo gratuito en
línea para R está disponible en la Escuela de Código de O'Reilly sitio web llamado Try R
([Link] También hay un curso fuera de línea para aprender R programación
y ciencia de los datos utilizando el paquete R de remolinos ([Link] El equipo
central de R también mantiene un manual introductorio para discutir la sintaxis básica, los gráficos
y la arquitectura de R (Venables et al. 2016). Los sitios en línea, como los R-bloggers
([Link] mantienen a los usuarios al día con noticias y tutoriales de más de
600 autores contribuyentes.

Tal vez lo más importante para que los usuarios novatos se familiaricen con la guía de estilo de
código R y las convenciones. La inherente elegancia y flexibilidad de R también puede ser su
principal debilidad. Los usuarios novatos pueden desarrollar malos hábitos que pueden dificultar la
interpretación de la lógica u operaciones del programa y compartir el código con otros. Los
autores recomiendan a los usuarios que revisen la guía de estilo R avanzado de Hadley Wickham
([Link] y la guía de estilo R de Google
([Link] para familiarizarse con las convenciones típicas
de programación de R y establecer un estilo de programación consistente.

La forma más popular de trabajar con R es dentro de R Studio ([Link]), que es un


entorno de desarrollo integrado para R que está disponible para la mayoría de los sistemas
operativos. Existen otras soluciones para trabajar con R utilizando editores de texto (como
Notepad++, emacs, sublime o vi), pero a menos que los usuarios tengan un dominio y amor por los
editores de texto, los autores recomiendan utilizar R Studio sobre otras soluciones. R Studio
soporta el uso de R Markdown.

Inevitablemente, los usuarios se encontrarán con un fallo o error para el que no se puede
encontrar una solución inmediata. Sitios como Stack Overflow
([Link] R Seek ([Link] y Google pueden ser
usados para buscar soluciones en la World Wide Web. La comunidad R apoya las listas de correo
([Link] en las que los usuarios pueden hacer preguntas y recibir
ayuda de una comunidad de usuarios muy solidaria. Stack Overflow ofrece una funcionalidad
similar. En todos los mensajes que se envían a una comunidad en línea para solicitar ayuda, es
importante ser conciso e incluir ejemplos reproducibles, y utilizar una línea de asunto informativa
sobre la cuestión en cuestión.
EJEMPLOS

Se proporcionan tres ejemplos para ilustrar las aplicaciones de la R para el análisis de cuencas
hidrográficas. Las figuras asociadas 1, 2 y 4 fueron generadas usando gráficos de base; la figura 3
fue generada usando ggplot2. El código de estos ejemplos puede consultarse en
[Link]

Figura 1. Análisis de frecuencia de las intensidades de precipitaciones extremas anuales en la


estación meteorológica del aeropuerto de Nanaimo (Nanaimo A) para duraciones que van de 5
minutos a 24 horas. T es el período de retorno. Las líneas ajustadas y los límites de confianza se
calcularon usando el método de los momentos.
Análisis de Intensidad-Duración-Frecuencia de los datos de precipitaciones

Los hidrólogos a menudo son llamados a analizar eventos de lluvia extrema. El enfoque estándar
es calcular series anuales de intensidad de lluvia extrema para un rango de duraciones, desde tan
sólo 5 o 10 minutos hasta 24, 48 o 72 horas. Para cada duración, se ajusta una distribución de
Valor Extremo de Gumbel Tipo I a la serie extrema anual para estimar las intensidades asociadas
con períodos de retorno específicos, típicamente 2, 5, 10, 20, 50, 100, y 200 años. Las
distribuciones para cada período de retorno se trazan típicamente en un "papel Gumbel" especial
en el que la abscisa se escala de manera que los datos extraídos de una distribución Gumbel
deben caer aproximadamente a lo largo de una línea recta. Es relativamente sencillo generar tal
gráfico dentro de R. También es común resumir la duración-frecuencia de intensidad completa
(IDF) en un solo gráfico con ejes logarítmicos dobles; sin embargo, la abscisa, que representa la
duración, tiene un cambio de unidades, de minutos para duraciones más cortas a horas para
duraciones más largas. Una vez más, es relativamente sencillo en R formatear tal eje. Las figuras 1
y 2 ilustran los resultados de un análisis de las FDI para la estación meteorológica del aeropuerto
de Nanaimo en la isla de Vancouver.

Figura 2. Análisis de intensidad-duración-frecuencia de las intensidades anuales de las lluvias


extremas en el aeropuerto de Nanaimo.

Separación del flujo de base


Tanto en la investigación como en las aplicaciones prácticas, los hidrólogos a menudo necesitan
separar un hidrograma de flujo de corriente en componentes de flujo de base (de respuesta lenta)
y de flujo de tormenta (de respuesta rápida). Se dispone de varios métodos para lograr la
separación del flujo de base. Nathan & McMahon (1990) desarrollaron un robusto método de
separación hidrográfica basado en la aplicación de un filtro de paso alto, que se ha implementado
en la función BaseflowSeparation() del paquete EcoHydRology. Para el ejemplo que se muestra en
la figura 3, los datos de flujo diario del río Newhalem cerca de Foss, Oregón (número de
identificación de la estación 14301000) se extrajeron de los servicios web del Sistema Nacional de
Información sobre el Agua (NWIS) del Servicio Geológico de los Estados Unidos. El paquete
WaterData proporciona rutinas fáciles de usar para extraer y limpiar los datos de los caudales de
los arroyos del NWIS.

Figura 3. Separación del flujo de base de un registro de flujo diario. La línea negra es el flujo de
corriente; la línea roja es el flujo de base.

Delineación y cartografía de cuencas hidrográficas


La delineación de cuencas es una de las pocas funciones que no tiene una implementación robusta
dentro de R. Sin embargo, es posible utilizar R y RSAGA para procesar un modelo digital de
elevación y generar los límites de la cuenca. En el ejemplo de la figura 4, los límites de la cuenca se
generaron utilizando RSAGA, y todo el resto de procesamiento y mapeo se realizó utilizando los
paquetes raster y sp. El DEM y shapefiles fueron descargados del sitio GeoGratis de Recursos
Naturales de Canadá ([Link]
Figura 4. Mapa del área alrededor de Squamish, B.C.,
incluyendo el límite de la cuenca para un sitio de
monitoreo de la temperatura del arroyo debajo de las
cataratas Shannon (línea amarilla), así como las
ubicaciones de los sitios de monitoreo de la
temperatura encima y debajo de las cataratas (Tw)
(círculos rojos), ubicación de una estación
meteorológica ubicada encima de las cataratas (UF
Wx) (círculo amarillo), y el Aeropuerto de Squamish
(YOW) (cuadro amarillo).

RESUMEN: PROS Y CONTRAS DE LA R PARA LOS ANALISTAS DE CUENCAS HIDROGRÁFICAS

En resumen, la R tiene muchas características convincentes que la convierten en una herramienta


valiosa para la investigación y la aplicación en el análisis de cuencas hidrográficas. De hecho,
muchos analistas descubren que pueden gestionar todo su flujo de trabajo dentro del entorno de
R, desde la importación y el procesamiento de los datos hasta el análisis, la elaboración de gráficos
y el trazado de mapas y, finalmente, la generación de informes y presentaciones. Entre las
características específicas de valor en los análisis de cuencas hidrográficas figuran las siguientes:

- Acceso a una rica variedad de procedimientos estadísticos, desde los comunes hasta los
exóticos;
- Capacidad de generar casi cualquier tipo de gráfico o mapa con un alto nivel de control
sobre los ejes, los símbolos de trazado, el texto y la colocación;
- flexibilidad en la representación del tiempo tanto para el cálculo como para el gráfico;
- acceso a un rico conjunto de paquetes para el análisis numérico;
- aplicación de conceptos de programación estándar (bucles, ejecución condicional y
funciones) para simplificar la automatización de tareas repetitivas;
- capacidad de importar y exportar datos en una amplia variedad de formatos;
- disponibilidad de paquetes que se adaptan a las aplicaciones de análisis de cuencas
hidrográficas;
- disponibilidad de interfaces gráficas de usuario relativamente sofisticadas para ayudar en
el desarrollo, mantenimiento y depuración de códigos;
- capacidad de escribir sus propios paquetes personalizados y contribuir a la comunidad R a
través del CRAN;
- capacidad de integrar código de idioma extranjero para un procesamiento más rápido (por
ejemplo, C, Fortran);
- capacidad de crear visualizaciones y análisis de datos en la web.
Además, R está disponible de forma gratuita, incluyendo todos los paquetes, y no hay necesidad
de pagar por los complementos adicionales.

El mayor inconveniente de R es la curva de aprendizaje y la inversión de tiempo necesaria para


aprender a utilizarlo. Después de más de 20 años de desarrollo del código abierto en todo el
mundo y de miles de paquetes contribuidos, R puede resultar un desafío para el usuario novato.
Los usuarios de R deben invertir tiempo para aprender a utilizarlo eficazmente y seguir haciéndolo.

Con la creciente disponibilidad de fuentes de "grandes datos", como los productos de


teleobservación y las redes de conjuntos de datos atmosféricos, y el creciente uso de modelos de
simulación hidrológica distribuidos espacialmente, la La comunidad de análisis de cuencas
hidrográficas necesita herramientas poderosas y adaptables para manejar, manipular y modelar
las grandes cantidades de datos con complejas interrelaciones que se han vuelto cada vez más
comunes en las geociencias. Los autores sostienen que el análisis de datos basado en la
programación estructurada asegura una flujo de trabajo auditable desde la extracción de datos
hasta la publicación, y que el lenguaje R proporciona actualmente la funcionalidad necesaria para
lograr este objetivo.

Acknowledgements
A Vivas por facilitarles el documento en español <3

También podría gustarte