나는 128 개의 점으로 구성된 거친 skymap을 가지고 있는데, 그 중 smooth healpix map (첨부 된 그림 참조)을 만들고 싶습니다. 텍스트에서 참조 그림 : 내 데이터를로드보간 후의 Healpy 좌표 오차 : 이등분선의 등장
후 최종지도에 해당하는 픽셀 길이 (와 예를 들어, nside = 32)의 새로운 경도와 위도 배열을합니다.
내 입력 데이터는 :
lats = pi/2 + ths # theta from 0, pi, size 8
lons = phs # phi from 0, 2pi, size 16
data = sky_data[0] # shape (8,16)
뉴 경도/위도 배열 크기 nside의 픽셀 수에 따라 :
nside = 32
pixIdx = hp.nside2npix(nside) # number of pixels I can get from this nside
pixIdx = np.arange(pixIdx) # pixel index numbers
그때 보간하여 그 픽셀을위한 새로운 데이터 값을 찾아 그런 다음 각도에서 픽셀로 다시 변환하십시오.
# new lon/lat
new_lats = hp.pix2ang(nside, pixIdx)[0] # thetas I need to populate with interpolated theta values
new_lons = hp.pix2ang(nside, pixIdx)[1] # phis, same
# interpolation
lut = RectSphereBivariateSpline(lats, lons, data, pole_values=4e-14)
data_interp = lut.ev(new_lats.ravel(), new_lons.ravel()) #interpolate the data
pix = hp.ang2pix(nside, new_lats, new_lons) # convert latitudes and longitudes back to pixels
그럼, 보간 된 값을 사용하여지도를 생성 healpy :
는healpix_map = np.zeros(hp.nside2npix(nside), dtype=np.double) # create empty map
healpix_map[pix] = data_interp # assign pixels to new interpolated values
testmap = hp.mollview(healpix_map)
맵의 결과는 첨부 된 도면의 상부 RHS이다.
(제트의 사용 용서 - viridis 그래서 그 컬러 맵을 사용하여, 제로는 "흰색"을하지 않는 파란색 배경을 추가합니다.)
지도 잘 보이지 않는 : 당신이에서 볼 수 그림에서 거친지도는 낮은 RHS에 "핫스팟"이 있어야하지만 여기서는 왼쪽 상단에 나타납니다.
ax = plt.subplot(111, projection='astro mollweide')
ax.grid()
colors = data_interp
sky=plt.scatter(new_lons, new_lats-pi/2, c = colors, edgecolors='none', cmap ='jet')
plt.colorbar(sky, orientation = 'horizontal')
) 전성 검사로서
는 난이지도처럼 보이게 마커의 에지를하게 제거 mollview 투영,도 2의 보간 점 산점도 있도록하기 matplotlib 사용
첨부 된 그림의 더 낮은 RHS 인이지도가 정확히 내가 원하는 것을 만들어 낸다는 것을 알 수 있습니다! 그래서 좌표는 괜찮습니다. 그리고 저는 완전히 혼란 스럽습니다.
이전에이 문제가 발생 했습니까? 내가 무엇을 할 수 있을지? 이 맵과 미래 맵에서 healpy 함수를 사용하고 싶습니다. 따라서 matplotlib를 사용하는 것은 옵션이 아닙니다.
감사합니다.
문제를 재현하는 샘플 데이터 세트 ('sky_data')를 제공 할 수 있다면 직접 시도해 볼 수 있습니까? –
안녕하세요 @ david-z, 저에게 다시 연락해 주셔서 감사합니다. 간단히하기 위해 필자는 ipython 노트북을 데이터와 함께 [public git repository] (https://github.com/ChiaraMingarelli/healpix_maps)에 추가했습니다. 놀이! –