Menú

domingo, 28 de octubre de 2018

Leer los archivos de CMORPH utilizando R


CMORPH (técnica de CPC MORPHing) este análisis de precipitación global con una resolución espacial y temporal muy alta. Esta técnica utiliza estimaciones de precipitación derivadas exclusivamente de observaciones de satélites de microondas de órbita baja, y cuyas características se transportan a través de información de propagación espacial que se obtiene completamente de los datos de IR de los satélites geoestacionarios. 

En la actualidad se incorporan las estimaciones de precipitación derivadas de los microondas pasivos a bordo del DMSP 13, 14 y 15 (SSM / I), NOAA-15, 16, 17 y 18 (AMSU-B) y AMSR-E y TMI a bordo del Aqua de la NASA. y la nave espacial TRMM, respectivamente. Estas estimaciones son generadas por los algoritmos de Ferraro (1997) para SSM / I, Ferraro et al. (2000) para AMSU-B y Kummerow et al. (2001) para TMI. Tenga en cuenta que esta técnica no es un algoritmo de estimación de precipitación, sino un medio por el cual se pueden combinar las estimaciones de los algoritmos de lluvia de microondas existentes. Por lo tanto, este método es extremadamente flexible, de modo que se pueden incorporar las estimaciones de precipitación de cualquier fuente de satélite de microondas.

Las estimaciones de precipitación están disponibles en una cuadrícula con un espaciado de 8 km (en el ecuador), la resolución de las estimaciones individuales derivadas de satélites menor que eso, y oscilan entre los 12 x 15 km más o menos, para obtener una resolución más fina,  se realizan interpolaciones de la estimaciones.

Los datos los puede descargar de:

los registros históricos desde enero de 1998 a julio de 2017, los puede descargar de:


Los datos los pueden visualizar en R y guardar en Geotiff, para luego porcesar en Qgis o cualquier GIS


Comparación de la lluvia diaria de las estaciones y CMORPH
Añadir leyenda


Grado de asociación entre la lluvia diaria y CMORPH para las estaciones de la red de INSIVUMEH, durante el periodo 2001 a 2015


############################################################################
#
#       Leer archivos de CMORPH con R
#       Walter Bardales (bardaleswa@gmail.com)
#
#

# Infomracion del archivo CTL
# TITLE  Precipitation estimates
# XDEF 4948 LINEAR   0.036378335 0.072756669
# YDEF 1649 LINEAR -59.963614    0.072771377
# ZDEF   01 LEVELS 1
# TDEF 999999 LINEAR  00z01jan2005 30mn
# VARS 1
# cmorph   1  99  hourly cmorph [ mm/hr ]

# Cargar librerias
library(raster)
library(tibble)
library(stats)
library(rgdal)

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

# Leer archivo binario de cmorph
cmorph.file = file("CMORPH_V1.0_RAW_8km-30min_1998010105", "rb")

# Cerrar
on.exit(close(cmorph.file))

# Cantidad de bites XDEF * YDEF * 2
bites = (4948*1649*2)

# Coordenadas iniciales CMORPH, coordenada inicial, cantidad de pixeles y tamaño de pixel
longitud = seq(0.036378335, length.out = 4948, by=0.072756669)
latitud = seq(-59.963614, length.out = 1649, by=0.072771377)

# Leer datos binarios
temporal = readBin(cmorph.file, numeric(), n = bites, size = 4, endian = "little")
temporal = temporal[seq_len(bites/2)] * 0.1

# hacer data.frame
datacmorph = as_data_frame(
  setNames(
    cbind(expand.grid(longitud, latitud), temporal),
    c("lon", "lat", "lluvia")
  )
)

# Convertir en puntos
coordinates(datacmorph) = ~lon+lat

# Crear una grilla de puntos
gridded(datacmorph) = TRUE

# Crear un raster a partir de los puntos y poner los valores como NA si son menores a 0
rascmorph = raster(datacmorph)
rascmorph[rascmorph<0 0="" na="" p="">

<0 na="" p=""># Convertir longitude 0-360 a longitude -180-180
rascmorph = rotate(rascmorph)

# ASignarle la proyección al raster
crs(rascmorph) = "+proj=longlat +datum=WGS84"

# Guardar el raster
writeRaster(rascmorph, "cmorph.tif", format="GTiff", overwrite=TRUE)

1 comentario:

  1. Hola, tengo un problema para importar mis .GRD a R.

    Lo que hice fue descargar los archivos de CMORPH_BLD en binario, los converti a GRD y luego los recorte en global mapper. Ahora intento abrir el grd en R y me dice lo siguiente:

    g<- system.file("C:/Users/MRomeroR/Documents/MALLAS CMORPH BLD/CMORPH_BLD_GRD_RECORTADOS/CMORPH_V1_0BETA_BLD_0_25deg-DLY_EOD_19980101.grd", package= "raster")
    > rr<- raster(g)
    Error in .local(.Object, ...) :

    Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", :
    Cannot create a RasterLayer object from this file.


    GDALinfo("C:/Users/MRomeroR/Documents/MALLAS CMORPH BLD/CMORPH_BLD_GRD_RECORTADOS/CMORPH_V1_0BETA_BLD_0_25deg-DLY_EOD_19980101.grd")
    rows 403
    columns 387
    bands 1
    lower left origin.x -128.9123
    lower left origin.y -60.45457
    res.x 0.25
    res.y 0.25
    ysign -1
    oblique.x 0
    oblique.y 0
    driver GSBG
    projection NA
    file C:/Users/MRomeroR/Documents/MALLAS CMORPH BLD/CMORPH_BLD_GRD_RECORTADOS/CMORPH_V1_0BETA_BLD_0_25deg-DLY_EOD_19980101.grd
    apparent band summary:
    GDType hasNoDataValue NoDataValue blockSize1 blockSize2
    1 Float32 TRUE 1.70141e+38 1 387
    apparent band statistics:
    Bmin Bmax Bmean Bsd
    1 -999 218.8681 NA NA
    Warning message:
    In GDALinfo("C:/Users/MRomeroR/Documents/MALLAS CMORPH BLD/CMORPH_BLD_GRD_RECORTADOS/CMORPH_V1_0BETA_BLD_0_25deg-DLY_EOD_19980101.grd") :
    statistics not supported by this driver

    Tienes alguna idea de como puedo resolverlo?, te lo agradecería mucho

    ResponderEliminar