“Astropy”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的26个中间版本)
第1行: 第1行:
*很好的教程网站 [https://learn.astropy.org/]
== astropy.io.fits ==
[http://docs.astropy.org/en/stable/io/fits/]
:比如星际红化的 [https://learn.astropy.org/tutorials/color-excess.html]


==io==
>>> hdulist = fits.open('input.fits')
* [[astropy.io.fits]]
>>> hdulist.info()
* ascii文件:Table格式,支持ecsv文件直接读入table


==astrometry==
*each element of an HDUList is an HDU object with .header and .data attributes, which can be used to access the header and data portions of the HDU.
*match 两个星表
>>> hdulist[0].header['targname']
>>> from astropy.coordinates import SkyCoord
>>> from astropy import units as u
>>> c = SkyCoord(ra=ra1*u.degree, dec=dec1*u.degree)
>>> catalog = SkyCoord(ra=ra2*u.degree, dec=dec2*u.degree)
>>> idx, d2d, d3d = c.match_to_catalog_sky(catalog) #d3d是假设距离为1的地方的3维距离,因此是以弧度为单位
>>> sel=np.where(d2d.degree < 0.00002)
>>> Nsel=len(sel[0])
>>> print(ra1[sel][0],ra2[idx[sel][0])
*算出任意两点之间距离向量的PA角,还有中点坐标[https://docs.astropy.org/en/stable/coordinates/matchsep.html]


==宇宙学==
*To see the entire header as it appears in the FITS file (with the END card and padding stripped), simply enter the header object by itself, or print(repr(header)):
http://docs.astropy.org/en/stable/cosmology/
*It’s also possible to view a slice of the header:
*从红移到年龄
>>> header[:2]
>>>from astropy.cosmology import FlatLambdaCDM
*Another way to either update an existing card or append a new one is to use the Header.set() method:
>>>cosmo = FlatLambdaCDM(H0=70, Om0=0.3)
>>> prihdr.set('observer', 'Edwin Hubble')
>>> lum_dis=cosmo.luminosity_distance(redshift) #计算光度距离

*从年龄到红移
>>> import astropy.units as u
>>> from astropy.cosmology import z_at_value
>>> z_at_value(cosmos.age, 2 * u.Gyr)

==单位转换==
dL=lum_dis.to(u.cm)

==bug==
*在anaconda3.8.3升级 astropy 和liberfc之后,astropy.fits出错,解决方法是降级
*安装pytorch之后,自动降级到4.3,但是还是又小问题
*进一步[[conda]]指定降级到4.2才行
*可以看出[[conda]]的版本管理并不好,

2024年7月12日 (五) 14:24的最新版本

  • 很好的教程网站 [1]
比如星际红化的 [2]

io

  • astropy.io.fits
  • ascii文件:Table格式,支持ecsv文件直接读入table

astrometry

  • match 两个星表
>>> from astropy.coordinates import SkyCoord
>>> from astropy import units as u
>>> c = SkyCoord(ra=ra1*u.degree, dec=dec1*u.degree)  
>>> catalog = SkyCoord(ra=ra2*u.degree, dec=dec2*u.degree)  
>>> idx, d2d, d3d = c.match_to_catalog_sky(catalog) #d3d是假设距离为1的地方的3维距离,因此是以弧度为单位
>>> sel=np.where(d2d.degree < 0.00002)
>>> Nsel=len(sel[0])
>>> print(ra1[sel][0],ra2[idx[sel][0])
  • 算出任意两点之间距离向量的PA角,还有中点坐标[3]

宇宙学

http://docs.astropy.org/en/stable/cosmology/

  • 从红移到年龄
>>>from astropy.cosmology import FlatLambdaCDM 
>>>cosmo = FlatLambdaCDM(H0=70, Om0=0.3)

>>> lum_dis=cosmo.luminosity_distance(redshift) #计算光度距离

  • 从年龄到红移
>>> import astropy.units as u
>>> from astropy.cosmology import  z_at_value
>>> z_at_value(cosmos.age, 2 * u.Gyr)

单位转换

dL=lum_dis.to(u.cm)

bug

  • 在anaconda3.8.3升级 astropy 和liberfc之后,astropy.fits出错,解决方法是降级
  • 安装pytorch之后,自动降级到4.3,但是还是又小问题
  • 进一步conda指定降级到4.2才行
  • 可以看出conda的版本管理并不好,