IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 27, 2005, 7:10:17 PM (21 years ago)
Author:
eugene
Message:

working on SkyRegion conversion

Location:
trunk/Ohana/src/libdvo
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/include/dvo.h

    r5448 r5451  
    335335
    336336/* skyregion APIs */
    337 int SkyTableSave (SkyTable *table, char *filename);
    338 SkyTable *SkyTableLoad (char *filename, int VERBOSE);
    339 SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE);
    340 SkyTable *SkyTableLoadOptimal (char *catdir, char *SKY_TABLE, char *GSCFILE, int VERBOSE);
    341 SkyRegion *SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec);
    342 SkyList *SkyListByPoint (SkyTable *table, double ra, double dec);
    343 SkyList *SkyListByRadius (SkyTable *table, int depth, double RA, double DEC, double radius);
    344 SkyList *SkyListByPatch (SkyTable *table, int depth, SkyRegion *patch);
    345 SkyList *SkyListByImage (SkyTable *table, int depth, Image *image, Coords *mosaic);
    346 SkyList *SkyListByBounds (SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax);
    347 SkyList *SkyListChildrenByBounds (SkyTable *table, int No, int depth, double Rmin, double Rmax, double Dmin, double Dmax);
    348 int SkyListFree (SkyList *list);
    349 int SkyTableFree (SkyTable *table);
     337int        SkyTableSave            PROTO((SkyTable *table, char *filename));
     338SkyTable  *SkyTableLoad            PROTO((char *filename, int VERBOSE));
     339SkyTable  *SkyTableFromGSC         PROTO((char *filename, int depth, int VERBOSE));
     340SkyTable  *SkyTableLoadOptimal     PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int depth, int VERBOSE));
     341int        SkyTableSetDepth        PROTO((SkyTable *sky, int depth));
     342SkyRegion *SkyRegionByPoint        PROTO((SkyTable *table, int depth, double ra, double dec));
     343SkyList   *SkyListByPoint          PROTO((SkyTable *table, double ra, double dec));
     344SkyList   *SkyListByRadius         PROTO((SkyTable *table, int depth, double RA, double DEC, double radius));
     345SkyList   *SkyListByPatch          PROTO((SkyTable *table, int depth, SkyRegion *patch));
     346SkyList   *SkyListByImage          PROTO((SkyTable *table, int depth, Image *image));
     347SkyList   *SkyListByBounds         PROTO((SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax));
     348SkyList   *SkyListChildrenByBounds PROTO((SkyTable *table, int No, int depth, double Rmin, double Rmax, double Dmin, double Dmax));
     349int        SkyListFree             PROTO((SkyList *list, int ELEMENTS));
     350int        SkyTableFree            PROTO((SkyTable *table));
     351int        SkyListSetFilenames     PROTO((SkyList *list, char *path, char *ext));
     352int        SkyTableSetFilenames    PROTO((SkyTable *sky, char *path, char *ext));
    350353
    351354# endif
  • trunk/Ohana/src/libdvo/src/skyregion_gsc.c

    r5448 r5451  
    33# define NDIV 4
    44
    5 int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 0,
    6                   597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48, 0};
    7 
    8 double DecBands[] = {0.0, +7.5, +15.0, +22.5, +30.0, +37.5, +45.0, +52.5, +60.0, +67.5, +75.0, +82.5, +90.0,
    9                      0.0, -7.5, -15.0, -22.5, -30.0, -37.5, -45.0, -52.5, -60.0, -67.5, -75.0, -82.5, -90.0};
    10 
    11 char *DecNames[] = {
    12   "n0000", "n0730", "n1500", "n2230", "n3000", "n3730", "n4500", "n5230", "n6000", "n6730", "n7500", "n8230", "none",
    13   "s0000", "s0730", "s1500", "s2230", "s3000", "s3730", "s4500", "s5230", "s6000", "s6730", "s7500", "s8230", "none",
    14 };
     5static int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 0,
     6                         597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48, 0};
     7
     8static double DecBands[] = {0.0, +7.5, +15.0, +22.5, +30.0, +37.5, +45.0, +52.5, +60.0, +67.5, +75.0, +82.5, +90.0,
     9                            0.0, -7.5, -15.0, -22.5, -30.0, -37.5, -45.0, -52.5, -60.0, -67.5, -75.0, -82.5, -90.0};
     10
     11static char *DecNames[] = {"n0000", "n0730", "n1500", "n2230", "n3000", "n3730", "n4500", "n5230", "n6000", "n6730", "n7500", "n8230", "none",
     12                           "s0000", "s0730", "s1500", "s2230", "s3000", "s3730", "s4500", "s5230", "s6000", "s6730", "s7500", "s8230", "none"};
    1513
    1614SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE) {
     
    6159  regions[Nr].child     =  TRUE;
    6260  regions[Nr].table     =  (depth == 0);
    63   regions[Nr].filename  =  NULL;
     61  regions[Nr].filename  =  (e_void) NULL;
    6462  strcpy (regions[Nr].name, "fullsky");
    6563 
     
    8179    regions[Nr].child     =  TRUE;
    8280    regions[Nr].table     =  (depth == 1);
    83     regions[Nr].filename  =  NULL;
     81    regions[Nr].filename  =  (e_void) NULL;
    8482    strcpy (regions[Nr].name, DecNames[i]);
    8583  }
     
    9593    regions[Nr].child     =  TRUE;
    9694    regions[Nr].table     =  (depth == 1);
    97     regions[Nr].filename  =  NULL;
     95    regions[Nr].filename  =  (e_void) NULL;
    9896    strcpy (regions[Nr].name, DecNames[i+13]);
    9997  }
     
    143141      regions[Nr].child    =  TRUE;
    144142      regions[Nr].table    =  (depth == 2);
    145       regions[Nr].filename =  NULL;
     143      regions[Nr].filename =  (e_void) NULL;
    146144      regions[Nr].childS   =  0;
    147145      regions[Nr].childE   =  0;
     
    181179        regions[Nr].child    =  FALSE;
    182180        regions[Nr].table    =  (depth == 3);
    183         regions[Nr].filename =  NULL;
     181        regions[Nr].filename =  (e_void) NULL;
    184182        regions[Nr].childS   =  0;
    185183        regions[Nr].childE   =  0;
  • trunk/Ohana/src/libdvo/src/skyregion_io.c

    r5448 r5451  
    99  SkyTable *skytable;
    1010  FILE *f;
     11  int i;
    1112 
    1213  f = fopen (filename, "r");
     
    4041  skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
    4142  for (i = 0; i < skytable[0].Nregions; i++) {
    42     skytable[0].regions[i].filename = NULL;
     43    skytable[0].regions[i].filename = (e_void) NULL;
    4344  }
    4445 
     
    8283}
    8384
    84 SkyTable *SkyTableLoadOptimal (char *catdir, char *SKY_TABLE, char *GSCFILE, int SKY_DEPTH, int VERBOSE) {
     85SkyTable *SkyTableLoadOptimal (char *catdir, char *skyfile, char *gscfile, int depth, int verbose) {
    8586
    8687  char filename[256];
     
    8990  int status;
    9091
    91   /* first option: CATDIR/SkyTable.fits */
    92   sprintf (filename, "%s/SkyTable.fits", CATDIR);
    93   check_permissions (filename);
     92  /* first option: catdir/SkyTable.fits */
     93  sprintf (filename, "%s/SkyTable.fits", catdir);
     94  check_file_access (filename, FALSE, verbose);
    9495
    9596  /* check for file existence */
    9697  status = stat (filename, &filestat);
    9798  if (status == 0) { /* file exists, are permissions OK? */
    98     sky = SkyTableLoad (filename, VERBOSE);
     99    sky = SkyTableLoad (filename, verbose);
    99100    if (sky == NULL) {
    100101      fprintf (stderr, "error loading sky table\n");
     
    105106
    106107  /* first option: SKY_TABLE */
    107   if ((SKY_TABLE != NULL) && (SKY_TABLE[0] != 0)) {
    108     status = stat (SKY_TABLE, &filestat);
     108  if ((skyfile != NULL) && (skyfile[0] != 0)) {
     109    status = stat (skyfile, &filestat);
    109110    if (status == 0) { /* file exists, are permissions OK? */
    110       sky = SkyTableLoad (SKY_TABLE, VERBOSE);
     111      sky = SkyTableLoad (skyfile, verbose);
    111112      if (sky == NULL) {
    112113        fprintf (stderr, "error loading sky table\n");
    113114        exit (1);
    114115      }
    115       SkyTableSetDepth (sky, SKY_DEPTH);
     116      SkyTableSetDepth (sky, depth);
    116117
    117118      /* write CATDIR copy */
    118       sprintf (filename, "%s/SkyTable.fits", CATDIR);
    119       check_permissions (filename);
     119      sprintf (filename, "%s/SkyTable.fits", catdir);
     120      check_file_access (filename, FALSE, verbose);
    120121      SkyTableSave (sky, filename);
    121122      fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
     
    124125  }
    125126
    126   sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE);
     127  sky = SkyTableFromGSC (gscfile, depth, verbose);
    127128  if (sky == NULL) {
    128129    fprintf (stderr, "error loading sky table\n");
     
    131132
    132133  /* write CATDIR copy */
    133   sprintf (filename, "%s/SkyTable.fits", CATDIR);
    134   check_permissions (filename);
     134  sprintf (filename, "%s/SkyTable.fits", catdir);
     135  check_file_access (filename, FALSE, verbose);
    135136  SkyTableSave (sky, filename);
    136137  fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
     
    147148  for (i = 0; i < list[0].Nregions; i++) {
    148149    sprintf (line, "%s/%s.%s", path, list[0].regions[i][0].name, ext);
    149     list[0].regions[i][0].filename = strcreate (line);
     150    list[0].regions[i][0].filename = (e_void) strcreate (line);
    150151  }
    151152
     
    153154}
    154155
     156int SkyTableSetFilenames (SkyTable *sky, char *path, char *ext) {
     157
     158  int i;
     159  char line[256];
     160
     161  // this generates the names, be sure to free when not needed
     162  for (i = 0; i < sky[0].Nregions; i++) {
     163    sprintf (line, "%s/%s.%s", path, sky[0].regions[i].name, ext);
     164    sky[0].regions[i].filename = (e_void) strcreate (line);
     165  }
     166
     167  return (TRUE);
     168}
     169
  • trunk/Ohana/src/libdvo/src/skyregion_ops.c

    r5448 r5451  
    121121SkyList *SkyListByImage (SkyTable *table, int depth, Image *image) {
    122122
    123   int i, j;
     123  int j;
    124124  SkyList *list;
    125125  double r, d, X[4], Y[4];
     
    172172    }
    173173    list[0].Nregions += extra[0].Nregions;
    174     SkyListFree (extra);
     174    SkyListFree (extra, FALSE);
    175175  } else {
    176176    list = SkyListChildrenByBounds (table, -1, depth, Rmin, Rmax, Dmin, Dmax);
     
    226226      }
    227227      Nnew += children[0].Nregions;
    228       SkyListFree (children);
     228      SkyListFree (children, FALSE);
    229229    } else {
    230230      list[0].regions[Nnew] = &region[i];
     
    254254}
    255255
    256 int SkyListFree (SkyList *list) {
     256int SkyTableSetDepth (SkyTable *sky, int depth) {
     257
     258  int i;
     259
     260  for (i = 0; i < sky[0].Nregions; i++) {
     261    sky[0].regions[i].table = (sky[0].regions[i].depth == depth);
     262  }
     263  return (TRUE);
     264}
     265
     266int SkyListFree (SkyList *list, int ELEMENTS) {
     267
     268  int i;
    257269
    258270  if (list == NULL) return (TRUE);
    259271  if (list[0].regions != NULL) {
     272    if (ELEMENTS) {
     273      for (i = 0; i < list[0].Nregions; i++) {
     274        if (list[0].regions[i][0].filename != (e_void) NULL) {
     275          free ((size_t *) list[0].regions[i][0].filename);
     276        }
     277        free (list[0].regions[i]);
     278      }
     279    }
    260280    free (list[0].regions);
    261281  }
     
    267287int SkyTableFree (SkyTable *table) {
    268288
     289  int i;
     290
    269291  if (table == NULL) return (TRUE);
    270292  if (table[0].regions != NULL) {
    271293    for (i = 0; i < table[0].Nregions; i++) {
    272       if (table[0].regions[i].filename != NULL) {
    273         free (table[0].regions[i].filename);
     294      if (table[0].regions[i].filename != (e_void) NULL) {
     295        free ((size_t *) table[0].regions[i].filename);
    274296      }
    275297    }
Note: See TracChangeset for help on using the changeset viewer.