В IDL-версии HEALPix (pix2vec_nest) есть замечательная функция, которая может возвращать вектор (n, 3,4) с координатами вершин пикселя (-ов).
Та же функция в версии C не делает то же самое, и, похоже, вы можете знать только координаты центра пикселя. Есть способ рассчитать координаты вершин?
Геометрия и математика этой вещи немного сложны для меня, чтобы написать генератор пикселизации HEALPix. Я попытался понять код IDL, чтобы добавить функциональность в библиотеку C, но она выглядит очень запутанно с неразборчивыми именами.
function sub_compute_vertices, z, z_nv, z_sv, phi, phi_nv, phi_sv, hdelta_phi
np = n_elements(z)
vertex = dblarr(np, 3, 4)
sth = SQRT((1.0d0-z)*(1.0d0+z))
sth_nv = sqrt((1.0d0-z_nv)*(1.0d0+z_nv))
vertex[*,*,0] = [[sth_nv*cos(phi_nv)],[sth_nv*sin(phi_nv)],[z_nv]] ; north vertex
phi_wv = phi - hdelta_phi
vertex[*,*,1] = [[sth*cos(phi_wv)],[sth*sin(phi_wv)],[z]] ; west vertex
sth_sv = sqrt((1.0d0-z_sv)*(1.0d0+z_sv))
vertex[*,*,2] = [[sth_sv*cos(phi_sv)],[sth_sv*sin(phi_sv)],[z_sv]] ; south vertex
phi_ev = phi + hdelta_phi
vertex[*,*,3] = [[sth*cos(phi_ev)],[sth*sin(phi_ev)],[z]] ; east vertex
return, vertex
этот код выглядит простым способом, но в файле "Healpix_3.50 \ src \ idl \ toolkitpix2vec_nest.pro" есть другой код, который вызывает эту функцию со всеми этими параметрами ... если у вас есть и идея ... спасибо заранее.