Загрузка новой таблицы из Vizier
В этой документации описана последовательность действий для загрузки новой таблицы из Vizier.
Установка окружения#
Если не сделано, установить базовое окружение можно при помощи этой инструкции.
Скачивание и загрузка таблицы из Vizier#
-
Загрузить набор скриптов для leda:
-
Установить зависимости скриптов:
-
Запустить загрузку:
catalog_name
иtable_name
- имена каталога и таблицы из Vizier, которые хочется загрузить. Например, для каталога Siena Galaxy Atlas команда будет выглядеть вот так:Во время загрузки будет выведена строка с
table_name
- сгенерированным названием загружаемой таблицы. Его стоит записать, так как оно понадобится для дальнейшей обработки. -
Ждать, пока загрузка кончится. Она состоит из двух шагов: скачивание таблицы из Vizier и загрузка этой таблицы в HyperLeda. Если на моменте загрузки в HyperLeda загрузка оборвётся, файл из Vizier останется и скачивать его заново не придётся.
По итогам этого шага таблица будет загружена на уровень 0 БД.
Разметка столбцов таблицы#
Чтобы обработчик в дальнейшем понимал, какой столбец отвечает за какую физическую величину, нужно указать это. Обработчик пытается это сделать сам по информации о UCD или названиях столбцов, которые загружаются из Vizier. Тем не менее, это не всегда выходит сделать полностью корректно (например, в Vizier нет каких-то UCD). В этом случае можно помочь обработчику, а так же проверить, что он действительно смог обнаружить все нужные к загрузке столбцы.
Все операции тут будут происходить в веб-интерфейсе, открывающем доступ к методам API администраторского интерфейса базы данных напрямую. Найти этот интерфейс можно тут.
-
Проверить валидацию таблицы поможет метод
GET /admin/api/v1/table/validation
. В него передаётся один аргумент -table_name
, полученным из загрузки таблицы выше. В ответ будет выведен список ошибок, полученных в результате поиска колонок по каждой физической величине. Например:{ "data": { "validations": [ { "validator": "ICRS", "message": "Column RAJ2000 (for RAJ2000) does not have a valid angular unit" } ] } }
Здесь
"validator": "ICRS"
значит, что ошибка получена при попытке получения колонки для каталога координат.Ошибка
Column RAJ2000 (for RAJ2000) does not have a valid angular unit
означает, что у колонки для прямого восхождения единицы измерения - не радианы, и не градусы. Такое может быть, если, например, в метаданных вообще не указаны единицы измерения.Если все колонки были успешно найдены, ответ метода будет иметь вид
-
Для изменения метаданных таблицы есть метод
PATCH /admin/api/v1/table
. Один из принимаемых параметров -table_name
- имя таблицы, указанное при загрузке. Метод позволяет сделать несколько действий:-
Поменять или проставить UCD у столбца таблицы.
{ "table_name": "my_table_name", "actions": [ { "type": "change_ucd", "column": "column_name", "ucd": "pos.eq.ra" } ] }
Если проблема в разметке UCD, скорее всего, нужный UCD будет указан прямо в ошибке - обработчик лишь не понял, к какому столбцу он должен был быть отнесён. Нужно указать называние столбца. Для справки список UCD и их значений можно найти в спецификации IVOA.
-
Поменять или проставить единицы измерения у столбца таблицы.
{ "table_name": "my_table_name", "actions": [ { "type": "change_unit", "column": "column_name", "unit": "km/s" } ] }
Единицы измерения могут быть произвольной сложности. Для их парсинга используется astropy, так что список допустимых форм совпадает с тем, что принимает парсер этого модуля, но он очень широкий - в большинстве случаев об этом можно не думать.
-