Menú

viernes, 6 de julio de 2018

jueves, 5 de julio de 2018

Extraer datos de lluvia en una cuenca usando R

La falta de datos de lluvia en una cuenca, no es impedimento para poder realizar un balance hídrico hoy en día, ya que existen datos de hidroestimación o datos de lluvia estimada a partir de satelites o radares.  Estos datos tienen la ventaja que proporcionan la distribución espacial de la lluvia, pero su desventaja es que tienen a subestimar o sobrestimar en algunos eventos de lluvia y esto depende del tipo de lluvia; pero mediante un ajuste por regresión se puede reducir el error.
 También, pueden usarse para rellenar datos mensuales, trimestrales, anuales de lluvia en las series observadas, mediante un ajuste.

## Script para descargar datos chirps 2.0 y extraer la lluvia media de la cuenca
## Walter Bardales
## Fecha: 01/07/2018


#################################################################################

library(R.utils)

# Funcion de descarga Chirps V2.0
download.chirps2.0 = function(Ruta, fecha_inicial, fecha_final){
fecha=format(seq(as.Date(fecha_inicial), as.Date(fecha_final), "month"), format="%Y.%m")
for (i in 1:length(fecha)){
wurl=paste0("ftp://ftp.chg.ucsb.edu/pub/org/chg/products/CHIRPS-2.0/camer-carib_monthly/tifs/","chirps-v2.0.",fecha[i],".tif.gz")
download.file(wurl,paste0(Ruta,"chirps-v2.0.",fecha[i],".tif.gz"))
gunzip(paste0(Ruta,"chirps-v2.0.",fecha[i],".tif.gz"))
}
}

#################################################################################

# Cargar libreria de trabajo
library(raster)
library(rgdal)

# Directorio de trabajo
setwd("D:/Documents/chirps/")

# Cargar funcion de descarga chirps V2.0
source("Funcion_descarga_chirps.R")

# Directorio de la descarga
Ruta = "D:/Documents/chirps/raster/"

# Periodo de descarga
fecha_inicial = c("1983/5/1")
fecha_final = c("1983/8/1")

# Descargar archivos chirps y descomprimir
download.chirps2.0(Ruta,fecha_inicial, fecha_final)

# Desactivar el paquete R.utils por tener conflicto con el paquete Raster
detach("package:R.utils", unload=TRUE)

# Cargar los datos de chirps 2.0
lista_archivos = paste0("raster/","chirps-v2.0.",format(seq(as.Date(fecha_inicial), as.Date(fecha_final), "month"),"%Y.%m"),".tif")
chirps = stack(lista_archivos)

# Cargar el poligono de la cuenca en coordenadas geograficas
cuenca = readOGR("shapefile/La_Pasion.shp") # Indicar el directorio de la cuenca

# Extraer los datos
ppcuenca = t(extract(chirps, cuenca, fun=mean))
row.names(ppcuenca) = NULL # Crear serie de datos y guardar
lluvia_media = data.frame(fecha=format(seq(as.Date(fecha_inicial), as.Date(fecha_final), "month"),"%Y.%m"), Lluvia=ppcuenca)

write.csv(lluvia_media, "Lluvia_La_Pasion.csv", row.names = FALSE) # Cambiar el nombre del archivo de salida


#######################################################################

Descargar scripts

domingo, 24 de junio de 2018

Graficar imagenes goes con R

library(ncdf4)
library(raster)
library(rgdal)
library(fields)
library(RColorBrewer)

#Directorio de trabajo
setwd("D:/Documents/Goes_R/netcdf")

# Shapefile
shp1 = readOGR("D:/Documents/GIS DataBase/Shape_WGS84/departamentos.shp")
shp2 = readOGR("D:/Documents/GIS DataBase/Shape_WGS84/Centro_America.shp")

# Proyeccion de goes
geost = CRS("+proj=geos +a=6378137. +b=6356752.31414 +lon_0=-75 +f=0.00335281068119356027 +h=35786023. +sweep=x +no_defs")

# Coordenadas geograficas
geo = CRS("+proj=longlat +datum=WGS84")

# Leer archivo netcdf y voltearlo verticalmente
goes_16 = flip(raster("OR_ABI-L2-CMIPF-M3C14_G16_s20181742345453_e20181742356220_c20181742356317.nc"),direction = "y")
crs(goes_16) = geost # Asignar la proyeccion del satelite geoestacionario
extent(goes_16) = c(-5434894.885056, 5434894.885056, -5434894.885056, 5434894.885056) # Asignarle la extension

# Recortar el area de interes (Centro america)
cgoes_16 = crop(goes_16,extent(c(-3424153, -231218.2, 791968.4, 3216755)))

# Reproyectar de GRS80 a coordenadas WGS84
cgoes_16 = projectRaster(cgoes_16, crs=geo)

