jueves, 6 de agosto de 2015

QGIS: cortar archivos ráster.

Hoy vamos con una herramienta de QGIS muy útil y que usaremos bastante a menudo: Clipper. Dicha función nos sirve para cortar un archivo ráster al tamaño que queramos, manteniendo por supuesto las propiedades del original (georeferenciación, resolución, etc...). La podemos usar con cualquier mapa ráster, lo que incluye archivos de relieve DEM, mapas topográficos, ortofotos, o cualquier archivo de imagen que no sea vectorial. Nosotros vamos a hacer el ejemplo cortando un archivo de relieve de toda España a los límites de la Comunidad Autónoma de Extremadura.
¿Qué necesitamos para ello? Dos cosas: el archivo DEM que queremos cortar, y un archivo vectorial con los límites de Extremadura que nos sirva de máscara de corte. Abrimos ambos en QGIS.
Archivo DEM de la Península y archivo vectorial shape con el polígono de Extremadura abiertos en QGIS. El DEM lo hemos coloreado por alturas como se explica en esta entrada simplemente para que las capturas sean más visuales.
Una vez cargados estos archivos abrimos la herramienta Clipper desde el menú Ráster/Extracción.
Y configuramos las opciones. En archivo de entrada debe estar seleccionada la capa ráster que vamos a recortar (DEM en nuestro ejemplo). En archivo de salida seleccionamos el nombre, el formato y la ubicación donde se va a crear nuestro nuevo archivo de recorte (en nuestro ejemplo le llamamos extremaduraDEM y seleccionamos el formato GeoTIFF). La casilla valor sin datos nos permitiría filtrar y eliminar un determinado valor (por ejemplo aquellos puntos con altura igual a 0); nosotros la dejamos desmarcada. En el modo de corte se nos ofrecen dos opciones:
- Extensión: como bien explica la ventana podemos introducir unas coordenadas o dibujar un cuadrado sobre el mapa de la zona a recortar, con lo que los campos de coordenadas se rellenarán automáticamente.
- Capa de máscara: es el que vamos a utilizar nosotros en este ejemplo. Seleccionamos en la pestaña desplegable el archivo vectorial que va a hacernos de máscara de recorte (en este caso el vectorial "extremadura"). En cualquiera de los dos modos dejamos seleccionada la casilla Cargar en la vista del mapa cuando se termine para que el resultado se nos añada como capa al proyecto.

Cuando hayamos elegido el modo de corte y tengamos todo configurado le damos a Aceptar y QGIS empieza a generar nuestro archivo de recorte en la carpeta seleccionada. Al terminar lo añade como capa a nuestro proyecto.
Nuestro nuevo recorte de nombre extremaduraDEM añadido como nueva capa.
A partir de aquí nos sería muy fácil, por ejemplo, extraer las curvas de nivel o generar un relieve de sombras sólo de Extremadura trabajando sobre la nueva capa extremaduraDEM. Como veis un proceso muy sencillo y de enorme utilidad que usaremos con frecuencia. Saludos.

