Resumo
Os centroides de feições podem ser calculados de várias maneiras. Há vários métodos possíveis dependendo de como o centroide precisa ser calculado: calcular as coordenadas XY centrais das feições, usar a ferramenta Feição para Ponto ou utilizar Python para recuperar as coordenadas do centroide. As instruções a seguir abaixo descrevem esses métodos.
Procedimento
- Usar a ferramenta Feição para Ponto (Gerenciamento de Dados)
Este método usa o centro de gravidade do polígono; o centro geométrico de uma feição. Para feições tridimensionais, de linha ou de polígono, ele é o centro de massa (ou centro de gravidade), que pode estar dentro da feição ou fora dela. Para classes de feição multiponto, polilinha ou polígono com várias partes, o centroide é calculado usando o centro médio ponderado de todas as partes da feição.
Anotação:
A ferramenta Feição para Ponto está disponível apenas no nível de licença Advanced Desktop ou ArcInfo.
A ferramenta Feição para Ponto é usada para criar uma nova classe de feição contendo pontos gerados a partir dos locais representativos das feições de entrada. Os algoritmos para o cálculo específico são proprietários, mas dois conceitos básicos são usados.
A ferramenta calcula o centroide da entrada multiponto, de linha ou de polígono usando um algoritmo baseado no centro de gravidade. O cálculo do centro de gravidade usa o modelo do centro geométrico para gerar a nova classe de feição de ponto. Para feições tridimensionais, de linha ou de polígono, é o centro de massa (ou centro de gravidade), que pode estar dentro da feição ou fora dela. Para multiponto, polilinha ou polígono com várias partes, é calculado usando o centro médio ponderado de todas as partes da feição.
Nos parâmetros da ferramenta, há uma opção para calcular o centroide que fica dentro dos limites da feição; essa opção pode ser ativada marcando a caixa para "dentro". A ativação desse parâmetro força a ferramenta a calcular um centroide que esteja dentro dos limites da feição. Se ele estiver fora dos limites, o ponto será ajustado para o centro de gravidade dentro dos limites.
- Usar Python para calcular e construir pontos centroides
No exemplo a seguir, o Módulo de Acesso a Dados é usado para recuperar as coordenadas do centroide usando o token SHAPE@XY. Essas coordenadas são usadas para construir a geometria do ponto, que é gravada em uma nova classe de feição.
Anotação:
Os cursores de Acesso a Dados estão disponíveis apenas no ArcGIS 10.1 e versões posteriores. Consulte Ler Geometrias e Escrever Geometrias para obter fluxos de trabalho alternativos para a versão 10.x.
Código:
import arcpy
input_fc = "C:\\temp\\geodatabase.gdb\\states"
output_fc = "C:\\temp\\geodatabase.gdb\\state_centroids"
cursor = arcpy.da.SearchCursor(input_fc, "SHAPE@XY")
centroid_coords = []
for feature in cursor:
centroid_coords.append(feature[0])
point = arcpy.Point()
pointGeometryList = []
for pt in centroid_coords:
point.X = pt[0]
point.Y = pt[1]
pointGeometry = arcpy.PointGeometry(point)
pointGeometryList.append(pointGeometry)
arcpy.CopyFeatures_management(pointGeometryList, output_fc)