spherepts > Delaunay > Scipy를 Delaunay로 바꾸어도 같은 결과가 발생합니다 (적용 문제로 인한 것)
6984 단어 Delaunaysphereptsscipydifference
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
개요
Scipy > API > Delaunay 시도 > Qhull 옵션이 MATLAB과 다릅니다.
위에서 궁금했던 것이 MATLAB의 delaunay()와 Scipy의 Delaunay()의 결과의 차이.
Qhull의 옵션을 Qz 없이 실행하려고 해도, 취급하고 있는 문제가 cospherical인 포인트 세트이기 때문에, Qz 없이는 Scipy로 에러가 나온다.
또, Qz 이외의 이유에 의해서도 양자에 차이가 나오고 있다고 추측된다.
I have a hunch that...
Scipy의 결과를 MATLAB에 읽어 최종 결과에 차이가 있는지 확인하기로 했다.
처리 절차
순서 1에서는 save()를 사용한다. 순서 3에서 load()를 사용한다.
순서 2의 코드는 아래와 같다.
delaunay_save_171119.py
import numpy as np
from scipy.spatial import Delaunay
'''
v0.2 Nov. 19, 2017
- add convert_to_matlab_index()
v0.1 Nov. 19, 2017
- add delaunay_save()
'''
def convert_to_matlab_index(dln):
return (dln + 1)
def delaunay_save(xyz):
dln = Delaunay(xyz).simplices
dln = convert_to_matlab(dln)
np.savetxt('out_delaunay_171119.txt', dln, fmt='%.0f')
return dln
if __name__ == '__main__':
IN_FILE = 'delaunay_input_171118.txt'
xyz = np.genfromtxt(IN_FILE, delimiter=' ')
print("---xyz---")
print(xyz)
print("---dln---")
dln = delaunay_save(xyz)
print(dln)
실행
@ozwk 님에게 가르쳐 주셨습니다. isequal() 을 사용했습니다.
정보 감사입니다.
>> [x0,tri0] = getIcosNodes(4,0);
>> [x1,tri1] = getIcosNodes_load(4,0);
>> isequal(x0,x1)
ans =
logical
1
동일합니다.
양자를 그림으로 목시해도 위화감은 느끼지 않는다.
MATLAB과 Scipy의 Delaunay()의 차이에 대해서는, 내가 대상으로 하고 있는 문제에서는 최종 결과에 영향을 주지 않는 것 같다.
다른 문제에 따라 최종 결과에 영향을 줄 수 있습니다.
보충 자료
delaunay_input_171118.txt
0.0000000e+00 8.5065081e-01 5.2573111e-01
0.0000000e+00 -8.5065081e-01 5.2573111e-01
0.0000000e+00 8.5065081e-01 -5.2573111e-01
0.0000000e+00 -8.5065081e-01 -5.2573111e-01
5.2573111e-01 0.0000000e+00 8.5065081e-01
-5.2573111e-01 0.0000000e+00 8.5065081e-01
5.2573111e-01 0.0000000e+00 -8.5065081e-01
-5.2573111e-01 0.0000000e+00 -8.5065081e-01
8.5065081e-01 5.2573111e-01 0.0000000e+00
-8.5065081e-01 5.2573111e-01 0.0000000e+00
8.5065081e-01 -5.2573111e-01 0.0000000e+00
-8.5065081e-01 -5.2573111e-01 0.0000000e+00
out_delaunay_171119.txt
8 12 6 2
8 11 4 2
8 1 6 5
8 3 7 9
8 11 5 2
8 6 5 2
8 1 6 10
8 12 4 2
8 11 4 7
8 12 6 10
8 1 3 9
8 11 5 9
8 11 7 9
8 1 3 10
8 1 5 9
Reference
이 문제에 관하여(spherepts > Delaunay > Scipy를 Delaunay로 바꾸어도 같은 결과가 발생합니다 (적용 문제로 인한 것)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/49a5fe351bb9d5e31a4e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)