31 comentarios :

  1. Esta utilidad no funciona en QGis para raster descargados con el SASPlanet en formato ecw, será porque son mosaicos y el QGIS no puede gestionarlo, o yo no lo he conseguido. Felicidades por el blog.

    ResponderEliminar
    Respuestas
    1. Facil,facil. Descargate solo la zona de tu interes, y "yatà". (A no ser que seas muy tikis-mikis)

      Eliminar
    2. Es cierto, QGIS no soporta todos los formatos al hacer Clipper, por mucho que salgan en la pestaña de posibles.. De hecho hasta hace pocas versiones ni siquiera abría los ecw directamente.... Este es el mensaje de error al intentar hacer Clipper en un formato no compatible, donde se nos dice los que sí están admitidos. Gracias por el apunte José Carlos.
      Output driver `ECW' not recognised or does not support
      direct output file creation. The following format drivers are configured
      and support direct output:
      GeoRaster: Oracle Spatial GeoRaster
      VRT: Virtual Raster
      GTiff: GeoTIFF
      NITF: National Imagery Transmission Format
      HFA: Erdas Imagine Images (.img)
      ELAS: ELAS
      MEM: In Memory Raster
      BMP: MS Windows Device Independent Bitmap
      PCIDSK: PCIDSK Database File
      ILWIS: ILWIS Raster Map
      SGI: SGI Image File Format 1.0
      Leveller: Leveller heightfield
      Terragen: Terragen heightfield
      netCDF: Network Common Data Format
      HDF4Image: HDF4 Dataset
      ISIS2: USGS Astrogeology ISIS cube (Version 2)
      ERS: ERMapper .ers Labelled
      RMF: Raster Matrix Format
      RST: Idrisi Raster A.1
      INGR: Intergraph Raster
      GSBG: Golden Software Binary Grid (.grd)
      GS7BG: Golden Software 7 Binary Grid (.grd)
      PNM: Portable Pixmap Format (netpbm)
      ENVI: ENVI .hdr Labelled
      EHdr: ESRI .hdr Labelled
      PAux: PCI .aux Labelled
      MFF: Vexcel MFF Raster
      MFF2: Vexcel MFF2 (HKV) Raster
      BT: VTP .bt (Binary Terrain) 1.3 Format
      LAN: Erdas .LAN/.GIS
      IDA: Image Data and Analysis
      GTX: NOAA Vertical Datum .GTX
      NTv2: NTv2 Datum Grid Shift
      CTable2: CTable2 Datum Grid Shift
      KRO: KOLOR Raw
      ADRG: ARC Digitized Raster Graphics
      SAGA: SAGA GIS Binary Grid (.sdat)

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Pues la verdad es que no se qué decirte Daerlisel... Acabo de probar de nuevo el proceso explicado en el artículo y me ha funcionado perfectamente. Nunca he tenido ese error para poder decirte lo que está fallando. Asegúrate de que el polígono es realmente un polígono vectorial cerrado (a veces puede confundirse con las líneas), pero quitando eso y sin tener tu caso delante, poco más puedo aportar. Saludos.

      Eliminar
    2. Hola, puede que el problema sea que tus 2 capas tienen diferente sistema de coordenadas. Verifícalo, saludos.

      Eliminar
  3. hola, despues de cortar la imagen la quiero insertar en autocad 2012 y no me deja, porque puede ser? gracias

    ResponderEliminar
    Respuestas
    1. Hola Verónica! Lamentablemente no controlo AutoCAD y no se decirte... No se si te refieres a que ni siquiera te deja abrirla (prueba otros formatos) o a que no te la coloca en su sitio (problema de proyecciones). A ver si alguien que maneje AutoCAD nos cuenta... Saludos y sorry!!

      Eliminar
  4. HOLA!!! mira he intentado recortar pero no me deja. Tengo un raster y lo que quiero es cortar un embalse, he hecho la capa vectorial de la forma del embalse porque lo que quiero es despreciar el embalse. lo que hace es que me corta todo lo demas y me deja el embalse recortado. como lo haria??

    ResponderEliminar
    Respuestas
    1. Buena pregunta michelle... He estado dándole vueltas y no he visto la forma de "agujerear" el raster, como tu quieres. Al final he tenido que crear otro vectorial rodeando el que se quiere usar de máscara y luego seguir el proceso normal, no se si me explico... A ver si alguien sabe una forma más sencilla o directa. Saludos!!

      Eliminar
  5. Hola, después de cortar una porción de un raster (imagen Sentinel2 RGB), el nuevo archivo generado lo puedo ver bien en QGis pero cuando abro la imagen en un visor de imágenes se ve todo negro

    ResponderEliminar
    Respuestas
    1. ¿Qué formato de imagen tiene la imagen Sentinel? ¿Y en qué formato lo guardas? Los tif no son un formato fácil de manejar por cualquier visor..

      Eliminar
  6. Hola!!! muy buen blog!!! lamento decirles que me sale el mismo error:
    Output driver `ASC' not recognised or does not support
    direct output file creation. The following format drivers are configured
    and support direct output:
    GeoRaster: Oracle Spatial GeoRaster
    VRT: Virtual Raster
    GTiff: GeoTIFF
    NITF: National Imagery Transmission Format
    HFA: Erdas Imagine Images (.img)
    ELAS: ELAS
    MEM: In Memory Raster
    BMP: MS Windows Device Independent Bitmap
    PCIDSK: PCIDSK Database File
    PCRaster: PCRaster Raster File
    ILWIS: ILWIS Raster Map
    SGI: SGI Image File Format 1.0
    Leveller: Leveller heightfield
    Terragen: Terragen heightfield
    netCDF: Network Common Data Format
    HDF4Image: HDF4 Dataset
    ISIS2: USGS Astrogeology ISIS cube (Version 2)
    ERS: ERMapper .ers Labelled
    RMF: Raster Matrix Format
    RST: Idrisi Raster A.1
    INGR: Intergraph Raster
    GSBG: Golden Software Binary Grid (.grd)
    GS7BG: Golden Software 7 Binary Grid (.grd)
    PDF: Geospatial PDF
    MBTiles: MBTiles
    MRF: Meta Raster Format
    PNM: Portable Pixmap Format (netpbm)
    PAux: PCI .aux Labelled
    MFF: Vexcel MFF Raster
    MFF2: Vexcel MFF2 (HKV) Raster
    BT: VTP .bt (Binary Terrain) 1.3 Format
    LAN: Erdas .LAN/.GIS
    IDA: Image Data and Analysis
    GTX: NOAA Vertical Datum .GTX
    NTv2: NTv2 Datum Grid Shift
    CTable2: CTable2 Datum Grid Shift
    KRO: KOLOR Raw
    ROI_PAC: ROI_PAC raster
    ENVI: ENVI .hdr Labelled
    EHdr: ESRI .hdr Labelled
    ISCE: ISCE raster
    ADRG: ARC Digitized Raster Graphics
    SAGA: SAGA GIS Binary Grid (.sdat)
    DB2ODBC: IBM DB2 Spatial Database
    GPKG: GeoPackage

    ALGUIEN ENCONTRO ALGUNA SOLUCION PARA ESTO?

    ResponderEliminar
    Respuestas
    1. Exportarlo a un formato que funcione como Geotiff, no? Saludos y gracias.

      Eliminar
  7. Muchas gracias!!!!! lo pude hacer sin problemas!!!!! genio!

    ResponderEliminar
  8. hola cuando trato de hacer lo mismo me sale arredeor de la imagen cortada un margen negro o algo asi, a que se debe

    ResponderEliminar
    Respuestas
    1. Pues no se decirte así sin verlo... El proceso explicado funciona tal cual, y sin más detalles de lo que intentas es difícil suponer para mi.

      Eliminar
  9. intento hacerlo con una imagen landsat 8 y cuando pongo aceptar "carga " dos segundos y despues no arroja ningun error ni un resultado.

    ResponderEliminar
    Respuestas
    1. Buf difícil saber Victoria... Una imagen Landsat es un raster como cualquiera, no veo que deba darte problema. Repasa bien los pasos y que tengas seleccionada bien la máscara de corte.

      Eliminar
  10. hola, al recortar el raster de elevacion me sale este mensaje: ERROR 1: Attempt to create ADRG dataset with an illegal
    data type (Int16), only Byte supported by the format.
    A que se debe? como puedo solucionarlo?

    ResponderEliminar
    Respuestas
    1. Hola, en qué formato tienes el archivo de elevación? Se me ocurre por ese error que tengas el DEM en un formato que no es compatible con el proceso... Intenta convertirlos a ASC (u otro) e intenta de nuevo. Saludos!

      Eliminar
    2. Gracias por responder. LA verdad no funciono cambiando el formato.

      Eliminar
  11. Al utilizar la herramienta Clipper para cortar sobre el ráster del PNOA de máxima actualidad la forma de un rectángulo, definido por un archivo vectorial tipo polígono (algo así como en el ejemplo) se queda cargando y cargando hasta que lo paras o cierras el qgis. No es que tarde un poco, es que no acaba nunca. Y no debería de dar error. Ambas capas se encuentran en el mismo SRC y los formatos son admitidos.
    Tras salir de Qgis queda en la carpeta el archivo de salida, como si lo hubiera creado bien, pero al cargarlo de nuevo solo aparece la forma recortada completamente en negro, como si hubiera recortado lo seleccionado pero sin datos.
    No se que puede ser y me pasa siempre esto con la herramienta Clipper.
    Gracias de antemano!

    ResponderEliminar
    Respuestas
    1. A mí me ha ocurrido exactamente igual. ¿No hay alguna alternativa al Clipper que sí funcione con extensiones '.ecw'?

      Eliminar
    2. Global Mapper es una alternativa excelente... A mi me funciona la herramienta Clipper sin problema. El que conozca alternativas que las comparta, por el bien de la Comunidad.

      Eliminar
  12. Que tal ! Estoy intentando recortar una imagen Sentinel, y luego de seleccionar el area que deseo y de intentar recortar me aparece el siguiente error :

    ERROR 1: Error: Computed -srcwin 138.982 35.8657 1.58137 -0.693715 has negative width and/or height.


    Pues, claramente, no es lógico que esté saliendo un alto o ancho negativo porque se está seleccionando un area. Sabes que podría hacer ? estoy corriendo en 2.18 las palmas

    ResponderEliminar
    Respuestas
    1. Parece que ya sois varios a los que la herramienta Clipper les da problemas; cuando hice el artículo todo funcionó tal cual se cuenta en él, pero visto lo visto haré algunas pruebas a ver si me da esos errores que comentáis. Quizá la herramienta esté limitada a algunas proyecciones o formatos... Cuando haga las pruebas pondré los resultados. Saludos!

      Eliminar
  13. Hola amigos, tengo que recortar un poligono dibujado en AUTOCAD, que corresponde a los limites de un distrito y generarle sus curvas de nivel, para ésto también he habierto la imagen del ASTERGDEM correspondiente a éste poligono, pero no me permite seleccionarlo, sin embargo cuando trazo un poligono con las herramientas del GLOBAL MAPPER, puedo seleccionarlo y hacer el proceso.
    Pero necesito usar el poligono del Autocad, por razones que tiene demasiados vértices.
    pienso que debo debo convertir las entidades de AUTOCAD a GLOBAL MAPPER, de ser asi como lo hago. GRACIAS

    ResponderEliminar
  14. Buenas, gran blog!

    Tengo un problema, el QGIS me da este error:

    Cannot compute bounding box of cutline.

    Alguna idea? no entiendo que passa, ya he hecho mascaras otras veces...¿?

    Gracias de antemano!

    ResponderEliminar
  15. Buenos días, a mi me da otro error:

    Warning 1: Self-intersection at or near point 761.3376199999766 2056.2429000000702
    ERROR 1: Cutline is not valid after transformation

    Estoy tratando de recortar un raster formado por un mosaico de rasters obtenidos de las capas LiDAR PNOA, en formato tif y geotif (he probado con ambos), procesado con FUSION; con una capa vectorial de polígonos a la que le he pasado el corrector geométrico para eliminar polígonos en astilla y tal. Tanto el raster como el vectorial están en el mismo SRC.
    También he probado con la herramienta 'extraer por máscara' pero tampoco sale.
    Total, que no se me ocurre nada, asi que si alguien ve el fallo... Saludos

    ResponderEliminar
    Respuestas
    1. Creo que ya he descubierto el fallo: el shp que quiero utilizar de máscara el un polígono multiparte con algunos huecos interiores, algo que la herramienta no debe de soportar. ¿Alguien conoce una herramienta que si lo permita? Lo que he hecho ha sido sacar el perímetro del polígono en otro shp macizo y así me ha dejado, pero claro, no he podido recortar todos los huecos interiores.

      Eliminar