numpy ์ํ์ ๋ฃจํด ์ ์ผ๋ถ๋ก ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ ๊ฒ์ ๋๋ค.
cart2pol -- ๋ฐ์นด๋ฅดํธ๋ฅผ ๊ทน์ขํ๋ก ๋ณํ
def cart2pol(x, y):
theta = np.arctan2(y, x)
rho = np.hypot(x, y)
return theta, rho
pol2cart -- ๊ทน์ขํ๋ฅผ ๋ฐ์นด๋ฅดํธ ์ขํ๋ก ๋ณํ
def pol2cart(theta, rho):
x = rho * np.cos(theta)
y = rho * np.sin(theta)
return x, y
cart2sph -- ๋ฐ์นด๋ฅดํธ ์ขํ๋ฅผ ๊ตฌ๋ฉด ์ขํ๋ก ๋ณํ
def cart2sph(x, y, z):
hxy = np.hypot(x, y)
r = np.hypot(hxy, z)
el = np.arctan2(z, hxy)
az = np.arctan2(y, x)
return az, el, r
sph2cart -- ๊ตฌํ์ ๋ฐ์นด๋ฅดํธ ์ขํ๋ก ๋ณํ
def sph2cart(az, el, r):
rcos_theta = r * np.cos(el)
x = rcos_theta * np.cos(az)
y = rcos_theta * np.sin(az)
z = r * np.sin(el)
return x, y, z
์ด๊ฒ์ด numpy์ ์์ด์ผ ํ๋ ๊ฒ์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ต์ ์ผ๋ก ๊ตฌํํ๊ธฐ์ ์ถฉ๋ถํ ๊ฐ๋จํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ๋ค์ ์ถ๊ฐํ๋ค๋ฉด ์ด๋ค ๋ณํ์ ์ถ๊ฐํ ๊ฒ์ธ๊ฐ์ ๋ํ ์ ์ ๊ทธ์ด์ผ ํฉ๋๊น? ๊ทธ๊ฒ๋ค์ ๋ฌดํํ ์์ด ์์ต๋๋ค.
๊ตฌ๋ฉด ๋ณํ์๋ง ์ ์ ๊ธ๋๋ผ๋ ์ฌ๊ธฐ์ ํ์๋์ง ์์ ๋ค์ํ ๊ท์น์ด ์์ต๋๋ค. ๋๋ ์ด๋ฌํ ํจ์๊ฐ ์ค์ ๋ก ๋ด๋ถ์ ์ผ๋ก(์: astropy) ์ฌ์ฉํ๊ณ ์ฝ๋๋ฅผ ํตํด ํน์ ๊ท์น์ ๋ฐ๋ฅด๋ ํจํค์ง์ ๋ ์ ํฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋น์ ์ด ๋ฌด์จ ๋ง์ ํ๋์ง ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ธฐํํ์ ์๊ณ ๋ฆฌ์ฆ, ์ปดํจํฐ ๊ทธ๋ํฝ ์ํํธ์จ์ด ๋ฑ์์ ์ขํ๊ณ๋ก ์์ ํ ๋ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. n์ฐจ์์ ๋ํ ์ผ๋ฐํ๋ ๋๋ฌผ๊ฒ ํ์ํฉ๋๋ค. MATLAB์๋ ์ด๋ฌํ ๊ธฐ๋ฅ ์ด ์กด์ฌ ํ๋ฉฐ ์คํ๋ ค ํธ๋ฆฌํฉ๋๋ค. ์ ๋ ์ด๋ฌํ ํจ์๋ฅผ rad2deg ๋ฐ deg2rad์ ๊ฐ์ ๊ฐ๋จํ ์ํ์ ๋ฃจํด์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ์ด ํจ์๋ค์ ์์๋ค์ํผ ์์ฃผ ์ฌ์ฉ๋๋ ํจ์์ด๋ฉฐ numpy์ ์กด์ฌํฉ๋๋ค .
์ผ๋ฐ์ ์ผ๋ก numpy์๋ ๊ธฐ๋ณธ ์ ํธ๋ฆฌํฐ๋ฅผ ์ํ ์ฅ์๊ฐ ์์ต๋๋ค.
๋ฌผ๊ฑด. ๋ถ๋ช
ํ ์ ์ ์ ํํ ์ด๋์ ๊ทธ์ด์ผ ํ๋์ง์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ ์ด๋ ์ด์ ๊ฐ์ ๊ฒ์ ํฌํจํด์ผ ํ๊ณ ํฌํจํด์ผ ํฉ๋๋ค. (๊ทน๋จ์ ์ผ๋ก
์๋ฅผ ๋ค์ด np.pi๋ฅผ ๋ด๋ณด๋ด๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ฌ์ฉ์๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ค์ ๊ตฌํํ๋ ๊ฒ์ ๊ฐ๋จํฉ๋๋ค.
๊ทธ๋ค์ ๊ทธ๊ฒ์ ํ์๋ก ํ์ง๋ง ๊ทธ๋ ๊ฒ ํ๋๋ก ๊ฐ์ํ๋ ๊ฒ์ ์ฑ๊ฐ์ ๋ญ๋น์ผ ๊ฒ์
๋๋ค.
๊ทธ๋ค์ ์๊ฐ)
๋ฐ๋ผ์ ์ ์ ๊ทธ๋ฆฌ๋ ค๋ฉด ์ค์ ๋ก ์ผ๋ถ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ๊ทธ๋ ค์ผ ํฉ๋๋ค.
์์น IMO.
์ด๋ฌํ ์ข ๋ฅ์ ๋จ์ ๋์ฐ๋ฏธ์ ๋ํด ๊ณ ๋ คํด์ผ ํ ๋ช ๊ฐ์ง ์ ์ฌ์ ๊ธฐ์ค:
๋๋ ์ด ๊ธฐ๋ฅ๋ค์ด ์ด๋ฌํ ๊ธฐ์ค์์ ๊ฝค ์ข์ ์ ์๋ฅผ ๋ฐ์๋ค๊ณ ์๊ฐํ๋ค. ๋ชจ๋ ์ฌ์ฉ
๊ทน์ขํ๋ ๋๋๋ก ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ ๊ฒ์ ๋ํด ์๋ฌด๋ ๋ถํํ์ง ์์ ๊ฒ์
๋๋ค.
๊ทธ๊ฒ๋ค์ด ์๋ชป๋์์ต๋๋ค. ํ์ํ ๋๋ง๋ค ๊ณต์์ ๋ค์ ํ์ธํ๋ ๊ฒ์
์ง์ฆ๋๋ ์๊ฐ๋ญ๋น ๋ฑ
๋ด๊ฐ ๋ถํ์คํ ํ ๊ฐ์ง๋ ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ๊ท์น์ ์ฌ์ฉํ๋์ง ์ฌ๋ถ์
๋๋ค.
๊ตฌ๋ฉด ์ขํ์ ๋ฐ์นด๋ฅดํธ ์ขํ ๊ฐ์ ๋งคํ - ์๋ ์ฌ๋ ์๋์?
๋๋ ์๋ก ๋ค๋ฅธ ๊ธฐํธ ๊ท์น์ ๊ฐ์ง ๋ค๋ฅธ ์ปค๋ฎค๋ํฐ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
๋ฌด์์ด๋ , ๋๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
2014๋
10์ 24์ผ 21์ 4๋ถ์ "Evgeny Prilepin" [email protected] ์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋๋ ๋น์ ์ด ๋ฌด์จ ๋ง์ ํ๋์ง ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋
๊ธฐํํ์ ์ขํ๊ณ๋ก ์์ ํ๋ ๋์ ๋งค์ฐ ์์ฃผ
์๊ณ ๋ฆฌ์ฆ, ์ปดํจํฐ ๊ทธ๋ํฝ ์ํํธ์จ์ด ๋ฑ n์ฐจ์์ ์ผ๋ฐํ
๋๋ฌผ๊ฒ ํ์ํฉ๋๋ค. MATLAB์๋ ์ด๋ฌํ ํจ์๊ฐ ์กด์ฌํฉ๋๋ค.
http://www.mathworks.com/help/matlab/cartesian-coordinate-system-conversion.html
๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ๋ค์ด ์คํ๋ ค ํธ๋ฆฌํ๋ค๊ณ ๋งํด์ผ ํฉ๋๋ค. ๋๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ณ ๋ ค
์๋ฅผ ๋ค์ด, rad2deg ํจ์์ ๊ฐ์ ๊ฐ๋จํ ์ํ ๋ฃจํด์ผ๋ก
๋ฐ๊ทธ2๋ผ๋. ์ด ๊ธฐ๋ฅ๋ค์ ์์๋ค์ํผ ์์ฃผ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ด๋ฉฐ
์กด์ฌํ๋ค
http://docs.scipy.org/doc/numpy/reference/generated/numpy.rad2deg.html#numpy.rad2deg
numpy์์.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/numpy/numpy/issues/5228#issuecomment -60441622.
๋ถํํ๋ ๊ตฌํ ์ขํ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ท์น์ด ๊ฝค ์์ต๋๋ค. http://en.wikipedia.org/wiki/Spherical_coordinate_system
์ฌ์ฉ์๊ฐ ์ํ๋ ํน์ ๊ตฌ๋ฉด ์ขํ ๋ณํ์ ์ ์ํ๋๋ก ํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
"์ ์ ํ" ํ์์ด ๋ฌด์์ธ์ง ์ง์ ํ๋ ISO ํ์ค๋ ์์ต๋๋ค... ๋ฐํ๋๋ ๋ด์ฉ์ด ๋ช ํํ๊ฒ ๋ฌธ์ํ๋์ด ์๋ ํ ์ฌ๋ฌ ๊ท์น์ด ์ค์ ๋ก ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํ ๊ท์น์์ ๋ค๋ฅธ ๊ท์น์ผ๋ก ์ ํํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค. ์ง๊ต ์ขํ๋ฅผ ๊ฐ๋ฅํ ๊ตฌ ์ขํ ์์คํ ์ค ํ๋๋ก ๋ณํํ๋ ๊ฒ๋ณด๋ค
๋ฐ๋ฉด์ numpy์์ ์ด ํผํ ์ ์์์ ๋ ๋ฆฝ ์คํํ ํจ์๋ก ๋ณด์ง ์์ต๋๋ค. ๊ทน์ขํ๋ ํนํ ๋ณต์์์ ๊ด๋ จ์ด ์์ ์ ์์ง๋ง ๊ตฌ๋ฉด ์ขํ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๊ธ์, ๋๋ ์คํ๋ ค ๋น์ ์๊ฒ ๋์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด์ ๊ตฌ๋ฉด ์ขํ์ ๊ธฐ๋ฅ์ ๋ํด ๋ ผ์ํ์ง ๋ง์๋ค. ๊ทธ๋ฌ๋ ๊ทน์ขํ์ ๊ธฐ๋ฅ์ ๋ง์ ๊ฒฝ์ฐ์ ์ ์ฉ๋ ์ ์๋ค.
np.linalg.norm
์๋ 5๊ฐ์ง ๋ค๋ฅธ ๊ท๋ฒ์ด ๊ตฌํ๋์ด ์์ต๋๊น? ์ ๋ช ๊ฐ์ง ์ขํ ๋ณํ์ ์ถ๊ฐํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ต์
์์ด ์ํํ๋๋ผ๋ ๋จ์ x,y -> r*cos(theta),sin(theta) ๋ฐ ๊ทธ ์ญํจ์์ ์ ์ฉ์ฑ์ ๋ํ ์ง์งํ ๋
ผ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ์ธ๊ณ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ง์ ์ ์ธ ์ขํ ๋ณํ์ด ์๋๋ผ๋ฉด ๋๋ ๊ฒ์
๋๋ค.
๋ฐ๋ฉด์ numpy์์ ์ด ํผํ ์ ์์์ ๋ ๋ฆฝ ์คํํ ํจ์๋ก ๋ณด์ง ์์ต๋๋ค. ๊ทน์ขํ๋ ํนํ ๋ณต์์์ ๊ด๋ จ์ด ์์ ์ ์์ง๋ง ๊ตฌ๋ฉด ์ขํ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์ด์ ๋์ํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๊ทน์ขํ ๋ณํ์ ์ถ๊ฐํ๋ ๋ฐ ์ค๋ฆฝ์์ ๊ธ์ ์ ์ผ๋ก ๋ณด์ ๋๋ค. ๋ฐ๋ผ์ ๋๊ตฐ๊ฐ๊ฐ ๊ตฌ์ฒด์ ์ธ ์ ์์ ํ๊ณ ๊ตฌํ ์์ ์ ํ๊ณ ์ถ๋ค๋ฉด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค๋ฅธ ์๊ฐ:
[0, 2pi)
๋๋ [-pi, pi)
). ๋๋ ์๋ง [-pi, pi)
์ ์ ํธํ ๊ฒ์
๋๋ค.numpy
๋์ numpy.lib
๋ค์์คํ์ด์ค์ ๋ฃ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.astropy์์ ์ขํ ๋ณํ์ ์๋ ํฅ์์ ๋ํด ๋
ผ์ํ๋ฉด์ ์ด๊ฒ์ ๋ฐ๊ฒฌํ์ผ๋ฉฐ(https://github.com/astropy/astropy/pull/5735) sincos
(#2626) ๋ฐ "exponent ํ์"(#5625).
ํ ๊ฐ์ง ์ ์์ cmath
[1]์(๋ฅผ) ๋ฐ๋ผ ์์ํ์ฌ np.rect
๋ฐ np.polar
๋ฅผ ์๊ฐํ๊ณ ์ด๋ค์์ ์์
ํ๋ ๊ฒ์
๋๋ค(ํ์ฌ ์ด ๋ ๊ฐ์ง์ np.phase
๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃน๋๋ค. cmath
).
[1] https://docs.python.org/3.5/library/cmath.html#conversions -to-and-from-polar-coordinates
์ด๋ฌํ ๋์ฐ๋ฏธ์ 3D ๋ฒ์ ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์๋
ํ์ธ์, ์ ๋ ์ฌ๊ธฐ์์ ์ฒ์์ด๊ณ ๋ฅ ๋ฌ๋์ ๋น ์ ธ ์๊ธฐ ๋๋ฌธ์์ด ์ง๋ฌธ์ด ์์ต๋๋ค.
๊ณ ์ ๋์ด ์๋ USB HD ์นด๋ฉ๋ผ๋ก ๋ฌผ์ฒด๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด tensorflow๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ฌผ์ฒด ์ค์ฌ์ ์ขํ๋ฅผ ์ป๊ณ ๋ก๋ด์ด ํด๋น ์ขํ๋ก ์ด๋ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด ๋ชฉ์ ์ ์ํด ์ด๋ค ๋ณํ์ ์ฌ์ฉํด์ผ ํฉ๋๊น?
๋ก๋ด์์ ๋งค๋ด์ผ๋น ๋ฐ์นด๋ฅดํธ์ธ XYZ ์ขํ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. tensorflow, cartesian, pixel ๋๋ ๋ฌด์์์ ์ด๋ค ์ขํ๋ฅผ ์ป์๋์ง ํ์คํ์ง ์์ต๋๊น?
๊ฐ์ฌ ํด์
@fdkssdks ์ด๋ฌํ ์ง๋ฌธ์ ํ๋ ๊ณณ์ด ์๋ชป๋์์ต๋๋ค. stackoverflow๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์.
๋๋ ์ฌ๊ธฐ: Tensorflow API ๋ฌธ์ .
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๋น์ ์ด ๋ฌด์จ ๋ง์ ํ๋์ง ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ธฐํํ์ ์๊ณ ๋ฆฌ์ฆ, ์ปดํจํฐ ๊ทธ๋ํฝ ์ํํธ์จ์ด ๋ฑ์์ ์ขํ๊ณ๋ก ์์ ํ ๋ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. n์ฐจ์์ ๋ํ ์ผ๋ฐํ๋ ๋๋ฌผ๊ฒ ํ์ํฉ๋๋ค. MATLAB์๋ ์ด๋ฌํ ๊ธฐ๋ฅ ์ด ์กด์ฌ ํ๋ฉฐ ์คํ๋ ค ํธ๋ฆฌํฉ๋๋ค. ์ ๋ ์ด๋ฌํ ํจ์๋ฅผ rad2deg ๋ฐ deg2rad์ ๊ฐ์ ๊ฐ๋จํ ์ํ์ ๋ฃจํด์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ์ด ํจ์๋ค์ ์์๋ค์ํผ ์์ฃผ ์ฌ์ฉ๋๋ ํจ์์ด๋ฉฐ numpy์ ์กด์ฌํฉ๋๋ค .