Estoy usando MODISTools (https://github.com/seantuck12/MODISTools) para el proceso de MCD12Q1 de datos, la cual, según el LP DAAC sitio web (https://lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table/mcd12q1), cuenta con 16 bandas. Creo que uno de ellos es una banda de calidad (cobertura de la Tierra QC). Sin embargo, cuando uso el MODISSubsets función para descargar MCD12Q1 y la GetBands función para ver a las bandas, a sólo 15 bandas son devueltos (sin la cobertura de la Tierra control de calidad de la banda). Sin esta banda, no puedo usar el MODISSummaries función. ¿Alguien sabe cómo solucionar este problema?
Respuestas
¿Demasiados anuncios?Es fácil extraer necesario subdatasets de HDF con GDAL herramientas de línea de comandos. Supongo que usted podría querer hacer todo en R por lo que aquí es la forma en que se puede ejecutar desde ella. En R hay un paquete llamado gdalUtils proporciona contenedores para GDAL herramientas. Usted necesitará gdal_translate
para la conversión de datos.
Ejemplo:
library(gdalUtils)
hdf4_dataset <- file.choose() #select your HDF
gdal_translate(hdf4_dataset,"modis_qa.tif",sd_index=1)
A continuación puede leer con otro paquete de R rgdal:
library(rgdal)
d <- file.choose() #select your saved GeoTIFF
x = new("GDALReadOnlyDataset", test)
Ahora manipular x a tu gusto, solo es una de datos.marco.
Usted podría preguntarse por qué no usar rgdal
solamente. El problema es que no lee OL formato que se utiliza para distribuir datos MODIS.
Esto se puede lograr fácilmente utilizando el MODIS paquete que actualmente está alojado en GitHub. Instale el paquete a través de
library(devtools)
install_github("MatMatt/MODIS")
library(MODIS)
y asegúrese de ajustar el local de salida de las rutas de los archivos a través de MODISoptions
. Una descripción más detallada del procedimiento de instalación puede ser, por ejemplo, encuentran aquí.
A continuación, descargue un deseada MCD12Q1 azulejo con
getHdf("MCD12Q1", begin = "2013-01-01",
tileH = 21, tileV = 9)
y, por último, la lista de los científicos conjuntos de datos (SDS) incluidos en la misma, el uso de
fls <- list.files(getOption("MODIS_localArcPath"),
pattern = "MCD12Q1.A2013001.*.hdf",
recursive = TRUE, full.names = TRUE)
getSds(fls)
Como se ve desde la salida de la consola, el 11 de SDS es el deseado 'de la Cubierta Terrestre Tipo de control de calidad' de la capa, que posteriormente pueden ser extraído por medio de
runGdal("MCD12Q1", begin = "2013-01-01",
tileH = 21, tileV = 9,
SDSstring = "0000000000100000")
Tenga en cuenta que runGdal
es también una función de contenedor alrededor de getHdf
, lo que significa que si la MCD12Q1 azulejo no ha sido previamente descargado, runGdal
realizará automáticamente la descargue y extraiga el deseado SDS capas.