El núcleo central de mi webEl núcleo central de mi web
Foro de Usuarios de Sistemas de Información Geográfica
GIS - SIG y Teledetección

Encuentra respuesta a tus preguntas sobre ArcGIS, ArcView, ArcInfo, MapInfo, AutoCAD Map, Geomedia, Erdas, Idrisi, Envi, etc. Queremos ser un punto de encuentro para los profesionales de las Ciencias Geográficas: Geografía, Ingeniería Geográfica, Percepción Remota, etc.
Home | Perfil | Registro | Temas activos | Miembros | Buscar | Ayuda
Nombre de usuario:
Contraseña de acceso:
 
Guardar contraseña
¿Olvidaste tu contraseña?

  
   Accede a nuestra zona de chat para conversar en directo Accede a la zona para compartir archivos   
Ayuda a mantener la web:
 
 Todos los Foros
 Resuelve tus dudas sobre GIS
 Acceso a Conversaciones
 Cálculo del centroide de un polígono irregular
 Nuevo Tema  Responder al tema
 Imprimir
Autor Tema Anterior Tema Tema Siguiente  

carlos333

Bolivia
 

Enviado - 15/08/2005 :  20:19:20  Mostrar perfil  Responder  Responder con Cita
Por favor alguien que pudiera indicar como obtener un centroide(x,y) de un poligono irregular conociendo como dato sus verices y la distancia de sus lados, perimetro....alguna formula que pueda calcular este punto y para dificultarlo mas la eleccion del vertice o lado inicial que faciliten la formula debe ser arbitrario pero el punto centroide(x,y) siempre debe dar lo mismo.....GRACIAS MIL

Carlos.







    

elo

 

Enviado - 16/08/2005 :  03:52:08  Mostrar perfil  Responder  Responder con Cita
Hola Carlos
En su día yo también pregunte en el foro acerca del cálculo de centroides de polígonos y me dieron el siguiente enlace
http://recursos.gabrielortiz.com/art.asp?Info=019
a mi me sirvió bastante. Te dice la formula exacta qu tienes que introducir para calcularlos.
Espero haberte ayudado







Ir al inicio de la página
    
    

Gabriel



España
 

Enviado - 16/08/2005 :  05:38:02  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
Aparte de cómo hacerlo en ArcGIS como te dice Elo, si lo que te interesa es el algoritmo, existen varias formas de calcular los centroides.
Una de ellas es sacar el llamado "centro de gravedad" que no es más que la media de todas las coordenadas X de los vértices que componen el polígono; lo mismo para las Y: la media de todas las Y de sus vértices. Lo que pasa es que con este procedimiento tienes unas probabilidades enormes de que el punto en cuestión te quede fuera del polígono. Por eso casi nunca se suele hacer así: ¿de qué te sirve un punto como representativo de un polígono que ni siquiera está garantizado que esté en su interior?

Existen otras formas más sofisticadas de sacar el centroide y que garantizan su caída dentro del área del polígono. De entre las distintas formas que existen está la que señala el Core Curriculum in GIS, una fuente muy buena para aprender geometría aplicada al SIG, algoritmos, etc.
Para su implementación tienes que tener los vértices ordenados en el sentido de las agujas del reloj, y asegurarte de que no hay coordenadas con valores negativos en su interior (si no es así tendrás que transformarlas previamente a realizar la operación). Luego procedes:

X = S ((y(i) - y(i+1)) (x(i)2 + x(i)x(i+1) + x(i+1)2)/(6A))
Y = S ((x(i+1) - x(i)) (y(i)2 + y(i)y(i+1) + y(i+1)2)/(6A))

S significa sumatorio y A, el área del polígono en cuestión

También están las fórmulas que utiliza ArcGIS para el cálculo del centroide, que arrojan resultados ligeramente distintos del método anterior. Como se ve, su formulación es muy similar:

Para sacar el área, procedemos de la forma:

En todas las composiciones enunciadas, hay que considerar el valor absoluto del resultado; es decir, si no sale un resultado negativo, considerar su valor absoluto sin el signo.

Si te fijas, muchas aplicaciones SIG cuando tienes la opción de crear centroides te dan dos opciones: dentro y fuera (inside, outside), que vienen a significar si el usuario da o no aceptación para que el centroide pueda caer fuera del polígono. La razón de ser es el uso de la primera forma de cálculo aquí expresada.

Más información en http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u33.html#SEC33.4







Ir al inicio de la página

carlos333

Bolivia
 

Enviado - 16/08/2005 :  15:41:41  Mostrar perfil  Responder  Responder con Cita

