LoginSignup
0
1

More than 5 years have passed since last update.

pySpherepts > getHammersleyNodes()移植完了 > IcosNodesと比べて中心からの距離が小さい?

Last updated at Posted at 2017-12-03
動作環境
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)

pySpherepts > on GitHub > 球面上の点: Icosahedral Nodesを取るNumpy+Scipy実装
の続き。

getHammersleyNodes()の移植が完了した。

実際に使ったところ、気になる点が見つかった。

気になる部分

Jupyter Notebook on GitHub

samplePlotSphNodes_gHN_171203.ipynb
'''
HammersleyNodes 
'''

import numpy as np
from pylab import rcParams
import getHammersleyNodes_171203 as gHN
import plotSphNodes_171127 as pSN

rcParams['figure.figsize'] = 10,10
rcParams['figure.dpi'] = 75

xs = gHN.getHammersleyNodes(100)

elev, azm = 30.0, -30.0

#NG: hidden by the central sphere
pSN.plotSphNodes(xs, elevation=elev, azimuth=azm)

# *1.05: required not to be hidden by the central sphere
pSN.plotSphNodes(xs * 1.05, elevation=elev, azimuth=azm)

print(xs)

一つ目のplotSphNodes()による図では球上の点が見えない。
(中心の大球で隠れてしまっている)

qiita.png

二つ目の図(点の中心からの距離を増やした)の場合は以下となる。
qiita.png

MATLABコードの結果は以下で、二つ目の図と分布はほぼ同じになる。
(距離を増やした分のずれはある)。
(距離を増やさない場合での両者の値は一致している)。
(azimuthの違いのため、view(60,30)としている)。
qiita.png

getIcosNodes()との違い

  • getIcosNodes() : 点が隠れない
  • getHammersleyNodes() : 点が隠れる

両者の点分布生成結果に関して、中心からの距離が異なるように思われる。
この場合、二つの結果を使った計算(例:球殻積分)結果を比較すると誤差を生むかもしれない。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1