2014-09-23 2 views
1

위대한 SciPy에서 제공하는 모든 보간법에서 손실되어 내 경우에 최적의 방법을 찾을 수 없습니다.큰 불규칙 매트릭스 또는 표면 데이터를 정규 격자로 리샘플링하는 보간

나는 포인트 (셀) 사이의 간격이 다른 수백만 개의 XYZ 포인트가 매트릭스에 있고 또한 회전합니다. 일반적으로 더 많은 분석을 위해 정규 그리드로 변환해야하는 일반 및 분산 된 대표 표면 사이의 지점 인 일반적으로 큰 데이터 집합입니다.

빠른 속도가 필요하지만 포인트를 기준으로 한 매끄러운 표면을 만들어야합니다. GIS 소프트웨어에서 가장 많은 스플라인 기능이 좋았지 만 도구가 너무 느리게 실행되어 이것이 내가 SciPy로 바뀌 었습니다. 또한 linear/Delaunay 삼각 측량은 허용되지만 더 평활 한 표면을 선호합니다.

나는 SciPy Rbf를 실제로 시도했지만 더 많은 수의 점으로 사망합니다. 어쩌면 파일을 작은 타일로 제동하고 다시 병합하는 것일까 요?

답변

2

지금까지 가장 좋은 해결책은 선형 보간법이있는 griddata를 사용하여 matplotlib.mlab을 통해 수행하는 것이 가장 좋습니다.

import matplotlib.mlab as ml 
zi = ml.griddata(x,y,z,xi,yi,interp='linear') 

업데이트 : 두 개의 추가 개선. 나는 matplotlib.mlab griddata가 scipy.interpolate griddata와 실제로 같지 않고 두 번째 것이 나의 경우에 더 좋다는 것을 깨달았다. 또한 커다란 그리드의 경우 (Qhull 라이브러리에 대한) 미리보기로 큰 문제를 일으키는 수백만에 해당하므로 모든 좌표를 원점에 가깝게 이동하고 계산 이동 후 다시 이동하는 것이 좋습니다.

관련 문제