AstroPy: Как удалить таблицу из TableList - PullRequest
0 голосов
/ 23 февраля 2020

Я ищу астрономические источники в каталогах Vizier с пакетом AstroPy Vizier Queries. После запуска кода я получаю TableList, который включает в себя список каталогов.

opticalViz = Vizier(columns=['_RAJ2000', '_DEJ2000','B-V', 'Vmag', 'Bmag'], 
                   keywords = ['optical'])
catalog_list = opticalViz.query_region(coord.SkyCoord('00 57 27.09 -73 25 14.4', 
                                                      unit=(u.hourangle, u.deg)), 
                                                     radius = Angle((0,0,6.3), unit = u.deg) )

print(catalog_list)

, который выводит

TableList with 18 tables:
    '0:I/221/smc' with 3 column(s) and 1 row(s) 
    '1:I/252/out' with 4 column(s) and 1 row(s) 
    '2:I/271/out' with 3 column(s) and 1 row(s) 
    '3:I/284/out' with 3 column(s) and 1 row(s) 
    '4:I/297/out' with 4 column(s) and 1 row(s) 
    '5:I/305/out' with 4 column(s) and 1 row(s) 
    '6:I/317/sample' with 3 column(s) and 1 row(s) 
    '7:I/319/xpm' with 4 column(s) and 1 row(s) 
    '8:I/320/spm4' with 4 column(s) and 1 row(s) 
    '9:I/322A/out' with 4 column(s) and 1 row(s) 
    '10:I/337/gaia' with 3 column(s) and 2 row(s) 
    '11:I/339/hsoy' with 3 column(s) and 1 row(s) 
    '12:I/345/gaia2' with 3 column(s) and 3 row(s) 
    '13:II/236/smc' with 4 column(s) and 1 row(s) 
    '14:II/336/apass9' with 5 column(s) and 1 row(s) 
    '15:IV/38/tic' with 4 column(s) and 3 row(s) 
    '16:J/A+A/586/A81/table5' with 5 column(s) and 1 row(s) 
    '17:J/AJ/123/855/table1' with 4 column(s) and 3 row(s) 

Это очень похоже на словарь, ключами которого являются имя каталога, а значениями - таблицы. Я хотел бы иметь возможность удалить указанный c каталог / таблицу по имени ключа. Тем не менее, когда я пытаюсь использовать del catalog_list['I/345/gaia2'], я получаю сообщение об ошибке, говоря, что индексы списка должны быть числами.

Может ли кто-нибудь пролить свет на то, что же такое TableList и как удалить из него определенные c элементы?

1 Ответ

0 голосов
/ 09 марта 2020

TableLists - оболочки вокруг OrderedDict. Они используются в astroquery для получения минимального представления таблиц, возвращаемых из службы.

Более подробную информацию можно найти здесь: https://astroquery.readthedocs.io/en/latest/api/astroquery.utils.TableList.html#astroquery .utils.TableList и здесь: https://astroquery.readthedocs.io/en/latest/vizier/vizier.html#query -an-object

Однако ваш вопрос не дает подсказки о том, почему вы хотите удалить записи из списка. Я не уверен, что таблицы таблиц поддерживают операции, которые вы хотите выполнить. Исходный код может быть полезен, или вы можете захотеть преобразовать в список или набор таблиц перед удалением записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...