|
|
Tema Anterior :: Tema siguiente
|
| Autor |
Mensaje |
roge1980
Registrado: 30 Sep 2010 Mensajes: 4
|
Publicado: Jue 30 Sep 2010, 12:21 Asunto: Unir un shape con una tabla excel |
|
|
Buenas, necesito ayuda urgente sobre un tema, del que espero podáis ayudarme, os comento:
por un lado tengo una tema shape de polígonos, cada polígono con un código en l atabla de atributos.
por otro lado tengo una tabla excel, en la que aparecen estos mismo códigos para relacionarlos con los plígonos anteriores, con lo que podría utilizar un "join". El pobrema es que existe más de un código de la tabla excel por cada codígo de la tabla de atributos del sahpe. No sé si me explico, pongo un ejemplo simple:
Códigos tabla de atributos codigos tabla excel columna adjunt
1 1 a
2 1 b
3 1 c
4 2 a
5 4 a
. 4 b
. .
La cosa es que si hago un "join" sólo me relaciona un código de la tabla de atributos del shape con un único código de la tabla excel, por tanto, en el ejemplo anteiror sólo me aparecían los datos adjuntos al primer "1", es decir, la "a", peridendo la información "b" y "c" de la otra columna del excel.
Otro ejemplo,por un lado tengo un shape de municipios, cada uno con un código en la tabla de atributos, y por otro una tabla excel, con ese mismo código, pero repetido dos veces en en dos filas del excel, en uno me dice la población existente en su núcleo urbano principal y en otro me dice la población del resto del municipio, y yo quiero obtener una tabla de atributos del shape en el que me aparezcan esas las dos filas del excel.
¿existe alguna froma, alguna herramienta, para que me apareczcan todos los datos sin perder información?
perdonad por le rollo, espero podías ayudarme, gracias de antemano. |
|
| Volver arriba |
|
 |
geopaco
Registrado: 10 Jun 2009 Mensajes: 8
|
Publicado: Lun 04 Oct 2010, 10:50 Asunto: |
|
|
hola
Me parece que no te queda otra más que reparar tus datos de excel. En realidad los join deberían hacerse con códigos que fuera clave primaria, es decir, que no se repitan. De ahí la utilidad de las uniones
Pero claro, si tienes un código de municipio, por ejemplo MAD en el shp y luego tienes dos filas en el excel, las dos con MAD pero cada una con unos datos asociados diferentes, esto es un error en los datos
Debes prepararlos de forma que el código de unión sea único en los dos archivos, el excel y el shp. POn a continuación en la misma fila del excel todos los datos del mismo municipio
Es decir, si te he entendido bien, tienes algo así
SHP EXCEL
--- -----
MAD MAD, 1324 (dato 1)
MAD, 25.678 (dato 2)
Pues ponlo así:
SHP EXCEL
--- -----
MAD MAD, 1324 (dato 1); 25.678 (dato 2)
Así no tendrás problema
saludos |
|
| Volver arriba |
|
 |
roge1980
Registrado: 30 Sep 2010 Mensajes: 4
|
Publicado: Lun 04 Oct 2010, 13:00 Asunto: |
|
|
| geopaco escribió: | hola
Me parece que no te queda otra más que reparar tus datos de excel. En realidad los join deberían hacerse con códigos que fuera clave primaria, es decir, que no se repitan. De ahí la utilidad de las uniones
Pero claro, si tienes un código de municipio, por ejemplo MAD en el shp y luego tienes dos filas en el excel, las dos con MAD pero cada una con unos datos asociados diferentes, esto es un error en los datos
Debes prepararlos de forma que el código de unión sea único en los dos archivos, el excel y el shp. POn a continuación en la misma fila del excel todos los datos del mismo municipio
Es decir, si te he entendido bien, tienes algo así
SHP EXCEL
--- -----
MAD MAD, 1324 (dato 1)
MAD, 25.678 (dato 2)
Pues ponlo así:
SHP EXCEL
--- -----
MAD MAD, 1324 (dato 1); 25.678 (dato 2)
Así no tendrás problema
saludos |
En realidad lo que tengo es algo así:
Shape excel
Madrid Madrid, 1324 (dato uno)
Barcelona MAdrid,25678 (Dato dos)
Sevilla BArcelona, 2500
Málaga Sevilla, 1000
y yo quiero que me apreciera algo así:
Shape excel
Madrid Madrid, 1324
Madrid MAdrid, 25678
BArcelona BArcelona, 2500
Tal y como tú me has comentado me aparecería todos los datos en el amisma fila, y creo que así no se podría trabajar bien con ellos. Además, estoy hablando de miles de datos, por lo que no sería factible hacerlo así.
ME han comentado que con arcview tambíen hay alguna forma de hacerlo. Me valdría también con arcgis o con arcview
POr Favor ayuda!!me corre mucha prisa...
gracias |
|
| Volver arriba |
|
 |
raneh
Registrado: 12 Jul 2006 Mensajes: 151 Ubicación: Santander
|
Publicado: Lun 04 Oct 2010, 14:15 Asunto: |
|
|
Hola,
A mi se me ocurren dos opciones:
1. Agregar los datos para que a cada registro único del shape le corresponda un registro único del excel. Por ejemplo sumando el dato y contando el número de veces que aparece en el excel, añadiendo la media, desviación típica o lo que consideres oportuno para no perder tanta información. Esto puedes hacerlo con la función Summarize de arcgis sobre el excel dando como resultado una tabla dbf que usarías para hacer el join al shape. Al final la tabla de atributos sería algo así:
Registro - Frecuencia - Suma - Media - Desvest ...
Madrid - 5 - 15 - 3 - ... - ...
2. Utilizar la opción Relate tables de Arcgis. En este caso es posible hacer una relación de uno a muchos, de modo que al seleccionar Madrid en el shape se seleccionen todos los "Madrid" del excel. Para visualizar las dos tablas a la vez en arcgis abre primero la tabla de atributos del shape y luego ve a options - relates.
Espero que te sirva.
Un saludo. |
|
| Volver arriba |
|
 |
