예제 #1
0
파일: spc.c 프로젝트: anizami/astropy
int spcprt(const struct spcprm *spc)

{
  char hext[32];
  int  i;

  if (spc == 0x0) return SPCERR_NULL_POINTER;

  wcsprintf("       flag: %d\n", spc->flag);
  wcsprintf("       type: \"%s\"\n", spc->type);
  wcsprintf("       code: \"%s\"\n", spc->code);
  if (undefined(spc->crval)) {
    wcsprintf("      crval: UNDEFINED\n");
  } else {
    wcsprintf("      crval: %#- 11.5g\n", spc->crval);
  }
  wcsprintf("    restfrq: %f\n", spc->restfrq);
  wcsprintf("    restwav: %f\n", spc->restwav);

  wcsprintf("         pv:");
  if (spc->isGrism) {
    for (i = 0; i < 5; i++) {
      if (undefined(spc->pv[i])) {
        wcsprintf("  UNDEFINED   ");
      } else {
        wcsprintf("  %#- 11.5g", spc->pv[i]);
      }
    }
    wcsprintf("\n            ");
    for (i = 5; i < 7; i++) {
      if (undefined(spc->pv[i])) {
        wcsprintf("  UNDEFINED   ");
      } else {
        wcsprintf("  %#- 11.5g", spc->pv[i]);
      }
    }
    wcsprintf("\n");

  } else {
    wcsprintf(" (not used)\n");
  }

  wcsprintf("          w:");
  for (i = 0; i < 3; i++) {
    wcsprintf("  %#- 11.5g", spc->w[i]);
  }
  if (spc->isGrism) {
    wcsprintf("\n            ");
    for (i = 3; i < 6; i++) {
      wcsprintf("  %#- 11.5g", spc->w[i]);
    }
    wcsprintf("\n");
  } else {
    wcsprintf("  (remainder unused)\n");
  }

  wcsprintf("    isGrism: %d\n", spc->isGrism);

  WCSPRINTF_PTR("        err: ", spc->err, "\n");
  if (spc->err) {
    wcserr_prt(spc->err, "             ");
  }

  wcsprintf("     spxX2P: %s\n",
    wcsutil_fptr2str((int (*)(void))spc->spxX2P, hext));
  wcsprintf("     spxP2S: %s\n",
    wcsutil_fptr2str((int (*)(void))spc->spxP2S, hext));
  wcsprintf("     spxS2P: %s\n",
    wcsutil_fptr2str((int (*)(void))spc->spxS2P, hext));
  wcsprintf("     spxP2X: %s\n",
    wcsutil_fptr2str((int (*)(void))spc->spxP2X, hext));

  return 0;
}
예제 #2
0
파일: lin.c 프로젝트: ninoc/astropy
int linprt(const struct linprm *lin)

