首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Healpy显示网格和中点

Healpy显示网格和中点
EN

Stack Overflow用户
提问于 2017-03-21 23:08:25
回答 1查看 115关注 0票数 1

使用python healpy,我想要显示(和导出)用于天空细分(在不同级别)的healpix网格。我该怎么做呢?理想情况下,我需要中点,网格的顶点和连接它们的线。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 19:09:13

我已经做过了,还有更多的方法:

1)你可以使用IDL库,它有一个函数pix2vec_nest (和pix2vec_ring),可以有选择地返回向量(n,3,4)中像素的4个顶点。

2)可以使用有HealpixBase.boundaries方法的java版本

3)可以使用具有相同行为的T_Healpix_Base::boundaries的HEALPix_cxx库。

有了边界,您可以显示栅格。请注意,最后一种方法编码得非常好,并且很容易理解和在另一个程序中使用!它只需要像素索引和输出向量:

代码语言:javascript
复制
 template<typename I> void T_Healpix_Base<I>::boundaries(I pix, tsize step,
  vector<vec3> &out) const
  {
  out.resize(4*step);
  int ix, iy, face;
  pix2xyf(pix, ix, iy, face);
  double dc = 0.5 / nside_;
  double xc = (ix + 0.5)/nside_, yc = (iy + 0.5)/nside_;
  double d = 1.0/(step*nside_);
  for (tsize i=0; i<step; ++i)
    {
    double z, phi, sth;
    bool have_sth;
    xyf2loc(xc+dc-i*d, yc+dc, face, z, phi, sth, have_sth);
    out[i] = locToVec3(z, phi, sth, have_sth);
    xyf2loc(xc-dc, yc+dc-i*d, face, z, phi, sth, have_sth);
    out[i+step] = locToVec3(z, phi, sth, have_sth);
    xyf2loc(xc-dc+i*d, yc-dc, face, z, phi, sth, have_sth);
    out[i+2*step] = locToVec3(z, phi, sth, have_sth);
    xyf2loc(xc+dc, yc-dc+i*d, face, z, phi, sth, have_sth);
    out[i+3*step] = locToVec3(z, phi, sth, have_sth);
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42930933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档