Muchas Gracias por su ayuda,, empezare a analizarla, de todos modos anoche encontre esta pagina http://www.saltspring.com/brochmann/math/centroid/centroid.html que tb trata algo del tema..

Carlos.







Ir al inicio de la página

Gabriel



España
 

Enviado - 16/08/2005 :  17:25:43  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
El problema que podría tener ese algoritmo que se explica en la página web que mencionas ocurre cuando la forma del polígono es compleja e interpone segmentos entre el punto base y otros puntos sobre los que construir polígonos... (por ejemplo, un polígono en forma de U).

Otro problema adicional es qué ocurre cuando hay polígonos que tienen huecos en su interior, osea polígonos-isla.







Ir al inicio de la página

carlos333

Bolivia
 

Enviado - 16/08/2005 :  20:33:00  Mostrar perfil  Responder  Responder con Cita
Es cierto Gabriel, tb me di cuenta que es un algoritmo un tanto fragil,, hare pruebas con el que recomendaste..Gracias de nuevo.






Ir al inicio de la página

Archie

 

Enviado - 17/08/2005 :  04:38:15  Mostrar perfil  Responder  Responder con Cita
Tambien puedes ejecutar una consulta SQL con la funcion Centroid, este método sirve para MAPINFO, no se si servira para ArcGIS, previamente tienes que poner la tabla de poligonos en el sistema de corrdenadas que utilices (long-lat, UTM, etc)

- Por ejemplo para calcular el centroide de los municipios de una provincia:

Select Municipio, CentroidX(obj), CentroidY(obj) from Tutabla into Selection

- para mostrar la tabla en pantalla:

Browse * From Selection

- Para establecer el sistema de coordenadas de los centroides en el mismo sistema que la tabla de municipios:

set coordsys table Tutabla

donde Tutabla es la tabla de los objetos de los que quieres calcular los centroides

Espero que te sirva de ayuda
Archie







Ir al inicio de la página

echuc



 

Enviado - 17/08/2005 :  10:02:33  Mostrar perfil  Responder  Responder con Cita
Y en ARCINFO como puedo obtener la coord x y la coord y del centroide de un poligono y almacenarlo en campos de la cobertura? ..






Ir al inicio de la página

Gabriel



España
 

Enviado - 17/08/2005 :  10:53:20  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
En ArcInfo tienes el comando CENTROIDLABELS:
CENTROIDLABELS <cover> {OUTSIDE | INSIDE}
Luego tendrías que hacer un JOINITEM para traerte los datos del atributo X e Y del centroide a la cover.







Ir al inicio de la página

Pepe Potamo



 

Enviado - 18/08/2005 :  04:36:20  Mostrar perfil  Visitar la web de Pepe Potamo  Responder  Responder con Cita
No conocía la referencia del Core Curriculum in GIS. Muy interesante, Gabriel y una referencia muy recomendable.






Ir al inicio de la página

carlos333

Bolivia
 

Enviado - 29/08/2005 :  10:36:14  Mostrar perfil  Responder  Responder con Cita
Gabriel acerca de la formula del centroide del poligono que mencionas (core curriculum) y cuyos puntos x,y resultaban negativos; lo que hacia mal era realizar el circuito de vertices en contra de las manecillas del reloj,,, es que al analizar tu articulo de "poligonos sin topologia" el circuito funciona asi "unclockwise" y la formula del core curriculum es "clockwise"; pero su formula para calcular areas del mismo core (no dice nada de clocwise o no) ; entonces asumo que es clockwise y ese dato del area si que sale negativo, estas de acuerdo???

Carlos.







Ir al inicio de la página

Gabriel



España
 

Enviado - 29/08/2005 :  11:21:03  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
Sí, en efecto la fórmula del "Core" es con los vértices del polígono ordenados en el sentido de las agujas del reloj.
Si alguien lo necesita podemos postear un ejemplo del uso de las fórmulas antes descritas.







Ir al inicio de la página

Joaquin Delgado

España
 

Enviado - 16/01/2006 :  16:48:18  Mostrar perfil  Responder  Responder con Cita
He estado trabajando con las fórmulas del centroide, pero no consigo encontrar la forma en que este quede dentro del polígono.







Editado por - Joaquin Delgado a las 18/04/2006 09:58:21 Ir al inicio de la página

AKA77

España
 

Enviado - 19/01/2006 :  13:39:56  Mostrar perfil  Click para ver la dirección MSN de AKA77  Responder  Responder con Cita
Hay alguna forma con arcgis de calcular automaticamente los centroides y que esten dentro de los respectivos polígonos?

