La única vecindad significativa para los polígonos que se me ocurre es la adyacencia; un enfoque podría ser iterar a través de la clase de característica de polígono en un script generando capas de características temporales para cada una con la herramienta de selección por ubicación y el método establecido para tocar el límite de su polígono. Para cada capa de características puede resumir los atributos y escribir de nuevo a la característica original. Básicamente:
- Cree una capa de características para un polígono,
- Seleccionar por ubicación para polígonos en contacto (adyacentes),
- Utilice las funciones de copia para que la capa de selección sea semipermanente (yo utilizaría aquí el espacio de trabajo in_memory),
- Utilice un cursor para leer y resumir los valores de las características adyacentes,
- Escribe esto en el polígono original
- Borrar los datos temporales y pasar al siguiente polígono
Este es un algoritmo bastante lento, por lo que es posible que desee utilizar trucos como el espacio de trabajo in_memory para acelerarlo; será bastante lento para grandes conjuntos de datos. Espero que esto te ayude.