astropy / astropy/astroquery

Add `columns` parameter to `Vizier.get_catalogs()`

Open
#917 1 comment 2 reactions 0 assignees View on GitHub
vizier
Dominant language
Python
Stars
791
Forks
451
Avg merge
1d 3h
Merged PRs (30d)
4

Description

This is my first time using `astroquery`, so my apologies if I'm missing something stupid. I'm trying to get all (30) columns from a catalog, but `get_catalogs` only returns 8.

```
In [45]: results = Vizier.get_catalogs('J/ApJ/680/169/'); print(results)
TableList with 1 tables:
'0:J/ApJ/680/169/table1' with 8 column(s) and 77429 row(s)
```

Eventually I found the note in the documentation about using `columns=["**"]`, so now I can do this:
```
In [46]: v = Vizier(columns=["**"], catalog="J/ApJ/680/169/", row_limit=-1)
In [47]: results = v.query_constraints(); print(results)
TableList with 1 tables:
'0:J/ApJ/680/169/table1' with 30 column(s) and 77429 row(s)
```

1) It would be great to have `get_catalogs()` accept the `columns` argument itself to avoid this method, using a `Vizier` class and then `query_constraints` *without* any constraints.

2) This (second) method requires passing the `row_limit` parameter. By default it does not respect the `Vizier.ROW_LIMIT` parameter:
```
In [52]: print(Vizier.ROW_LIMIT)
...: v = Vizier(columns=["**"], catalog="J/ApJ/680/169/")
...: results = v.query_constraints()
...: print(results)
...:
-1
TableList with 1 tables:
'0:J/ApJ/680/169/table1' with 30 column(s) and 50 row(s)
```

Contributor guide

Open the contributing guide

Research direction

Start by locating the Vizier.get_catalogs() and query_constraints() entry points and compare how they handle column selection and row limits. The work is complete when get_catalogs() accepts columns directly and the constraint-free approach respects Vizier.ROW_LIMIT, with coverage for both behaviors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.