Dla każdej z 208,781 grup bloków spisu chciałbym odzyskać identyfikatory FIPS wszystkich sąsiadów pierwszego rzędu. Mam wszystkie granice TIGER pobrane i scalone w jeden plik kształtu 1GB.
Próbowałem skryptu ArcPython, który w swoim rdzeniu używa SelectLayerByLocation dla BOUNDARY_TOUCHES, ale zajmuje to ponad 1 sekundę dla każdej grupy bloków, co jest wolniejsze niż chciałbym. Dzieje się tak nawet po tym, jak ograniczę wyszukiwanie SelectLayerByLocation do blokowania grup w tym samym stanie. Znalazłem ten skrypt , ale korzysta on również wewnętrznie z SelectLayerByLocation, więc nie jest już szybszy.
Rozwiązanie nie musi być oparte na Arc - jestem otwarty na inne pakiety, chociaż najwygodniej koduję w Pythonie.