roge1980
Registrado: 30 Sep 2010 Mensajes: 4
|
Publicado: Lun 04 Oct 2010, 19:52 Asunto: |
|
|
| raneh escribió: | Hola,
A mi se me ocurren dos opciones:
1. Agregar los datos para que a cada registro único del shape le corresponda un registro único del excel. Por ejemplo sumando el dato y contando el número de veces que aparece en el excel, añadiendo la media, desviación típica o lo que consideres oportuno para no perder tanta información. Esto puedes hacerlo con la función Summarize de arcgis sobre el excel dando como resultado una tabla dbf que usarías para hacer el join al shape. Al final la tabla de atributos sería algo así:
Registro - Frecuencia - Suma - Media - Desvest ...
Madrid - 5 - 15 - 3 - ... - ...
2. Utilizar la opción Relate tables de Arcgis. En este caso es posible hacer una relación de uno a muchos, de modo que al seleccionar Madrid en el shape se seleccionen todos los "Madrid" del excel. Para visualizar las dos tablas a la vez en arcgis abre primero la tabla de atributos del shape y luego ve a options - relates.
Espero que te sirva.
Un saludo. |
Creo que en el punto 2 que me has dado está la clave, pero no sé cómo se hace. Podrías explicarme un poco más detalladamente cómo lo hago, paso a paso, si no es mucho molestia...no veo en la opción Relate esa opción "uno a muchos" que comentas. Hago el relate y cuadno voy a "relate table" me aparece el relate hecho pero en gris (inactivo9, sin marcar, por lo que no puedo darle.
Un saludo |
|
| Volver arriba |
|
 |
raneh
Registrado: 12 Jul 2006 Mensajes: 151 Ubicación: Santander
|
Publicado: Mar 05 Oct 2010, 14:33 Asunto: |
|
|
Hola,
Te digo los pasos de memoria porque ahora no puedo consultar arcgis, así que si falta algo dime y lo busco.
1. En arcmap, añade el shp y la hoja de excel con add data.
2. Pincha con el botón derecho sobre el shp y ve a "joins & realtes" - relates - new relate
Te tiene que aparecer un menú donde eliges los campos clave del shp y de la hoja excel y donde puedes indicar "one to one2 or "one to many". También le das un mobre a la relación. Puede que sea necesario que los dos campos clave sean del mismo tipo (texto mejor).
3. Ahora abre la tabla de atributos del shp y pincha en options (botón al final de la tabla). Ve a Relates - elige la relación que acabas de crear.
4. Se te tiene que abrir la tabla del excel y al seleccionar en la tabla del shp se seleccionan los registros asociados del excel.
Si te da problemas, prueba a guardar el excel como dbf (con guardar como desde excel 2003 o exportando la tabla desde arcgis (con excel 2007 no se puede guardar en dbf).
Espero que te sirva,
Un saludo |
|
| Volver arriba |
|
 |
roge1980
Registrado: 30 Sep 2010 Mensajes: 4
|
Publicado: Mie 06 Oct 2010, 08:07 Asunto: |
|
|
| raneh escribió: | Hola,
Te digo los pasos de memoria porque ahora no puedo consultar arcgis, así que si falta algo dime y lo busco.
1. En arcmap, añade el shp y la hoja de excel con add data.
2. Pincha con el botón derecho sobre el shp y ve a "joins & realtes" - relates - new relate
Te tiene que aparecer un menú donde eliges los campos clave del shp y de la hoja excel y donde puedes indicar "one to one2 or "one to many". También le das un mobre a la relación. Puede que sea necesario que los dos campos clave sean del mismo tipo (texto mejor).
3. Ahora abre la tabla de atributos del shp y pincha en options (botón al final de la tabla). Ve a Relates - elige la relación que acabas de crear.
4. Se te tiene que abrir la tabla del excel y al seleccionar en la tabla del shp se seleccionan los registros asociados del excel.
Si te da problemas, prueba a guardar el excel como dbf (con guardar como desde excel 2003 o exportando la tabla desde arcgis (con excel 2007 no se puede guardar en dbf).
Espero que te sirva,
Un saludo |
El fallo estaba en que la tabla estaba en excel. AL pasarla a DBF4 ya no me ha dado problemas...lo digo por si a alguien le pasa lo mismo. De cualquier forma, la opción "uno a muchos" que me comentas creo que no existe en relate. Si la he visto en algoparecido que viene en Arccatalog.
No es excatamente lo que quería, pero es que creo que lo que quería no se puede hacer y con esto me va a ser suficiente.
Gracias por tu ayuda, un abrazo |
|
| Volver arriba |
|
 |
raneh
Registrado: 12 Jul 2006 Mensajes: 151 Ubicación: Santander
|
Publicado: Mie 06 Oct 2010, 08:30 Asunto: |
|
|
Hola,
releyendo el tema me ha surgido una idea, ¿has probado con las tablas dinámicas de excel? a mi me han resuelto varios problemas de organización de datos en tablas. Sigo sin poder mirar lo del relate en arcgis, pero estoy casi segura de que se puede establecer una relación "one to many" (creo que no "many to many"). Igual en su día lo hice abriendo la herramienta desde arctoolbox.
Suerte. |
|
| Volver arriba |
|
 |
|
|
|
|
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro No puede adjuntar archivos en este foro No Puede descargar archivos de este foro
|
|