Gracias

Andrés







Ir al inicio de la página

ENGENDRO

Colombia
 

Enviado - 28/01/2006 :  21:34:34  Mostrar perfil  Responder  Responder con Cita
BUEN DIA...EXISTE UNA EXTENSION LLAMA DA XTOOLS DONDE EXITE UNA HERREMIENTA QUE PERMITE HALLA CENTROIDES Y AREAS CON UN SIMPLE BOTON. NO SE EXISTE EN LA RED.

GIOVANNY








Editado por - ENGENDRO a las 28/01/2006 21:35:14 Ir al inicio de la página

Niba

Chile
 

Enviado - 28/01/2006 :  22:32:35  Mostrar perfil  Responder  Responder con Cita
No hace falta ninguna extensión para calcular centroides con el Arcgis. Gabriel lo ha descrito muy bien en este truco http://recursos.gabrielortiz.com/art.asp?Info=019






Ir al inicio de la página

GisyCArto

 

Enviado - 06/05/2006 :  02:00:27  Mostrar perfil  Responder  Responder con Cita
Gabriel he probado el algoritmo q pones pero el punto da fuera del polínono
Las coordinas empleadas han sido:

pUnto(0).x = 1
pUnto(0) = 1

pUnto(1) .x = 1.9
pUnto(1).y = 1.1

pUnto(2) .x = 2.3
pUnto(2) .y = 2.1

pUnto(3) .x = 2
pUnto(3) .y = 1


pUnto(4) .x = 1
pUnto(4) .y = 1







Ir al inicio de la página

Caracol

México
 

Enviado - 24/09/2007 :  22:11:57  Mostrar perfil  Responder  Responder con Cita
Disculpen, estoy tratando de calcular centroides de polígonos pero en C y no se como indicarle al programa que debe recorrer los vértices en la dirección de las manecillas del reloj. ¿Podrían ayudarme o sugerirme en donde buscar? Saludos y gracias.






Ir al inicio de la página

frisco



 

Enviado - 27/04/2010 :  22:12:51  Mostrar perfil  Responder  Responder con Cita
Estoy tratando de calcular los centroides de un polígono irregular y al igual que el código mencionado en este link http://recursos.gabrielortiz.com/index.asp?Info=019 el tutorial de ArcGis tiene la misma instrucción, sin embargo cuando le doy ok. me aparece una ventana de advertencia que dice:

Error running VBA code: Se esperaba un final de instrucción

ya revisé puntos y comas y todo concuerda

Dim dblX As Double
Dim pAreat As IArea
Set pArea = [Shape]
dblX = pArea.X


Gracias de antemano por cualquier respuesta








Ir al inicio de la página

elvispz



Nicaragua
 

Enviado - 29/04/2010 :  02:52:56  Mostrar perfil  Responder  Responder con Cita
Utiliza Xtool, es mas rapido






Ir al inicio de la página

Gabriel



España
 

Enviado - 29/04/2010 :  05:31:36  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
Frisco, en tu código hay varios errores. Si quieres calcular los centroides, tienes que utilizar el código que se cita en el artículo que has referido y que funciona correctamente. Tendrías que meter (en vista avanzada):

Dim CoordenadaX As Double
Dim pArea As IArea
Set pArea = [Shape]
CoordenadaX = pArea.Centroid.X


Tú estabas llamando a la variable pArea, pero la habías dimensionado como pAreaT. Además, cuando estabas obteniendo el valor de dblX, estabas instanciando directamente el valor X (pArea.X) sin invocar al centroide (pArea.Centroid.X). Acabo de comprobar el funcionamiento del código y funciona perfectamente. Este valor sería el de la X; tendrías que hacer lo mismo con la Y.







Ir al inicio de la página
  Tema Anterior Tema Tema Siguiente  
 Nuevo Tema  Responder al tema
 Imprimir
Ir a:
Ortografía: Revisa que tus palabras tengan la ortografía correcta. Escribe con minúsculas y tilda adecuadamente las palabras.
Cuidar nuestro idioma común, el Castellano, es importante.

Disclaimer: no me hago responsable de los comentarios. Los responsables son en cada caso los autores de los mismos.
Las normas de uso del foro y del chat no permiten conversaciones sobre piratería y uso ilegal de material sometido a copyright.
Todos los comentarios sobre pirateo serán borrados al cabo de unos minutos.


Principal | Sección de Recursos | Chat en vivo | Tu Opinión | Sobre este sitio | Aviso Legal | Requerimientos | Contactar
© GabrielOrtiz.com
 Image Forum 2001 Snitz Forums 2000