{
  int i, j, k;

  if (lin == 0x0) return LINERR_NULL_POINTER;

  if (lin->flag != LINSET) {
    wcsprintf("The linprm struct is UNINITIALIZED.\n");
    return 0;
  }
  wcsprintf("       flag: %d\n", lin->flag);

  /* Parameters supplied. */
  wcsprintf("      naxis: %d\n", lin->naxis);

  WCSPRINTF_PTR("      crpix: ", lin->crpix, "\n");
  wcsprintf("            ");
  for (j = 0; j < lin->naxis; j++) {
    wcsprintf("  %#- 11.5g", lin->crpix[j]);
  }
  wcsprintf("\n");

  k = 0;
  WCSPRINTF_PTR("         pc: ", lin->pc, "\n");
  for (i = 0; i < lin->naxis; i++) {
    wcsprintf("    pc[%d][]:", i);
    for (j = 0; j < lin->naxis; j++) {
      wcsprintf("  %#- 11.5g", lin->pc[k++]);
    }
    wcsprintf("\n");
  }

  WCSPRINTF_PTR("      cdelt: ", lin->cdelt, "\n");
  wcsprintf("            ");
  for (i = 0; i < lin->naxis; i++) {
    wcsprintf("  %#- 11.5g", lin->cdelt[i]);
  }
  wcsprintf("\n");

  WCSPRINTF_PTR("     dispre: ", lin->dispre, "");
  if (lin->dispre != 0x0) wcsprintf("  (see below)");
  wcsprintf("\n");
  WCSPRINTF_PTR("     disseq: ", lin->disseq, "");
  if (lin->disseq != 0x0) wcsprintf("  (see below)");
  wcsprintf("\n");

  /* Derived values. */
  if (lin->piximg == 0x0) {
    wcsprintf("     piximg: (nil)\n");
  } else {
    k = 0;
    for (i = 0; i < lin->naxis; i++) {
      wcsprintf("piximg[%d][]:", i);
      for (j = 0; j < lin->naxis; j++) {
        wcsprintf("  %#- 11.5g", lin->piximg[k++]);
      }
      wcsprintf("\n");
    }
  }

  if (lin->imgpix == 0x0) {
    wcsprintf("     imgpix: (nil)\n");
  } else {
    k = 0;
    for (i = 0; i < lin->naxis; i++) {
      wcsprintf("imgpix[%d][]:", i);
      for (j = 0; j < lin->naxis; j++) {
        wcsprintf("  %#- 11.5g", lin->imgpix[k++]);
      }
      wcsprintf("\n");
    }
  }

  wcsprintf("    i_naxis: %d\n", lin->i_naxis);
  wcsprintf("      unity: %d\n", lin->unity);
  wcsprintf("     affine: %d\n", lin->affine);
  wcsprintf("     simple: %d\n", lin->simple);

  /* Error handling. */
  WCSPRINTF_PTR("        err: ", lin->err, "\n");
  if (lin->err) {
    wcserr_prt(lin->err, "             ");
  }

  /* Work arrays. */
  WCSPRINTF_PTR("     tmpcrd: ", lin->tmpcrd, "\n");

  /* Memory management. */
  wcsprintf("     m_flag: %d\n", lin->m_flag);
  wcsprintf("    m_naxis: %d\n", lin->m_naxis);
  WCSPRINTF_PTR("    m_crpix: ", lin->m_crpix, "");
  if (lin->m_crpix == lin->crpix) wcsprintf("  (= crpix)");
  wcsprintf("\n");
  WCSPRINTF_PTR("       m_pc: ", lin->m_pc, "");
  if (lin->m_pc == lin->pc) wcsprintf("  (= pc)");
  wcsprintf("\n");
  WCSPRINTF_PTR("    m_cdelt: ", lin->m_cdelt, "");
  if (lin->m_cdelt == lin->cdelt) wcsprintf("  (= cdelt)");
  wcsprintf("\n");
  WCSPRINTF_PTR("   m_dispre: ", lin->m_dispre, "");
  if (lin->dispre && lin->m_dispre == lin->dispre) wcsprintf("  (= dispre)");
  wcsprintf("\n");
  WCSPRINTF_PTR("   m_disseq: ", lin->m_disseq, "");
  if (lin->disseq && lin->m_disseq == lin->disseq) wcsprintf("  (= disseq)");
  wcsprintf("\n");

  /* Distortion parameters (from above). */
  if (lin->dispre) {
    wcsprintf("\n");
    wcsprintf("dispre.*\n");
    disprt(lin->dispre);
  }

  if (lin->disseq) {
    wcsprintf("\n");
    wcsprintf("disseq.*\n");
    disprt(lin->disseq);
  }

  return 0;
}
예제 #3
0
파일: tab.c 프로젝트: jonathansick/astropy
int tabprt(const struct tabprm *tab)

