数据批量下载笔记
一、astroquery
很多大型巡天项目都提供了下载数据的API方法,因此利用python脚本批量下载数据成为可能。基于已有的API(或者SQL)方法,astroquery整合了多个数据库,能够实现自动批量下载数据。
astroquery提供的数据库有:SDSS,ALMA,ESA,ESO,IRSA,MAST,NED 等等。详情见:https://astroquery.readthedocs.io/en/latest/#available-services
本笔记对于使用astroquery下载数据的经验进行整理:
1. 准备工作
- 导入需要的数据库:
from astroquery.sdss import SDSS
- 准备需要获得的参数:
对软件包不了解时,可在astroquery的在线说明文档中找到对应的class(例 https://astroquery.readthedocs.io/en/latest/sdss/sdss.html#module-astroquery.sdss 最底下的SDSSCLASS),点击并查看class下可用的函数。astropy的说明文档详细,分类清晰能够快速定位所需的函数。
可以看到其中的query_region函数能够实现根据设置的位置(ra,dec)以及搜寻半径(radius)搜寻得到目标源的SDSS表格信息。返回的表格信息有一些默认column,并不会返回所有存在的column,通过设置参数photoobj_fields和specobj_fields可以指定需要对column,通过sdss官网可以查询可获得的column:
photoObjALL:http://skyserver.sdss.org/dr12/en/help/browser/browser.aspx#&&history=description+PhotoObjAll+U
SpecPhotoALL:http://skyserver.sdss.org/dr12/en/help/browser/browser.aspx#&&history=description+SpecPhotoAll+U
例:
photoobj_col=['ra','dec','objid','run','rerun','camcol','field','psfMag_u', 'psfMagerr_u', 'psfMag_g','psfMagerr_g', 'psfMag_r', 'psfMagerr_r', 'psfMag_i','psfMagerr_i', 'psfMag_z', 'psfMagerr_z']
specobj_col=['z','plate','mjd','fiberID','specobjid']
其中ra,dec,run,rerun,camcol,field 和 plate,mjd,fiberID,(或者objid、specobjid)都是目标(观测)最基本的识别信息,利用这些信息可以找到并下载图像或者光谱。
- 准备源的位置信息:
需要SkyCoord数据类型
coord=SkyCoord(ra,dec,frame='icrs',unit='deg')
2. 搜寻源的表格信息:
specObj_result=SDSS.query_region(coord,radius=1.5*u.arcsec,data_release=17,spectro=True,p