domingo, 16 de febrero de 2014

UNIFICAR POLÍGONOS DE UN SHAPEFILE CON LA MISMA INFORMACIÓN

Muchas veces tenemos un shapefile con gran cantidad de polígonos independientes que comparten la misma información en la tabla de atributos, y nos convendría unir todos esos polígonos en uno solo, para ello utilizamos la herramienta DISSOLVE de la siguiente manera.


  • En este caso tenemos un shapefile de cubierta vegetal con varios polígonos que contienen la misma información, para unir dichos polígonos en ArcGis vamos a ARCTOOL BOX/ DATA MANAGEMENT TOOLS/ GENERALIZATION/ DISSOLVE.






  • En IMPUT FEATURES ponemos el shapefile, en OUTPUT FEATURE CLASS ponemos la ruta de salida donde vamos a guardar el archivo, en DISSOLVE FIELD marcamos al campo de la tabla de atributos desde el cual queremos que se unan los polígonos, y damos a OK.



  • Obtenemos el shapefile con los campos elegidos bajo un mismo polígono.



  • Y esta es su tabla de atributos.






29 comentarios:

  1. Gracias , medio dia ahorrado.
    Ahora como hacer lo contrario

    Gracias

    ResponderEliminar
    Respuestas
    1. Ante todo gracias anónimo por visitar mi blog y espero que te sirva de ayuda, respecto a lo que me pides existe una herramienta en Arcgis que hace lo contrario del "Dissolve" denominada "multipart to singlepart", la cual divide las entidades unidas en entidades independientes.
      La manera de utilizarla es, a partir de un shapefile con entidades unidas por algún atributo, vamos a las ToolBox y elegimos "Data Management Tools / Features / Multipart to Singlepart", en la ventana que nos aparece le indicamos en "Imput Features" el shapefile con el que queremos trabajar, y en "Output Feature Class" la ruta donde queremos guardar nuestro resultado, hacemos click en "OK" y nos aparece un shapefile igual que el anterior pero con todas sus entidades individuales con los valores de los campos del shapefile original.
      Espero haberte resuelto tu duda y sigue visitando mi blog, un cordial saludo Alberto.

      Eliminar
  2. Muchísimas gracias, lo dicho, medio día ahorrado!!! =)

    ResponderEliminar
  3. alguien sabe como unir dos shape pero de diferente entidad? (uno de lineas con otro de poligonos)

    ResponderEliminar
    Respuestas
    1. Buenas anónimo, en un mismo archivo .shp no puede haber distintas geometrías, por lo que no puedes unir polígonos y líneas, otra cosa es que puedas unir por medio de un join sus tablas de atributos mediante un campo en común.

      Eliminar
    2. Se puede hacer con la herramienta "Intersect" pero hay que tener cuidado si estas trabajando con unidades de medida (longitud, area) busca un tutorial de esta herramienta en internet.

      Eliminar
    3. Si realizas un "intersect" entre líneas y polígonos, te creará un nuevo shapefile de los fragmentos de líneas que intersectan con los polígonos, porque la función de esa herramienta es esa y, como ya dije, en un shapefile no puede haber nada mas que un tipo de geometría.

      Eliminar
  4. Hola,
    ¿al unificar los polígonos perdemos los atributos de la tabla original?
    Gracias, ¡y que buena página!

    ResponderEliminar
    Respuestas
    1. buenas Germán, gracias por visitar mi blog y me alegro que sea de ayuda, a tu pregunta quiero decirte que al realizar un dissolve lo que hacemos es unir en un único elemento todos los elementos de un shapefile que tienen el mismo valor en la columna que elegimos de su tabla de atributos, por lo tanto la tabla resultante tendrá un campo con el id y otro campo con el atributo que elegimos para realizar el dissolve, pero esto es lo lógico, ya que los demás campos son diferentes e independientes de los atributos del campo que elegimos para el dissolve, ojala haya resuelto tu duda, un saludo.

      Eliminar
  5. Alberto, muy bueno tu blog. Te hago una consulta, tengo un shape de polígonos y preciso unificar los poligonos contiguos, es decir que si por ejemplo hay cinco poligonos uno al lado de otro, deberian pasar a ser uno solo, sumando sus datos. Tenés alguna idea para ayudarme? Desde ya muchas gracias

    ResponderEliminar
    Respuestas
    1. Buenas Laura, lo primero agradecerte que visites mi blog y espero poder ayudarte, lo que pides no es fácil pero he encontrado una solución que espero te sea de utilidad.


      Lo primero que debes hacer es un dissolve con la herramienta arctoolbox / data management tools / generalization / dissolve, eliges el shapefile a disolver, la ruta de salida y desactivas la casilla de abajo denominada create multipart features y ok.


      Una vez creado el nuevo shapefile con todos los polígonos contiguos unidos vamos a agregarle los datos del original con un spatial join, para ello vamos a arctoolbox / analysis tools / overlay / spatial join, en target features elegimos el shapefile disuelto que acabamos de crear, en join features elegimos el shapefile de polígonos original y en join operation elegimos JOIN_ONE_TO_MANY, y damos a ok, entonces nos crea un nuevo shapefile igual que el disuelto pero con los datos del original en la tabla de atributos, esto es, si seleccionas un polígono de este shapefile que anteriormente correspondía a cinco polígonos contiguos, en la tabla de atributos se seleccionarán cinco filas con los datos de los cinco polígonos originales.


      Ojala te haya servido mi ayuda y difundas mi blog :), de todos modos pondré una entrada resolviendo esta cuestión, un saludo, Alberto.

      Eliminar
  6. Hola
    Por favor su ayuda
    como unir dos shp de puntos. con información diferente pero relativamente cercanos

    ResponderEliminar
    Respuestas
    1. Buenas Yoselin, creo que la herramienta que debes utilizar para tu objetivo es "merge", ubicada en "arctoolbox / data management tools / general / merge", si utilizas Arcgis, cuando entras aparece un cuadro de diálogo en el cual, donde pone "input datasets" debes introducir los shapefiles que quieres unificar, y en "output dataset" debes introducir la ruta donde quieres crear el shapefile unificado, el resultado será un shapefile con todos los puntos unidos y los datos de los shapefiles iniciales en su tabla de atributos, ojala haya resuelto tu duda, un saludo.

      Eliminar
  7. Muchas gracias por compartir vuestro conocimiento.

    ResponderEliminar
    Respuestas
    1. Gracias a vosotros por visitar mi blog, y ojala sea de utilidad para todos, un saludo.

      Eliminar
  8. Hola, me gustaría saber como unir polígonos con la misma información si éstos se superponen en parte. Si realizo un "dissolve" no me sumaria dos veces el área superpuesta dándome información errónea?
    Gracias

    ResponderEliminar
  9. Buenas, supongo que lo que quieres es unir polígonos que comparten la misma información en un campo determinado, para ello efectivamente se utiliza la herramienta "dissolve" y se elige el campo que contiene la información mediante la cual quieres unir dichos polígonos. Pero esto te crea un nuevo shapefile cuya tabla de atributos solamente contiene el campo que elegiste para disolverlo, aunque también, en las opciones de dissolve, tienes más abajo la opción "statistics fields" donde podrías crear otro nuevo campo con el sumatorio del campo "área", pero esto sería un dato erróneo porque sumaría las áreas del shapefile original con los polígonos sin disolver, y no el área nueva con los polígonos ya unidos.
    Por ello, y para que los datos de áreas sean correctos, te recomiendo que realices un "dissolve" con el campo que te interese y después añadas un campo "área" y calcules las áreas de los nuevos polígonos, espero haberte ayudado, un cordial saludo.

    ResponderEliminar
  10. Alberto, buen día! necesito disolver una serie de polígonos pero no quiero que se reduzcan los atributos, sino que solo visualmente se disuelvan pero que mantengan su independencia en la tabla de atributos. Es posible eso? Es para un mapa geológico

    ResponderEliminar
    Respuestas
    1. Buenas Victor, la herramienta "dissolve" no puede disolver varios polígonos manteniendo sus datos individuales,, ya que siempre exige disolverlos con un campo que contiene datos comunes entre ellos, y tampoco hay ninguna herramienta que pueda realizar lo que pretendes sin perder datos.
      Puedo darte una solución, poco ortodoxa, de realizar algo parecido a lo que pretendes:

      - Realiza un "dissolve" del shapefile pero sin elegir ningún campo para disolver, esto te creará un shapefile con todo disuelto y sin los atributos.

      - Pon en modo edición el shapefile original, ve al shapefile disuelto y selecciona todo, haz click derecho en el ratón y selecciona copiar.

      - Ve al shapefile original que está en modo edición y haz click derecho y dale a pegar y ok.

      - Salva la edición y sal de ella.

      Esto te ha pegado todo el shapefile que hemos disuelto como un polígono nuevo encima del shapefile original, que no tiene datos, manteniendo los datos de atributos de todos los polígonos del shapefile original que no se ven porque están debajo.

      Un cordial saludo.

      Eliminar
  11. Hola Alberto, me gustaría unir muchos polígonos, pero que en la tabla de atributos me muestre sólo uno (o sea sólo un polígono) con la información del área total, cómo puedo hacer eso?
    Muchas Gracias

    ResponderEliminar
    Respuestas
    1. Buenas María, pues si has leído esta entrada puedes imaginar la forma de realizar lo que me preguntas.
      Primero abres tu shapefile de polígonos, luego vas a Arctoolbox y seleccionas la herramienta dissolve mediante ARCTOOLBOX/MANAGEMENT TOOLS/GENERALIZATION/DISSOLVE.
      En el cuadro que aparece seleccionas el shapefile de polígonos en la casilla de IMPUT FEATURES, seleccionas la carpeta donde quieres que se te genere el nuevo archivo en la casilla OUTPUT FEATURE CLASS, y sin elegir ningún campo DISSOLVE FIELD le das a ok.
      Esto te creará un nuevo shapefile donde todos los polígons del anterior se han fusionado en uno.
      Para saber el área total del nuevo polígono creado, simplemente ves a la tabla de atributos, en las opciones selecciona ADD FILED, ponle un nombre al nuevo campo y selleciona que sea tipo DOUBLE, una vez creado haz xlixk derecho en su nombre y selecciona CALCULATE GEOMETRY, luego elige la opción ÁREA y la unidad que prefieras y dale a ok.
      Ojala te he resuelto la pregunta María, gracias por ver mi blog.

      Eliminar
  12. Hola buen dia.
    Estoy usando el programa qsig, y necesito unir dos polígonos de un mismo shape. Probé con la herramienta unión y también con la de disolver que explicaste pero siempre en vez de unir los dos polígonos, me elimina uno.

    Sabrás que puede ser?

    ResponderEliminar
    Respuestas
    1. Buenas tardes, después de realizarme esa pregunta he probado la herramienta de "dissolve" de Qgis con distintos shapefiles y siempre me da un resultado perfecto, disolviendo todos y cada uno de los polígonos en un solo polígono, quizás tengas algún error en tu shapefile, o que tengas seleccionado uno de los dos polígonos cuando realizas el dissolve o puede que no ejecutes bien la herramienta, que no creo que sea eso, por lo que no se que responderte en ese sentido, lo único es que me pudieses enviar el shapefile de alguna manera y comprobarlo yo, un saludo.

      Eliminar
  13. hola,
    Quiero unir polígonos de un shape con una caractirística común pero al usar dissolve se unen todos los polígonos. ¿qué puede estar mal?
    gracias

    ResponderEliminar
    Respuestas
    1. Buenas tardes, pues después de estar pensando e investigando lo que puede fallar no tengo una respuesta segura, si realizas bien el dissolve solamente puedo pensar que el campo que eliges para disolver tenga el mismo atributo para todos los polígonos o que al realizar el dissolve no marques en la opción "Dissolve_fields" el campo por el cual quieres disolver los polígonos, de todos modos sin tener mas datos del shapefield en cuestión y su tabla de atributos, así como el programa que utilizas para realizarlo, no puedo decirte nada mas de momento, un cordial saludo

      Eliminar
  14. Muchas gracias por la información
    Saludos

    ResponderEliminar
    Respuestas
    1. Gracias a ti por leer mi blog, me alegro mucho que te sirva, un saludo.

      Eliminar
  15. saludos alberto quisiera unir varios poligonos de diferentes shapefile en una sola tabla de atributos

    ResponderEliminar
    Respuestas
    1. Buenos días Elinh, supongo que lo que quieres es unir varios polígonos de distintos shapefiles en un único shapefile con una única tabla de atributos.

      Para ello podemos utilizar la herramienta MERGE de ArcGis:

      - Abres todos los shapefiles que quieres unir

      - Vas a ToolBox y abres DATA MANAGEMENT TOOLS / GENERAL / MERGE

      - En el cuadro que sale, en "Imput Dataset" le das a la flechita de la derecha y eliges todos los shapefiles de polígonos que quieres unir

      - En "Output Dataset" eliges la ubicación del nuevo shapefile que se va a crear, y das a OK

      Con ello ya tenemos un nuevo shapefile que contiene todos los polígonos de los shapefiles anteriores y con una única tabla de atributos de todos ellos.

      Si utilizas Qgis también pueden hacerlo en la pestaña "Vectorial" en HERRAMIENTAS DE GESTIÓN DE DATOS / UNIR CAPAS VECTORIALES

      Ojala te haya sido útil, gracias por leer y seguir mi blog, un cordial saludo

      Eliminar