파일 지오 데이터베이스 (~ 4000000 레코드)에 꽤 큰 포인트 피쳐 클래스가 있습니다. 이것은 100m 해상도의 일반적인 점 그리드입니다.
이 계층에서 일종의 일반화를 수행해야합니다. 이를 위해 각 포인트가 4 개의 "오래된"포인트의 중간에있는 새 그리드를 만듭니다.
* * * *
o o o
* * * *
o o o
* * * *
[*] = 원래 그리드의 점-[o] = 새 그리드의 점
각 새 점의 속성 값은 이전 그리드에있는 4 개의 이웃에 대한 가중치를 기반으로 계산됩니다. 따라서 새 그리드의 모든 점을 반복하고 각각에 대해 이웃을 찾기 위해 이전 표의 모든 점을 반복합니다 (속성 테이블에서 X 및 Y 값을 비교하여). 4 명의 이웃이 발견되면 루프에서 빠져 나옵니다.
여기에는 방법 론적 복잡성이 없지만 내 문제는 첫 번째 테스트를 기반 으로이 스크립트가 몇 주 동안 지속된다는 것입니다 ...
보다 효율적으로 만들 가능성이 있습니까? 내 머리 위에 몇 가지 아이디어가 있습니다.
- X와 Y => 필드를 인덱싱하십시오. 그렇지만 중요한 성능 변화는 눈치 채지 못했습니다.
- 속성 기반 쿼리가 아닌 인접 쿼리를 찾으려면 공간 쿼리를 수행하십시오. 실제로 도움이 되겠습니까? ArcGIS에서 어떤 공간 기능을 수행해야합니까? 예를 들어, 각각의 새로운 지점을 버퍼링하는 것이 더 효율적일 것이라고 의심합니다
- 기능 클래스를 NumPy 배열로 변환하십시오. 도움이 되겠습니까? 나는 지금까지 NumPy와 많은 일을하지 않았으며 누군가가 실제로 처리 시간을 줄이는 데 도움이 될 것이라고 말하지 않는 한 그것에 뛰어 들기를 원하지 않습니다.
- 다른 거있어?