Per ognuno dei 208.781 gruppi di blocchi censimento, vorrei recuperare gli ID FIPS di tutti i vicini del primo ordine. Ho scaricato e unito tutti i confini di TIGER in un singolo shapefile da 1 GB.
Ho provato uno script ArcPython che utilizza SelectLayerByLocation per BOUNDARY_TOUCHES al suo interno, ma impiega più di 1 secondo per ogni gruppo di blocchi che è più lento di quanto vorrei. Questo è anche dopo che ho limitato la ricerca SelectLayerByLocation per bloccare i gruppi nello stesso stato. Ho trovato questo script , ma utilizza anche SelectLayerByLocation internamente, quindi non è più veloce.
La soluzione non deve essere basata su Arc: sono aperto ad altri pacchetti, anche se mi sento più a mio agio nel programmare con Python.