代码之家  ›  专栏  ›  技术社区  ›  Delosari

天体剖面二维图像绘制中的不均匀坐标

  •  1
  • Delosari  · 技术社区  · 7 年前

    我正在使用astropy从SDSS数据库下载和绘制图像。另外,我使用Cutout2D函数在我感兴趣的对象周围切割一个10x10的弧形正方形。这是代码:

    from astropy.coordinates import SkyCoord
    from astroquery.sdss import SDSS
    from astropy.wcs import WCS
    from astropy import units as u
    from astropy.nddata import Cutout2D
    import matplotlib.pyplot as plt
    import numpy as np
    
    # Coordinates from Skycoord name search
    objCoord = SkyCoord(ra=263.7552*u.degree, dec=57.052374*u.degree)
    
    # Get SDSS images
    xObj = SDSS.query_region(objCoord, spectro=True)
    imgObj = SDSS.get_images(matches=xObj)
    image_i = imgObj[0][0]
    data_i = image_i.data
    
    # Get image coordinates
    wcs = WCS(image_i.header)
    
    # Cut the Field of view 10.0 x 10.0 arcsec
    FoV = np.array([10.0, 10.0])
    FoV_dimen = u.Quantity((FoV[0], FoV[1]), u.arcsec)
    cutout = Cutout2D(data_i, objCoord, FoV_dimen, wcs=wcs)
    wcs_cut = cutout.wcs
    
    # Plot the image
    fig = plt.figure()
    ax = fig.add_subplot(111, projection=wcs_cut)
    imgRegion = ax.imshow(cutout.data, origin='lower', vmin=-0.64, vmax=0.45)
    ax.scatter(objCoord.ra, objCoord.dec , s=150, linewidths=0.35,  edgecolors='black', transform=ax.get_transform('world'), label='SHOC579')
    
    # Format the image axis
    ra, dec = ax.coords[0], ax.coords[1]
    ra.set_axislabel('Right ascension')
    dec.set_axislabel('Declination')
    ra.set_ticks(spacing=1 * u.arcsec, color='white', exclude_overlapping=True)
    dec.set_ticks(spacing=1  * u.arcsec, color='white', exclude_overlapping=True)
    ra.grid(color='red', alpha=0.5, linestyle='solid')
    dec.grid(color='black', alpha=0.5, linestyle='solid')
    ax.legend()
    plt.show()
    

    它生成此图像:

    enter image description here

    但是,当您查看SDSS skyserver图像时,也会看到1“(1 arcsec)网格:

    enter image description here

    右边的上升网格看起来更接近(物体直径约为6弧秒)

    有什么我遗漏的吗?

    0 回复  |  直到 7 年前