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.

57 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
    3. Hola, saludos. Al intentar hacer el clipper a una imagen srtm en coordenadas utm 18 me aparece el mismo error: Attempt to create ADRG dataset with an illegal data type (Int16), only Byte supported by the format.
      el formato es Geotiff. Alguna recomendacion? llevo rato tratando de hacerlo y no me funciona, gracias de antemano

      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
    3. a mi me pasa ahora!!! que puede ser?!! estoy usando la versión 3.0 girona ¿sera eso?

      ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

      Eliminar
    4. A mí me sucede con frecuencia cuando utilizo rásters muy extensos. Lo corregí trabajando con rasters de escalas 1:50,000 o menores.

      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
  16. Buenos días,tengo un problema y quisiera saber que hago mal, utilizo de capa de máscara un .kml extraído del Google Earth y me sucede que el recorte obtenido tiene un recuadro negro y en el centro si me muestra la imagen recortada, como puedo eliminar este recuadro?(esto lo veo al exportar la capa al Google Earth directamente desde QGis. Muchas gracias

    ResponderEliminar
    Respuestas
    1. Has probado a activar la casilla "valor sin datos" que se menciona en el articulo?? Se usa para recortar aquellas zonas que no contienen datos (por ejemplo de altura) y evitar así qie salgan en negro. Quizá pueda ser eso... Saludos.

      Eliminar
  17. ERROR 1: Failed to compute min/max, no valid pixels found in sampling. este es el error que me bota y no se que puede ser...!

    ResponderEliminar
  18. Buenas tardes, he seguido pasos para unir archivos raster del tipo DEM y en el proceso final me sale esto: ERROR 1: Attempt to create ADRG dataset with an illegal
    data type (Int16), only Byte supported by the format.
    Me podrías ayudar con esto, gracias.

    ResponderEliminar
    Respuestas
    1. La herramienta para unir varios raster no es ésta de clipper, sino que debes usar la herramienta Merge (combinar).

      Eliminar
    2. Gracias por responderme, lo cierto es que estoy usando la herramienta Merge, aun así me sigue saliendo el error: ERROR 1: Attempt to create ADRG dataset with an illegal data type (Int16), only Byte supported by the format.
      y no logro entender la causa.

      Eliminar
    3. Es difícil saberlo sin probarlo... Quizá uses un formato de DEM que QGIS pueda abrir pero no exportar? Prueba en otros formatos...

      Eliminar
  19. hola, por favor si algien puede ayudarme. Despues de tener tres recortes de una imaagen raster intento hacer una combinacion de las mismas y me sale el mensaje de phyton no funciona. cual puede ser la razon de esto? muchas gracias

    ResponderEliminar
  20. Hola! Se que esta publicación no tiene mucho que ver con mi consulta, pero tengo una serie de errores en QGis y debo resolverlo lo antes posible. Paos a explicar: tengo una capa hecha en google earth pro, y guardada como kml que la abri en QGIS y la guarde como .shp, a esta capa (que la llamo rios) le quiero eliminar el area que esta superpuesta con un buffer creado para ciudades, pueblos y caminos. Para esto, utilizo la herramienta geometrica "Deferencia", que supongo que es diferencia. Cuando pongo Run me salta:

    Algoritmo Difference comenzando...

    1006 See log for more details

    Estan en las mismas coordenadas y creo que esta todo igual, como puedo solucionarlo??

    Tambien intento unir ambas capas y me da:

    Algoritmo Union comenzando...

    -2147483645 See log for more details

    o tambien me da:


    Algoritmo Union comenzando...

    'NoneType' object has no attribute 'isGeosEmpty' See log for more details

    cual será mi problema???

    Cualquier cosa que me pueda guiar es bienvenido!!

    Gracias

    ResponderEliminar
  21. Hola, no se si tengas conocimiento sobre lo que te preguntare, pero tengo varias capas que quiero cortar con la capa del area y cuando uso la herramienta de geoprocesamiento>cortar, y coloco las dos capas me crea otra pero vacia. ¿Que puede ser? Estoy haciendolo erradamente?

    ResponderEliminar
  22. tengo la misma duda, sale un mensaje de error sobre el menu de características. PORFA AYUDA

    ResponderEliminar
  23. Me he descargado la ver 2.18.14, sustituyendo a la que tenía (2.14), y en en menú RASTER ya no me aparece por ningún lado la opción EXTRACCIÓN, ni siquiera utilizando la caja de herramientas (CTRL+ALT+T). Desactivaría la casilla x error? alguien sabe cómo carajos solucionarlo? Eliminé la ver descargada y reinstalé la anterior, pero tampoco me aparece!!!

    ResponderEliminar
    Respuestas
    1. Pues sigue estando en el mismo sitio (v 2.18.11): menú Raster/Extracción/Clipper. Y no tengo ni idea de cómo carajos se puede llegar a ocultar la barra de menús....

      Eliminar
    2. Yo tampoco mi hermano, pero en verdad me sucedió. Estoy nuevamente con la v 2.10.1 Pisa y, aunque algo antigüita (considerando lo rápido que se crean actualizaciones)... bualá!!! Problema resuelto. Cortando raster y analizando MDTs en... 3...2...1

      Eliminar
  24. Buenas tardes, ¿Se puede extraer o cortar las imágenes de Google?

    ResponderEliminar
    Respuestas
    1. Se puede. Abre un diseñador de impresión con la imagen de Google y la exportas a la escala que quieras. O usa SASPlanet, mucho más sencillo.

      Eliminar
  25. hola, alguien sabe por que al unir 4 dem, el resultado aparece entre cortado? no he podido mejorar este problema

    ResponderEliminar
  26. Hola, estoy tratando de cortar un raster. asc con un shp y me arroja el error de que el polígono de corte es invalido..pero visualizo el poligo y es correcto y esta en el mismo sistema de cooordenadas que el raster...alguna idea de donde puede estar el error?

    ResponderEliminar
  27. Utilizar una imagen raster propia

    Extraordinaria página. Supera de lejos mis expectativas.
    Estoy usando SASPlantet para generar mapas raster georeferenciados. Todo perfecto.
    Pero quiero generar un mapa utilizando una imagen raster propia, que tengo en mi PC, ya georeferenciada.
    Hay alguna posibilidad de darle acceso a SASPlanet para que pueda incorporar mi propia imagen, que no esta subida a un servidor de mapas (no sabría como subirla) sino en un directorio de mi PC?

    ResponderEliminar
    Respuestas
    1. Quizá sea posible, pero creo que la única forma sería generar un mosaico de esa imagen y hacérsela pasar a SASPlanet por imágenes caché... Un poco lío la verdad. Quizá sea mejor que uses algún otro programa para integrar esas imágenes.

      Eliminar
    2. Efectivamente hasta el momento lo vengo haciendo con otro software.
      Hasta el momento me han funcionado bien en Global Mapper y el MapMerge de Oziexplorer.
      Con ambos se pueden generar mapas georeferenciados de excelente calidad.
      Pero me gusta SASPlanet porque es mucho mas comodo de usar.

      Eliminar
    3. Cómodo es, y una maravilla. Pero para las cosas que ha sido pensado. Integrar un archivo físico externo me temo que no es una de ellas...

      Eliminar