up Back to Handbook


    EPOCH(1)                     FADPS                        EPOCH(1)


    NAME
	epoch  - перевод координат с эпохи на эпоху, вычисление
		 видимых мест, Юлианских дней и звездного времени

    SYNOPSIS
	epoch  [-i input_epoch] [-o output_epoch]
	       [-a inp_alpha] [-d inp_delta]
	       [-f[{123456}] file] [-L longitude] [-v{vmdes}]
	       [-st time -dt date] [-jd date] [-tz timezone]
	       [+-G] [-b g_lat] [-l g_lon] [-F[n] n]

    DESCRIPTION
	Программа epoch предназначена для вычисления видимых
	мест звездных объектов, перевода координат с одной эпохи
	на другую, вычисления Юлианских дней и звездного времени
	на заданную дату.
	Программа использует алгоритмы и подпрограммы, разработанные
	В.П.Львовым (ИТА, Санкт-Петербург) и является наследницей
	программы efm, разработанной О.П.Желенковой (лаборатория
	информатики, САО РАН) для систем NTS, ДЕМОС, XENIX,
	Linux, использующей процедуры Львова.
	Обеспечиваемая точность перевода координат для данного
	алгоритма по В.П.Львову 0.1 секунда дуги.

	Для данной программы переписан пользовательский
	интерфейс и все процедуры переведены на язык "C"
	с исходных текстов ФОРТРАНа.

	При вычислении видимых мест используется долгота места,
	конкретно для вычисления дробной части Юлианских дней.
	По умолчанию долгота равна долготе РАТАН-600: -2:46:22.1
	в часовой мере (или 41:35:31.5 в градусной мере к
	Востоку от Гринвича).
	Для установки долготы по умолчанию можно переменной
	среды LONGITUDE присвоить значение долготы в часовой мере:
	в оболочке sh:
		LONGITUDE=hh:mm:ss.ss; export LONGITUDE
	в оболочке csh:
		setenv LONGITUDE hh:mm:ss.ss
	или использовать ключ '-l' (см. ниже).

	При переводе звездного времени в местное и обратно
	использовалась процедура С.А.Трушкина, в которой
	запрограммирован алгоритм, взятый из Астрономического
	Ежегодника и отнесенный к эпохе 2000.0.
	При переводе времени существенным моментом является
	часовой пояс, который по умолчанию задается
	как московский временной пояс, а именно
	в летнее время (с первого воскресенья после
	24 марта до первого воскресенья после 24 сентября)
	используется 4-ый часовой пояс, в зимнее время -
	3-ий часовой пояс.
	Для установки часового пояса по умолчанию можно переменной
	среды TIMEZONE присвоить значение номера часового пояса:
	например, в оболочке sh:
		TIMEZONE=4; export TIMEZONE
	в оболочке csh:
		setenv TIMEZONE 4
	или использовать ключ '-tz' (см. ниже).

	epoch также позволяет переводить координаты одной
	системы в другую: галактические в экваториальные или
	наоборот.

	Программа позволяет вводить данные с клавиатуры и из
	файлов, в том числе со стандартного файла ввода.
	Результат выдает в стандартный файл вывода.

	Программа epoch работает как в режиме диалога, так
	и в командной строке с помощью ключей.

	Программа понимает следующие ключи:

	-a  - следующий за этим ключом параметр inp_alpha -
	      прямое восхождение источника на эпоху, задаваемую
	      с помощью ключа '-i'. Параметр inp_alpha может
	      быть введен по одному из следующих форматов:
	      1) HH:MM:SS.SS - часы, минуты, секунды через двоеточие;
	      2) hHH.HH, HH.HHh, HH.HH - часы HH.HH; вводимая строка
	      может начинаться или оканчиваться символом 'h';
	      по умолчанию также вводятся часы;
	      3) mMM.MM или MM.MMm - минуты MM.MM;
	      4) sSS.SS или SS.SSs - секунды SS.SS;
	      5) то же, что и формат 1), только вместо двоеточия
	      пробел ("HH MM SS.SS"). Вводимый параметр в этом случае
	      необходимо брать в кавычки, иначе часы, минуты и
	      секунды будут восприниматься, как отдельные
	      параметры, разделенные пробелами.

	-b -  следующий за этим ключом параметр g_lat - галактическая
	      широта в угловой мере. Формат задания долготы
	      такой же, что и для ключа '-d'.
	      Галактическая широта задается только для перевода
	      координат. Используется вместе с ключом '-l'.

	-d  - следующий за этим ключом параметр inp_delta -
	      склонение на эпоху, задаваемую
	      с помощью ключа '-i'. Параметр inp_delta может
	      быть введен по одному из следующих форматов:
	      1) SDD:MM:SS.SS - градусы, минуты, секунды через
	      двоеточие, перед строчкой может стоять знак '-'
	      или '+';
	      2) dSDD.DD, SDD.DDd, SDD.DD - часы SDD.DD; вводимая строка
	      может начинаться или оканчиваться символом 'd';
	      по умолчанию также вводятся градусы;
	      3) mMM.MM или MM.MMm - минуты MM.MM;
	      4) sSS.SS или SS.SSs - секунды SS.SS;
	      5) то же, что и формат 1), только вместо двоеточия
	      пробел ("SDD MM SS.SS"). Вводимый параметр в этом случае
	      необходимо брать в кавычки, иначе градусы, минуты и
	      секунды будут восприниматься, как отдельные
	      параметры, разделенные пробелами.

	-dt - следующий за этим ключом параметр date - дата, на
	      которую будет вычисляться звездное или
	      среднее солнечное время. Используется только
	      с ключом '-st'. Дата может быть введена
	      по тому же формату, что и эпоха (см. ключ '-i'
	      ниже).
	      Если вместо даты набрать символ '-', то
	      вычисление будет производиться для текущей даты.

	-f -  следующий за этим ключом параметр file - имя
	      файла, из которого будут браться исходные
	      данные для пересчета координат. Сразу за
	      ключом без пробела (например, -f3 fileQQ)
	      может стоять один из следующих символов
	      1,2,3,4,5,6, означающих тип задаваемого
	      файла в зависимости от его содержимого.
	      По умолчанию 1 (т.е. когда за ключом '-f')
	      ничего не записано.
	      Форматы файлов могут быть следующие:

	       Ключ |          Формат
	     -----------------------------------------
	       -f1  |       hh mm ss.ss  dd mm ss.ss
	       -f2  | name  hh mm ss.ss  dd mm ss.ss
	       -f3  | name  hh mm ss.ss  dd mm ss.ss epoch
	       -f4  |       hh mm ss.ss  dd mm ss.ss mr md p v
	       -f5  | name  hh mm ss.ss  dd mm ss.ss mr md p v
	       -f6  | name  hh mm ss.ss  dd mm ss.ss epoch mr md p v

	      Здесь наличие соответствующего параметра в формате
	      означает наличие его в каждой строке файла.
	      Все символы строки файла, записанные вслед за
	      диезом '#', а также пустые строки игнорируются.
	      Символы в приведенной таблице означают следующее:
	      name - имя объекта, hh - часы, mm - минуты,
	      ss - секунды, dd - градусы, epoch - эпоха, на
	      которую заданы координаты, mr - собственное
	      движение источника по прямому восхождению в столетие,
	      md - собственное движение источника по склонению
	      в столетие, p - параллакс в секундах дуги,
	      v - лучевая скорость в км/сек.
	      Параметры могут разделяться любым количеством
	      пробелов и табуляций.
	      В имени объекта пробелов быть не должно.
	      Последовательность 'hh mm ss.ss' - вводится для
	      прямого восхождения, а 'dd mm ss.ss' - для
	      склонения.
	      Если имя файла - 'stdin' или символ минус '-',
	      то в качестве входного файла будет
	      использоваться стандартный файл ввода.

	-F -  следующий за этим ключом параметр n - количество
	      выводимых цифр после точки в поле для секунд
	      прямого восхождения. Для склонения будет выводиться
	      на единицу меньше. По умолчанию при вводе
	      с клавиатуры это число равно двум, а при вводе
	      из файла со спиком координат оно равно количеству
	      цифр после точки у значения прямого восхожения
	      в первой строке.

	-Fn - следующий за этим ключом параметр n - количество
	      выводимых цифр в поле для имени объекта.
	      По умолчанию равно 15.

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

	+G -  ключ показывает, что находящиеся в файле
	      галактические координаты будут переводиться
	      в экваториальные.

	-h -  выдать подсказку по работе программы.

	-i -  следующий за этим ключом параметр - эпоха,
	      на которую заданы входные данные. Эпоха
	      может быть задана в виде 'yyyy.y' (например,
	      1950.0) либо в виде 'dd/mm/yyyy' - день,
	      месяц, год соответственно (например, 26/08/1995),
	      или в виде DD-MMM-YYYY, где DD - это день
	      месяца, MMM - первые три буквы английского
	      названия месяца, а YYYY - год, например,
	      17-Mar-1965 - семнадцатое марта 1965 г.
	      Если вместо эпохи набрать символ '-', то
	      в качестве входной эпохи будет использоваться
	      текущая дата.

	-jd - следующий за этим ключом параметр - дата,
	      для которой будут вычисляться Юлианские дни.
	      Дата задается по тому же формату, что и для
	      и для ключа '-i'.
	      Если вместо даты набрать символ '-', то
	      вычисление будет происходить для текущей даты.

	-l -  следующий за этим ключом параметр - галактическая
	      долгота в угловой мере. Формат задания долготы
	      такой же, что и для ключа '-d'.
	      Галактическая долгота задается только для перевода
	      координат. Используется вместе с ключом '-b'.

	-L -  следующий за этим ключом параметр g_lon - долгота
	      места в часовой мере. Формат задания долготы
	      такой же, что и для ключа '-a'.

	-o -  следующий за этим ключом параметр - эпоха,
	      на которую будут вычисляться выходные координаты.
	      Дата задается по тому же формату, что и для
	      и для ключа '-i'.
	      Если вместо эпохи набрать символ '-', то
	      вычисление будет происходить для текущей даты.

	-st - следующий за этим ключом параметр time обозначает
	      звездное или среднее солнечное время, которое будет
	      переводиться соответственно в среднее солнечное или
	      звездное время в зависимости от знака вводимого
	      параметра. Если time имеет отрицательное значение, то
	      звездное время на дату, задаваемую с помощью ключа
	      '-dt', и равное абсолютному значению time будет
	      переводиться в местное солнечное время, в противном
	      случае (когда time > 0.) местное солнечное время
	      будет переводиться в звездное на дату, вводимую
	      ключом '-dt'. Наличие ключа '-dt' и соответствующего
	      параметра обязательно.
	      Формат параметра time такой же, как и формат для
	      прямого восхождения (см. ключ -a).
	      Если вместо параметра time набрать '-', то
	      вычисление звездного времени будет происходить
	      для текущего системного времени.

	-tz - следующий за этим ключом параметр timezone
	      обозначает часовой пояс для перевода звездного
	      времени в местное среднее и обратно.

	-v -  следующий за этим ключом параметр без пробела -
	      один из символов 'v','m','d','e' или 's' - используется
	      для установки типа перевода координат:

	     ключ|  тип перевода координат
	     ----|----------------------------------------------------
	     -vv | вычисление видимых мест (ВМ) со стандартной эпохи (СЭ)
	     -vm | вычисление ВМ со СЭ с учетом собст. движений
	     -vd | перевод ВМ на другую дату
	     -ve | приведение к СЭ 1950.0 или 2000.0
	     -vs | приведение с одной СЭ (1950 или 2000) на другую

	При отсутствии (или нехватке ключей) программа работает
	в режиме диалога.

	При наборе имени программы epoch и отсутствии параметров
	программа задает вопрос:
	   input from keyboard [k] or from file [f] ? (default: k) =>
	   Ввод данных с клавиатуры или из файла.
	В случае ввода с клавиатуры надо набрать символ 'k', а
	в случае ввода из файла символ 'f'. По умолчанию вводится
	'k'.
	При выборе ввода из файла программа запрашивает имя файла:
		name of file ? =>
	и тип формата для файла, предлагая выбор из меню:

		formats of file:
		--------------------------------------------------
		     hh mm ss.ss  sdd mm ss.ss                 - 1
		name hh mm ss.ss  sdd mm ss.ss                 - 2
		name hh mm ss.ss  sdd mm ss.ss epoch           - 3
		     hh mm ss.ss  sdd mm ss.ss mr md p v       - 4
		name hh mm ss.ss  sdd mm ss.ss mr md p v       - 5
		name hh mm ss.ss  sdd mm ss.ss epoch mr md p v - 6
		     default                                   - 2
		--------------------------------------------------
		your choice ? =>

	Тип форматов соответствует описанным для ключа '-f' (см. выше).
	Для выбора соответствующего формата надо набрать номер
	формата. По умолчанию - это номер 2, т.е. когда в строке
	файла записаны имя объекта, прямое восхождение (часы,
	минуты, секунды) и склонение (градусы, минуты и секунды),
	разделенные пробелами или табуляциями.

	Если формат файла не 3 и не 6, то программа запросит
	эпоху, с которой требуется перевод координат.
		input epoch  ? =>
	Эпоху можно вводить по тому же формату, что и для
	ключа '-i' (см. выше).
	Если не введена эпоха, на которую надо переводить
	координаты (например, с помощью ключа '-o'; см. выше),
	то программа epoch попросит ее ввести:
		output epoch ? =>
	После этого программа пересчитывает координаты
	вплоть до окончания файла, записывая результат в
	стандартный файл вывода.

	Если в первом вопросе :
	   input from keyboard [k] or from file [f] ? (default: k) =>
	   Ввод данных с клавиатуры или из файла.
	после запуска программы epoch без параметров
	ответить набором символа 'k' (что также и по умолчанию),
	то программа будет запрашивать все данные в диалоге
	с клавиатуры.

	Сначала задается вопрос:
	    output on screen [s] or to file [f] ? (default: f) =>
	    Вывод результатов на экран (в случае ввода символа 's')
	    или в файл в случае ввода ('f'). По умолчанию
	    устанавливается 'f'. При этом программа будет
	    дублировать вывод на экран и в файл, предварительно
	    запросив его имя:
		name of file ? =>

	После чего на экран выдается меню:
	    --------------------------------------------------------
	     visible place (VP) from epoch 1950.0/2000.0     - {v,1}
	     VP from 1950.0/2000.0 with proper motions       - {m,2}
	     VP from date I to date II                       - {d,3}
	     reduction to standard equinox 1950.0/2000.0     - {e,4}
	     reduction from std.epoch to std.epoch 1950/2000 - {s,6}
	     Julian days calculation                         - {j,7}
	     sidereal time calculation                       - {t,8}
	     Equatorial and Galactic systems transformation  - {g,9}
	     default                                         - {v,0}
	    --------------------------------------------------------
	     your choice ? =>

	что означает:
	   -----------------------------------------------------------
	    видимое место (ВМ) со станд. эпохи 1950.0/2000.0   - {v,1}
	    ВМ с эпохи 1950.0/2000.0 с учетом собст.движений   - {m,2}
	    пересчет ВМ с даты I на дату II                    - {d,3}
	    редукция на стандартное равноденствие 1950/2000.   - {e,4}
	    редукция со станд.эпохи на станд.эпоху 1950/2000   - {s,6}
	    расчет Юлианских дней                              - {j,7}
	    расчет звездного времени                           - {t,8}
	    перевод галактической и экваториальной коор.систем - {g,9}
	    выбор по умолчанию                                 - {v,0}
	   -----------------------------------------------------------
	    Ваш выбор ? =>

	Выбор можно делать и буквами, и цифрами.
	При вводе кода cntrl-D (^D) программа прекратит работу.

	Если у пользователя не введены с помощью ключей
	какие-нибудь требуемые стандартные параметры,
	то программа задаст соответствующие вопросы:
	     input epoch (date)  ? =>
	     Входная эпоха/дата
	Формат задания как и для ключа '-i' (см. выше).

	В случае выбора в меню девятого пункта (перевод
	координат из одной системы в другую и обратно)
	программа спросит:
	     input equatorial coordinates (y/n) [y]  ? =>
	     ввод экваториальных координат - при вводе 'y'
	     или по умолчанию. В случае отрицательного
	     ответа ('n') будет производиться ввод галактических
	     координат для пересчета их в экваториальные.
	Если пользователь выбрал ввод экваториальных координат
	для перевода их в галактические, то программа сделает
	запрос прямого восхождения:
	     right ascension (hh:mm:ss.s) ? =>
	и склонения:
	     declination    (sdd:mm:ss.s) ? =>
	Если пользователь выбрал ввод галактических координат
	для перевода их в экваториальные, то программа сделает
	запрос галактической широты:
	     Galactic latitude  (sdd:mm:ss.s) ? =>
	и долготы:
	     Galactic longitude (ddd:mm:ss.s) ? =>
	Формат задания углов как и для ключа '-d' (см.выше).
	Только кавычки в случае разделения параметров пробелами
	набирать не надо.

	В случае выбора в меню восьмого пункта (перевод
	среднего солнечного времени в звездное и обратно)
	программа спросит:
	     input time ('-' - sidereal)  ? =>
	     Ввод времени (в случае отрицательного - звездное
	     для перевода в местное).
	Формат задания времени как и для ключа '-a' (см.выше).
	Только кавычки в случае разделения параметров пробелами
	набирать не надо.

	В случае выбора пунктов отличных от 7, 8 и 9 программа
	задаст следующие вопросы:
	     output epoch (date) ? =>
	     Выходная эпоха/дата
	Формат задания как и для ключа '-i' (см.выше).

	     right ascension (hh:mm:ss.s) ? =>
	     Прямое восхождение
	Формат задания как и для ключа '-a' (см.выше).
	Только кавычки в случае разделения параметров пробелами
	набирать не надо.

	     declination    (sdd:mm:ss.s) ? =>
	     Склонение
	Формат задания как и для ключа '-d' (см.выше).
	Только кавычки в случае разделения параметров пробелами
	набирать не надо.

	В случае выбора в меню пункта 2 программа задаст
	следующие вопросы:
	     right ascension pr.motion ? =>
	     движение по прямому восхождению

	     declination proper motion ? =>
	     движение по склонению

	     parallax, arc sec         ? =>
	     параллакс в секундах дуги

	     beam velocity, km/sec     ? =>
	     лучевая скорость в км/сек

	После ответа на вопросы программа вычисляет
	требуемые параметры и выходит на повтор запроса
	входных параметров, подставляя предыдущие введенные
	значения по умолчанию.
	Выход можно произвести, набрав cntrl-D (^D).

    EXAMPLES
	1) epoch
	   Запуск программы в режиме диалога
	2) epoch -o 9/9/1999
	   Расчет координат в режиме диалога на дату
	   9 сентября 1999 года
	3) epoch -jd -
	   Какой сегодня Юлианский день ?
	4) epoch -jd 2000.0
	   Какой Юлианский день на эпоху 2000 года ?
	5) epoch -st 12:00 -dt -
	   Какое звездное время соответствует 12 часам
	   среднего солнечного на сегодняшнюю дату ?
	6) epoch -i 1950 -o 22/8/1995 -a 8:30 -d 47:1:30
	   Вычислить видимые места с эпохи 1950 на дату
	   22 августа 1995 года для прямого восхождения
	   8:30 и склонения 47:1:30, заданных на эпоху 1950.
	   Программа не переходит в режим диалога после
	   распечатки результатов вычислений, а завершает
	   свою работу.
	7) epoch -i 1950 -o 22/8/1995 -a 8:30
	   В данном примере отсутствует один параметр -
	   склонение, поэтому после программа переходит
	   в режим диалога и продолжает запрос параметров
	   для вычислений.
	8) epoch -G -a 8:30 -d 47
	   Перевести экваториальные координаты (alpha=8:30:0,
	   delta=47:0:0) в галактические.
	   Программа распечатает галактическую широту и
	   долготу.
	8) epoch +G -f - < file_gal > file_eq
	   Перевести галактические координаты в экваториальные
	   координаты, взяв первые со стандартного файла ввода
	   (см. ключ '-f'). Стандартный файл ввода перенаправлен
	   из файла file_gal.
	   Программа выведет прямое восхождение и склонение
	   в стандартный файл вывода, который перенаправлен
	   в файл file.eq.
	   Формат данных в файле file_gal должен соответствовать
	   описанному в описании ключа '-f'.

    DIAGNOSTICS
	При задании неполного года, например, 22/8/95,
	программа будет анализировать какой это век.
	Рассматривая года с 51 по 99 как двадцатый век,
	а с 0 по 50 как двадцать первый, выдавая
	сообщения об этом в стандартный канал диагностик:
	     epoch: year less then 100, I consider 20th century...
	для первого случая и
	     epoch: year less then 100, I consider 21th century...
	для второго случая.

    AUTHOR
	Верходанов О.В. (vo@sao.stavropol.su)
				     V1.4: 27-Dec-1995

up Back to Handbook