如何解决使用 astroquery 搜索列表
我在下面有从 https://astroquery.readthedocs.io/en/latest/gaia/gaia.html 获得的以下代码。
当 const googleAuthProvider = new firebase.auth.GoogleAuthProvider();
和 br
是一个数字时,我得到 ra
。但是,我不仅有一个数字,而且还有 ra 和 dec 的列表。当我尝试在下面的代码中为 dec
和 ra
放入一个列表时,我收到一个错误消息,显示 dec
。有没有办法使用 Error 500: null
和 br
的列表找到 ra
?
dec
我是 astroquery 的新手,所以我们将不胜感激。
解决方法
嗨,恭喜你提出第一个 StackOverflow 问题。据我了解,Astroquery 是社区的成果,在许多情况下,用于查询单个在线目录的模块与在线查询系统并排开发和维护,通常由相同的开发人员开发。因此,Astroquery 中的不同模块有时由不同的团队开发,并且在界面中具有不同程度的功能完整性和一致性(我希望看到改进但很难协调)。
在 Gaia.query_object_async
的情况下,文档并不完全清楚,但它甚至支持数组 public function carBook()
{
$car_books = Car::join('car_books','car_books.car_id','=','cars.id')->latest()->get();
return view('admin.car_book',compact('car_books'));
}
并不明显。它应该,或者至少如果它不应该给出一个更好的错误。
为了仔细检查,我深入研究了 the code 并发现了我怀疑的东西:它根本不允许这样做。它正在使用字符串替换(通常被认为是一个坏主意)构建 SQL 查询并将该 SQL 查询传递给基于 Web 的服务。因为 SkyCoord
和 ra
值是数组,它只是盲目地将这些数组表示传递到 SQL 查询的模板中,导致查询无效:
dec
服务器,而不是返回提示查询格式错误的错误消息,而是仅返回一般服务器错误。基本上它崩溃了。
长话短说,您可能应该针对 astroquery 打开一个关于此的错误报告,看看它是否在 Gaia 维护者的关注范围内:https://github.com/astropy/astroquery/issues/new
与此同时,听起来最好的办法是在循环中进行多个查询并将它们的结果连接在一起。由于它返回 SELECT
TOP 50
DISTANCE(
POINT('ICRS',ra,dec),POINT('ICRS',[99.00000712 87.00000767],[24.99999414 24.99999461])
) as dist,*
FROM
gaiadr2.gaia_source
WHERE
1 = CONTAINS(
POINT('ICRS',BOX(
'ICRS',[24.99999414 24.99999461],0.005,0.005
)
)
ORDER BY
dist ASC
,您可以使用 Table
:
astropy.table.vstack
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。