67 {
"scan", &head.
scan, NULL,
DOUBLE, 1, 0, 1, 0},
82 {
"ptcon", &head.
ptcon[0], NULL,
DOUBLE, 4, 0, 2, 0},
90 {
"ut", &head.
ut, NULL,
DOUBLE, 1, 0, 3, 0},
91 {
"lst", &head.
lst, NULL,
DOUBLE, 1, 0, 3, 0},
145 {
"etal", &head.
etal, NULL,
DOUBLE, 1, 0, 8, 0},
151 {
"loif", &head.
loif, NULL,
DOUBLE, 1, 0, 9, 0},
160 {
"wl", &head.
wl, NULL,
DOUBLE, 1, 0, 9, 0},
162 {
"pbeam", &head.
pbeam[0], NULL,
DOUBLE, 2, 0, 9, 0},
163 {
"mbeam", &head.
mbeam[0], NULL,
DOUBLE, 2, 0, 9, 0},
164 {
"sroff", &head.
sroff[0], NULL,
DOUBLE, 4, 0, 9, 0},
176 {
"tatms", &head.
tatms, NULL,
DOUBLE, 1, 0, 11, 0},
177 {
"taus", &head.
taus, NULL,
DOUBLE, 1, 0, 11, 0},
178 {
"taui", &head.
taui, NULL,
DOUBLE, 1, 0, 11, 0},
179 {
"tatmi", &head.
tatmi, NULL,
DOUBLE, 1, 0, 11, 0},
180 {
"tchop", &head.
tchop, NULL,
DOUBLE, 1, 0, 11, 0},
181 {
"tcold", &head.
tcold, NULL,
DOUBLE, 1, 0, 11, 0},
182 {
"gaini", &head.
gaini, NULL,
DOUBLE, 1, 0, 11, 0},
183 {
"count", &head.
count[0], NULL,
DOUBLE, 3, 0, 11, 0},
204 {
"bw", &head.
bw, NULL,
DOUBLE, 1, 0, 12, 0},
205 {
"trx", &head.
trx, NULL,
DOUBLE, 1, 0, 12, 0},
206 {
"tcal", &head.
tcal, NULL,
DOUBLE, 1, 0, 12, 0},
207 {
"stsys", &head.
stsys, NULL,
DOUBLE, 1, 0, 12, 0},
208 {
"rtsys", &head.
rtsys, NULL,
DOUBLE, 1, 0, 12, 0},
210 {
"trms", &head.
trms, NULL,
DOUBLE, 1, 0, 12, 0},
211 {
"refpt", &head.
refpt, NULL,
DOUBLE, 1, 0, 12, 0},
212 {
"x0", &head.
x0, NULL,
DOUBLE, 1, 0, 12, 0},
215 {
"noint", &head.
noint, NULL,
DOUBLE, 1, 0, 12, 0},
216 {
"spn", &head.
spn, NULL,
DOUBLE, 1, 0, 12, 0},
226 {
"fscan", &head.
fscan, NULL,
DOUBLE, 1, 0, 13, 0},
227 {
"lscan", &head.
lscan, NULL,
DOUBLE, 1, 0, 13, 0},
228 {
"lamp", &head.
lamp, NULL,
DOUBLE, 1, 0, 13, 0},
229 {
"lwid", &head.
lwid, NULL,
DOUBLE, 1, 0, 13, 0},
230 {
"ili", &head.
ili, NULL,
DOUBLE, 1, 0, 13, 0},
231 {
"rms", &head.
rms, NULL,
DOUBLE, 1, 0, 13, 0},
232 {
"align3", &head.
align3[0], NULL,
DOUBLE, 4, 0, 13, 0},
234 { NULL, 0, NULL, 0, 0, 0, 0, 0}
237 #define MAX_HEAD_PARAMS (sizeof(head_params) / sizeof(struct HEAD_PARAMS))
244 bcopy((
char *)&
h0->
head, (
char *)&head,
sizeof(head));
265 bcopy((
char *)&head, (
char *)&
h0->
head,
sizeof(head));
276 char tbuf[512], buf[1024];
286 bzero(tbuf,
sizeof(tbuf));
290 for(i=0;i<p->
size;i++)
315 sprintf(buf,
" %s", tbuf);
331 int i, len,
nclass=0, foundOne=0;
332 char tbuf[512], buf[1024];
335 bcopy((
char *)&
h0->
head, (
char *)&head,
sizeof(head));
429 if(type > 0 && p->
class != type)
434 bzero(tbuf,
sizeof(tbuf));
438 for(i=0;i<p->
size;i++)
463 sprintf(buf,
" %s", tbuf);
480 char raStr[80], decStr[80], modeStr[80], oprStr[80], epochStr[80];
481 char lstStr[80], utStr[80], azStr[80], elStr[80], ttimeStr[80];
482 char tolStr[80], azbStr[80], elbStr[80], hpStr[80];
503 strncpy(modeStr, h->obsmode+4, 4);
505 strncpy(oprStr, h->obsid+4, 3);
508 ttime = h->noint * h->samprat;
517 if(!strncmp(h->coordcd,
"APPRADC", 7))
519 strcpy(epochStr,
" APP ");
522 if(!strncmp(h->coordcd,
"2000RADC", 8))
524 strcpy(epochStr,
"2000 ");
527 if(!strncmp(h->coordcd,
"1950RADC", 8))
529 strcpy(epochStr,
"1950 ");
533 strcpy(epochStr,
"UNKNOWN");
536 st_print(
"--------------------------------------------------------------------\n");
537 st_print(
" Scan %6.2f ARO %3s %16.16s %3.3s\n",
538 h->scan, site, h->object, h->obsid);
539 st_print(
"--------------------------------------------------------------------\n");
541 st_print(
"YYYY-MM-DD LST UTC MODE OPR\n");
542 st_print(
"%8.4f %s %s %4.4s %3.3s\n\n",
543 h->utdate, lstStr, utStr, modeStr, oprStr);
545 st_print(
" RA %s DEC AZ EL\n", epochStr);
547 raStr, decStr, azStr, elStr);
549 st_print(
" TS TC ATTN ATM T(AMB) SAMPLES SEC TIME TOL\n");
550 st_print(
"%6.1f %6.1f %6.3f %4.2f %5.2f %3d %5.1f %s %s\n\n",
551 h->stsys, h->tcal, h->tauh2o,
552 1.0 / sin(h->el *
CTR),
553 h->tamb, (
int)h->noint,
554 h->samprat, ttimeStr, tolStr);
556 st_print(
" AZ EL HP EFF NT DSF F0\n");
557 st_print(
"+BEAM: %s %s %s %2.0f %d %d %4.1f\n",
558 azbStr, elbStr, hpStr, h->appeff*100,
559 (
int)h->freqres, (
int)h->restfreq, h->focusr);
564 st_print(
"-BEAM: %s %s\n", azbStr, elbStr);
569 st_print(
"POINT: %s %s\n", azbStr, elbStr);
571 st_print(
"--------------------------------------------------------------------\n");
581 char raStr[80], decStr[80], modeStr[80], oprStr[80], epochStr[80];
582 char lstStr[80], utStr[80], ttimeStr[80];
583 char tolStr[80], uazStr[80], uelStr[80],
584 razoStr[80], reloStr[80],
585 pbeamStr[8], mbeamStr[80], xrefStr[80], yrefStr[80];
605 strncpy(modeStr, h->obsmode+4, 4);
607 strncpy(oprStr, h->obsid+4, 3);
614 tol = h->obstol / 60.0;
618 strcpy(tolStr,
"60:00");
625 if(!strncmp(h->coordcd,
"APPRADC", 7))
627 strcpy(epochStr,
" APP ");
630 if(!strncmp(h->coordcd,
"2000RADC", 8))
632 strcpy(epochStr,
"2000 ");
635 if(!strncmp(h->coordcd,
"1950RADC", 8))
637 strcpy(epochStr,
"1950 ");
641 strcpy(epochStr,
"UNKNOWN");
651 st_print(
"--------------------------------------------------------------------\n");
652 st_print(
" Scan %6.2f ARO %3s %16.16s %3.3s\n",
653 h->scan, site, h->object, h->obsid);
654 st_print(
"--------------------------------------------------------------------\n");
656 st_print(
"YYYY-MM-DD LST UTC MODE OPR\n");
657 st_print(
"%8.4f %s %s %4.4s %3.3s\n",
658 h->utdate, lstStr, utStr, modeStr, oprStr);
663 st_print(
" %s %s %s AZ: %s %s %s\n", epochStr, raStr, decStr, uazStr, pbeamStr, razoStr );
664 st_print(
" %s REF %s %s EL: %s %s %s\n", epochStr, xrefStr, yrefStr, uelStr, mbeamStr, reloStr );
666 st_print(
" GALACTIC %8.4f %8.4f RA: 00:00 00:00\n", h->gallong, h->gallat);
667 st_print(
" AZ/EL %8.4f %8.4f DEC: 00:00 00:00\n", h->az, h->el);
669 st_print(
" TSYS TC RCVRS BW/CHAN REST FREQ DOP FREQ IFS SB\n");
670 st_print(
" %6.1f %5.1f 1 %4.0f %10.3f %10.3f %3.0f %d\n",
672 fabs(h->freqres * 1000.0),
673 h->restfreq, h->obsfreq,
674 h->loif, (
int)h->sideband);
676 st_print(
" %10.8f %4.0f\n", h->synfreq/1000.0, h->firstif);
678 st_print(
" TIME NS SEC VEL VLSR/VR VEL/CHAN TOL F0\n");
679 st_print(
" %s %2.0f %4.0f %5.1f %7.3f %7.3f %6.6s %4.1f\n",
681 h->inttime / h->samprat,
683 h->velocity, h->rvsys, h->deltax,
686 st_print(
"--------------------------------------------------------------------\n");
695 bcopy((
char *)&
h0->
head, (
char *)&head,
sizeof(head));
716 for(cp=tbuf;*cp;cp++)
718 if(*cp ==
'(' || *cp ==
')' || *cp ==
' ')
734 char *ext[] = {
"txt",
"ps" };
735 char *string, line[256], *cp, outStr[256];
760 strcpy(issmt,
"smt");
764 strcpy(issmt,
"12m");
767 site = getenv(
"SITE");
770 st_fail(
"SITE environmental not set");
774 if(!
strcmp(site,
"TUCSON"))
776 sprintf(path,
"/home/archive/2013-2014/%s/obs/%s/status", issmt, initials);
779 if(!
strcmp(site,
"KITT_PEAK"))
781 sprintf(path,
"/home/obs/%s/status", initials);
784 if(!
strcmp(site,
"MT_GRAHAM"))
786 sprintf(path,
"/home/obs/%s/status", initials);
790 st_fail(
"Unknown SITE: %s", site);
802 strncpy(source, head.
object, 16);
807 sprintf(fname,
"%s/%s.%s.%05d.txt", path, source, version, (
int)head.
scan);
811 sprintf(fname,
"%s/%04d.%s", path, (
int)head.
scan, ext[i]);
814 st_print(
"Looking for: %s\n", fname);
816 if((fp = fopen(fname,
"r") ) <= (FILE *)0)
822 while((
string = fgets(line,
sizeof(line), fp)) != NULL)
830 if(!strncmp(line,
"540 ", 4))
832 cp = strstr(line,
"(");
836 strncpy(outStr, cp, len-4);
850 sprintf(fname,
"%s/%04.0f.*", path, head.
scan);
851 st_fail(
"Unable to find any file: %s", fname);
struct LP_IMAGE_INFO * h0
char * strcmprs(char *str)
int sexagesimal(double dang, char *str, int prec)