7 votos

procesamiento de MODIS ol archivos con gdal

Estoy tratando de abrir un MODIS archivo (formato hdf) con gdal en una secuencia de comandos de python en windows OS. Yo uso el HDF4 controlador, como se lee en http://www.gdal.org/frmt_hdf4.html.
Pero cuando lo ejecuto tengo este mensaje de error:

ERROR 4: `MOD10A1.A2000064.h12v04.005.2007164045648.hdf' not recognised as a supported file format. 

He probado con el gdal.ALLRegister() instrucción con el mismo resultado. Mi objetivo es la obtención de las propiedades de la imagen utilizando GeoTransform, RasterXSize, etc. y reproyectar después. Si pudieras proporcionarme cualquier ayuda sería muy apreciada.

ps. Sé que puedo usar el Modis de Reproyección de la Herramienta (MRT), pero la necesito para ser incluido en mi script a medida que se va a iterar sobre una carpeta que contiene una gran cantidad de imágenes.

gracias

7voto

Lucas Puntos 128

HDF4 de apoyo no está disponible en GDAL por defecto. Si usted está utilizando el GDAL los binarios y librerías de python de GISInternals, estos no tienen HDF4 sido compilado con soporte. HDF4 se compila el soporte en el OSGeo4W GDAL binarios.

Usted puede comprobar si tiene HDF4 apoyo con el gdalinfo comando: gdalinfo --format hdf4

También puede lotes el MRT, desde dentro de su secuencia de comandos de python utilizando el subproceso módulo, consulte "Interfaz de Línea de Comandos" en la sección de la MRT Manual de Usuario.

Edit: el subproceso módulo es fácil de usar, consulte la siguiente. Véase también el "Procesamiento por Lotes Automatizado" en la sección de MRT de Manual de Usuario.

import subprocess
def runcmd(cmd)
    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    stdout,stderr=proc.communicate()
    exit_code=proc.wait()
    return exit_code,stdout,stderr

cmd = 'mrt command line'
exit_code,stdout,stderr = runcmd(cmd)
if exit_code:raise RuntimeError(stderr)
else:print stdout

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X