{
    char   *cp, text[128];
    int    j, k, m, n, nd;
    double *dp;

    if (tab == 0x0) return TABERR_NULL_POINTER;

    if (tab->flag != TABSET) {
        wcsprintf("The tabprm struct is UNINITIALIZED.\n");
        return 0;
    }

    wcsprintf("       flag: %d\n", tab->flag);
    wcsprintf("          M: %d\n", tab->M);

    /* Array dimensions. */
    WCSPRINTF_PTR("          K: ", tab->K, "\n");
    wcsprintf("            ");
    for (m = 0; m < tab->M; m++) {
        wcsprintf("%6d", tab->K[m]);
    }
    wcsprintf("\n");

    /* Map vector. */
    WCSPRINTF_PTR("        map: ", tab->map, "\n");
    wcsprintf("            ");
    for (m = 0; m < tab->M; m++) {
        wcsprintf("%6d", tab->map[m]);
    }
    wcsprintf("\n");

    /* Reference index value. */
    WCSPRINTF_PTR("      crval: ", tab->crval, "\n");
    wcsprintf("            ");
    for (m = 0; m < tab->M; m++) {
        wcsprintf("  %- 11.5g", tab->crval[m]);
    }
    wcsprintf("\n");

    /* Index vectors. */
    WCSPRINTF_PTR("      index: ", tab->index, "\n");
    for (m = 0; m < tab->M; m++) {
        wcsprintf("   index[%d]: ", m);
        WCSPRINTF_PTR("", tab->index[m], "");
        if (tab->index[m]) {
            for (k = 0; k < tab->K[m]; k++) {
                if (k%5 == 0) {
                    wcsprintf("\n            ");
                }
                wcsprintf("  %- 11.5g", tab->index[m][k]);
            }
            wcsprintf("\n");
        }
    }

    /* Coordinate array. */
    WCSPRINTF_PTR("      coord: ", tab->coord, "\n");
    dp = tab->coord;
    for (n = 0; n < tab->nc; n++) {
        /* Array index. */
        j = n;
        cp = text;
        for (m = 0; m < tab->M; m++) {
            nd = (tab->K[m] < 10) ? 1 : 2;
            sprintf(cp, ",%*d", nd, j % tab->K[m] + 1);
            j /= tab->K[m];
            cp += strlen(cp);
        }

        wcsprintf("             (*%s)", text);
        for (m = 0; m < tab->M; m++) {
            wcsprintf("  %- 11.5g", *(dp++));
        }
        wcsprintf("\n");
    }

    wcsprintf("         nc: %d\n", tab->nc);

    WCSPRINTF_PTR("      sense: ", tab->sense, "\n");
    if (tab->sense) {
        wcsprintf("            ");
        for (m = 0; m < tab->M; m++) {
            wcsprintf("%6d", tab->sense[m]);
        }
        wcsprintf("\n");
    }

    WCSPRINTF_PTR("         p0: ", tab->p0, "\n");
    if (tab->p0) {
        wcsprintf("            ");
        for (m = 0; m < tab->M; m++) {
            wcsprintf("%6d", tab->p0[m]);
        }
        wcsprintf("\n");
    }

    WCSPRINTF_PTR("      delta: ", tab->delta, "\n");
    if (tab->delta) {
        wcsprintf("            ");
        for (m = 0; m < tab->M; m++) {
            wcsprintf("  %- 11.5g", tab->delta[m]);
        }
        wcsprintf("\n");
    }

    WCSPRINTF_PTR("    extrema: ", tab->extrema, "\n");
    dp = tab->extrema;
    for (n = 0; n < tab->nc/tab->K[0]; n++) {
        /* Array index. */
        j = n;
        cp = text;
        *cp = '\0';
        for (m = 1; m < tab->M; m++) {
            nd = (tab->K[m] < 10) ? 1 : 2;
            sprintf(cp, ",%*d", nd, j % tab->K[m] + 1);
            j /= tab->K[m];
            cp += strlen(cp);
        }

        wcsprintf("             (*,*%s)", text);
        for (m = 0; m < 2*tab->M; m++) {
            if (m == tab->M) wcsprintf("->  ");
            wcsprintf("  %- 11.5g", *(dp++));
        }
        wcsprintf("\n");
    }

    WCSPRINTF_PTR("        err: ", tab->err, "\n");
    if (tab->err) {
        wcserr_prt(tab->err, "             ");
    }

    /* Memory management. */
    wcsprintf("     m_flag: %d\n", tab->m_flag);
    wcsprintf("        m_M: %d\n", tab->m_M);
    wcsprintf("        m_N: %d\n", tab->m_N);

    WCSPRINTF_PTR("        m_K: ", tab->m_K, "");
    if (tab->m_K == tab->K) wcsprintf("  (= K)");
    wcsprintf("\n");

    WCSPRINTF_PTR("      m_map: ", tab->m_map, "");
    if (tab->m_map == tab->map) wcsprintf("  (= map)");
    wcsprintf("\n");

    WCSPRINTF_PTR("    m_crval: ", tab->m_crval, "");
    if (tab->m_crval == tab->crval) wcsprintf("  (= crval)");
    wcsprintf("\n");

    WCSPRINTF_PTR("    m_index: ", tab->m_index, "");
    if (tab->m_index == tab->index) wcsprintf("  (= index)");
    wcsprintf("\n");
    for (m = 0; m < tab->M; m++) {
        wcsprintf(" m_indxs[%d]: ", m);
        WCSPRINTF_PTR("", tab->m_indxs[m], "");
        if (tab->m_indxs[m] == tab->index[m]) wcsprintf("  (= index[%d])", m);
        wcsprintf("\n");
    }

    WCSPRINTF_PTR("    m_coord: ", tab->m_coord, "");
    if (tab->m_coord == tab->coord) wcsprintf("  (= coord)");
    wcsprintf("\n");

    return 0;
}