2 votos

Controlador GDAL HDF4 en el sistema Linux

Estoy ejecutando un código que funciona con conjuntos de datos MODIS HDF4 en una distribución Debian Linux. También estoy ejecutando este código en una máquina Windows. Tanto en la máquina Windows como en la Linux, tengo la versión más reciente de GDAL (gdal 1.11.1, np19py27_1), sin embargo en la máquina Linux, GDAL no parece reconocer los Drivers HDF4... no carga ni procesa ninguno de los conjuntos de datos HDF4 que se procesan fácilmente en la máquina Windows (desafortunadamente esta máquina no tiene suficiente espacio para ejecutar el código completo).

¿Alguien más se ha encontrado con este problema? ¿Necesito instalar un módulo adicional en el sistema Linux?

2voto

DavidWhitney Puntos 1957

En Debian, tendrás que instalar libhdf4-alt-dev (no libhd4-dev) y luego volver a compilar gdal.

Pero hay un conflicto con NETCDF si esos controladores están activados, por lo que es importante desactivar netcdf durante la compilación:

./configure --disable-netcdf --disable-fortran

Y debería encontrar las librerías hdf4 automáticamente.


ACTUALIZACIÓN

Hubo un mensaje reciente en la lista de correo de GDAL de José que publicó algunas instrucciones en su blog para conseguir el soporte de HDF4 en GDAL 1.11.2 para anaconda:

wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh bash ./Miniconda-latest-Linux-x86_64.sh export PATH=/opt/anaconda/bin:$PATH conda install numpy scipy matplotlib ipython ipython-notebook conda-build conda install scikit-learn pandas spyder numba numexpr cython binstar conda install -c https://conda.binstar.org/jgomezdans proj4 conda install -c https://conda.binstar.org/jgomezdans hdf4 conda install -c https://conda.binstar.org/jgomezdans gdal conda install geos

Referencia: https://trac.osgeo.org/gdal/wiki/HDF
Referencia: http://jgomezdans.github.io/new-version-of-gdal-packages-with-hdf-for-anaconda.html

2voto

JXPheonix Puntos 383

Tuve el mismo problema y me gustaría compartir mi solución al problema :

  1. En primer lugar, asegúrese de que tiene instalados los controladores hdf4 necesarios:

    apt-get install libhdf4-dev
    apt-get install proj-bin
    apt-get install libproj-dev
    apt-get install libgdal-dev
    apt-get install gdal-bin     # Thanks to user @mdsumner for this
  2. Entonces parece que hay un problema con el propio paquete pyModis como explica Luca aquí: https://github.com/lucadelu/pyModis/issues/29#issuecomment-104800294

    Así que eliminé pymodis e instalé la nueva versión directamente desde el sitio Github, ejecutando el siguiente comando

    sudo pip git+https://github.com/lucadelu/pyModis.git

Y luego para estar seguro ejecuta una actualización y entonces el problema de HDF4 debería desaparecer cuando importes pymodis.

0voto

Mohit Jain Puntos 145

La respuesta de SaultDon es correcta. Tienes que instalar libhdf4-alt-dev. HDF4 contiene una versión antigua de netcdf que está deshabilitada en este paquete. Está desactivada en ese paquete porque choca con versiones más recientes de netCDF. Dado que GDAL utiliza las cabeceras de la versión reciente de CDF hay que utilizar la versión -alt-. Esto no deshabilitará el soporte de netCDF, ya que se utiliza la versión reciente.

La versión de gdal en Debian ya debería soportar hdf4 de forma inmediata. Si compila desde el código fuente, asegúrese de utilizar la opción --with-netcdf.

No mencionas qué versión debian usas, pero sólo quiero señalar que hay una versión de gdal muy reciente en experimental . Usted puede considerar la construcción de que para su versión de Debian. Esto sólo es necesario si realmente necesita la última versión de GDAL. La versión proporcionada con debian debería proporcionar HDF4 fuera de la caja (por favor, envíe un error si no lo hace).

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