# Plotear y agregar el mapa de centro america y Departamentos Guatemala
plot(cgoes_16 - 273.15, xlab="Longitud", ylab="Latitud", main="Banda 14")

plot(cgoes_16-273.15, xlab="Longitud", ylab="Latitud", main="Banda 14", xlim=c(-105, -67), ylim=c(8,30), col=rainbow(20, alpha = .6))
lines(shp2)
lines(shp1)

domingo, 15 de octubre de 2017

Prueba de infiltración


Prueba de infiltración y ajuste con el modelo de Horton o Kostiakov

Infiltración (I):
La teoría de infiltración está basada en un análisis del movimiento del agua en el suelo bajo condiciones de no saturación. Durante la infiltración, la fase líquida y la fase gaseosa coexisten en la masa de suelo, con excepción de la zona de contacto entre el suelo y el agua en la superficie del terreno.

La infiltración, velocidad de infiltración o intensidad de entrada en el suelo, se puede definir como la velocidad de penetración del agua en el perfil del suelo, cuando la superficie del terreno está cubierta por una capa de agua poco profunda.

La infiltración tiene dimensión de velocidad (L T-1), como la lámina de agua (L) admitida por el suelo en una unidad de tiempo (T) o como la cantidad de agua absorbida por la unidad de superficie del terreno en la unidad de tiempo (L3 T-1 L-2), respectivamente. Si las mismas unidades se usan en ambos casos, las expresiones son dimensionalmente equivalentes (L T-1). En la primera forma la expresión común de velocidad de entrada es cm h-1 o cm min-1.  En la segunda forma, generalmente se expresa como m3 min-1 m-2. Es común, por varios autores, señalar que la infiltración obedece a un fenómeno de movimiento vertical del agua en el perfil de suelo.  A la disminución de la velocidad de infiltración después de cierto período de tiempo alcanzando una velocidad que tiende a ser constante y se denomina infiltración básica (Ib), la cual se considera cercana a la conductividad hidráulica o permeabilidad (K).

Factores que afectan la infiltración
·       Textura del suelo: Proporción de arenas, limos y arcilla
·       Estructura del suelo: Es la forma en la que se encuentra posicionadas las partículas del suelo o pedón (granular, migajosa, bloques, prismática o columnar o laminar)
·       Contenido de humedad del suelo (Capacidad de campo, punto de marchitez permanente y saturación)


Métodos para medir la velocidad de infiltración:
Las técnicas más utilizadas para determinar tasas de infiltración y conductividad hidráulica saturada, son: Lagunas de infiltración, permeámetros, infiltrómetros cilíndricos y el método de Porchet.


Porchet
Para la estimación de la tasa de infiltración en terreno se puede utilizar el método de Porchet, el cual consiste en excavar un cilindro de radio (R) y se llenarlo con agua hasta una altura (h).


La superficie por la cual pasa el agua al infiltrarse es:
S=2π*R*h+ π*R^2
S=πR(2h+R)

La velocidad de infiltración (f) que pasa por la superficie (S) del agujero cilíndrico es proporcional a la variación del volumen de agua del agujero cilíndrico para un intervalo de tiempo infinitamente pequeño (dt):
S*f =  dV/dt

Como el radio permanece constante, la expresión se puede simplificar de la siguiente forma:
f=  (πR^2)/S dh/dt

Sustituir la superficie del agujero cilíndrico
f=  (πR^2)/(πR(2h+R))  dh/dt

Al simplificar
f=  R/(2h+R)  dh/dt

Se parar los diferenciales
f dt=  R/((2h+R))  dh

Al integrar y valuar en los intervalos de tiempo (t1, t2) y el nivel de agua (h1 y h2), siendo t12
y h21

f (t2-t1)=  R/2*(Ln(2*h1+R)- Ln(2*h2+R))

Al simplificar

f=  R/(2(t2-t1))*Ln((2*h1+R)/(2*h2+R))


Métodos de ajuste de la ecuación de infiltración
Horton:
          Horton estudio la capacidad de infiltración, en su estudio determinó que la capacidad de infiltración tiene la siguiente forma.

fp= fc + (fo-fc )*e^(-kt)  

Donde:
fp= Capacidad de infiltración (mm/hr)
fc= Capacidad final o equilibrio (mm/hr)
fo= Capacidad inicial (mm/hr)
K= Coeficiente de decrecimiento de la capacidad de infiltración en el tiempo

Kostiakov
          Este investigador propuso una ecuación empírica, basada en un modelo potencial
f=a*t^b

Donde:
f= velocidad de infiltración (mm/min)
a y b = parámetros de ajuste
t= Tiempo (min)



jueves, 16 de febrero de 2017

jueves, 9 de febrero de 2017