Changeset 37389
- Timestamp:
- Sep 12, 2014, 9:24:36 AM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140904/Ohana/src
- Files:
-
- 2 added
- 6 edited
-
libautocode/def/stellarParams.d (added)
-
libdvo/include/dvo.h (modified) (5 diffs)
-
libdvo/src/AstromOffsetMapIO.c (modified) (3 diffs)
-
libdvo/src/AstromOffsetMapOps.c (modified) (1 diff)
-
libdvo/src/astrom_maps.c (added)
-
libdvo/src/dvo_catalog.c (modified) (11 diffs)
-
libdvo/src/dvo_catalog_create.c (modified) (3 diffs)
-
libdvo/src/dvo_catalog_split.c (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/include/dvo.h
r37386 r37389 653 653 Lensobj *lensobj; 654 654 655 StarPar *starpar; 656 655 657 int Nsecfilt; /* number of secfilt entries for each average entry */ 656 off_t Naverage, Nmeasure, Nmissing, Nlensing, Nlensobj, Ns ecf_mem; /* current number of each component in memory */657 off_t Naves_disk, Nmeas_disk, Nmiss_disk, Nlensing_disk, Nlensobj_disk, Ns ecf_disk; /* current number of each component on disk */658 off_t Naves_off, Nmeas_off, Nmiss_off, Nlensing_off, Nlensobj_off, Ns ecf_off; /* index of first loaded data value */658 off_t Naverage, Nmeasure, Nmissing, Nlensing, Nlensobj, Nstarpar, Nsecf_mem; /* current number of each component in memory */ 659 off_t Naves_disk, Nmeas_disk, Nmiss_disk, Nlensing_disk, Nlensobj_disk, Nstarpar_disk, Nsecf_disk; /* current number of each component on disk */ 660 off_t Naves_off, Nmeas_off, Nmiss_off, Nlensing_off, Nlensobj_off, Nstarpar_off, Nsecf_off; /* index of first loaded data value */ 659 661 660 662 // note that we use these for the full-sky relphot analysis … … 677 679 struct Catalog *lensing_catalog; /* lensing catalog data (split) */ 678 680 struct Catalog *lensobj_catalog; /* lensobj catalog data (split) */ 681 struct Catalog *starpar_catalog; /* starpar catalog data (split) */ 679 682 680 683 unsigned int objID; … … 869 872 Lensing *FtableToLensing (FTable *ftable, off_t *Nlensing, char *format); 870 873 Lensobj *FtableToLensobj (FTable *ftable, off_t *Nlensobj, char *format); 874 StarPar *FtableToStarPar (FTable *ftable, off_t *Nstarpar, char *format); 871 875 int FtableToImage (FTable *ftable, Header *theader, char *format); 872 876 … … 876 880 int LensingToFtable (FTable *ftable, Lensing *lensing, off_t Nlensing, char format); 877 881 int LensobjToFtable (FTable *ftable, Lensobj *lensobj, off_t Nlensobj, char format); 882 int StarParToFtable (FTable *ftable, StarPar *starpar, off_t Nstarpar, char format); 878 883 int ImageToFtable (FTable *ftable, Header *theader, char format); 879 884 int ImageToVtable (VTable *vtable, Header *theader, char format); … … 1003 1008 void dvo_lensobj_init (Lensobj *lensobj, int toZero); 1004 1009 1010 void dvo_starpar_init (StarPar *starpar); 1011 1005 1012 void InitRegionHosts (RegionHostInfo *hosts, int Nhosts, int NHOSTS); 1006 1013 void FreeRegionHosts (RegionHostInfo *hosts, int Nhosts); -
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/AstromOffsetMapIO.c
r37387 r37389 107 107 ALLOCATE (table->map, AstromOffsetMap, Nmap); 108 108 109 // find the max value of ID109 // find the max value of imageID 110 110 int MaxID = 0; 111 111 for (i = 0; i < Nmap; i++) { 112 MaxID = MAX(map_disk[i]. ID, MaxID);112 MaxID = MAX(map_disk[i].imageID, MaxID); 113 113 } 114 114 MaxID ++; // we want the outer bound, not the last value … … 119 119 table->IDtoSeq[i] = -1; 120 120 } 121 table->MaxID = MaxID ;121 table->MaxID = MaxID - 1; 122 122 123 123 // assign the ID values 124 124 for (i = 0; i < Nmap; i++) { 125 int ID = map_disk[i]. ID;126 myAssert (table->IDtoSeq[ID] == -1, "oops, duplicate mapIDs");125 int ID = map_disk[i].imageID; 126 myAssert (table->IDtoSeq[ID] == -1, "oops, duplicate image IDs"); 127 127 table->IDtoSeq[ID] = i; 128 128 } … … 162 162 163 163 AstromOffsetMap_Disk_6x6 *map_disk = NULL; 164 ALLOCATE (map_disk, AstromOffsetMap_Disk_6x6, Nmap);164 ALLOCATE (map_disk, AstromOffsetMap_Disk_6x6, table->Nmap); 165 165 166 166 // assign the map values (this allocates just the area needed for each image, not the -
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/AstromOffsetMapOps.c
r37387 r37389 65 65 int AstromOffsetMapFit (AstromOffsetMap *map, float *x, float *y, float *f, int Npts, int xdir) { 66 66 67 int i, ix, iy, jx, jy;67 int i, j, ix, iy, jx, jy; 68 68 69 69 // choose to map direction: -
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog.c
r37356 r37389 437 437 438 438 // init all data, or just catalog data 439 void dvo_starpars_init (StarPars *starpars) { 440 starpars->galLat = NAN; 441 starpars->galLon = NAN; 442 starpars->MKtype = NAN; 443 starpars->Par = NAN; 444 starpars->dPar = NAN; 445 starpars->uRA = NAN; 446 starpars->uDEC = NAN; 447 starpars->averef = -1; 448 starpars->objID = -1; 449 starpars->catID = -1; 450 } 451 452 // init all data, or just catalog data 439 453 void dvo_catalog_init (Catalog *catalog, int complete) { 440 454 … … 462 476 catalog[0].lensobj = NULL; 463 477 478 catalog[0].starpar = NULL; 479 464 480 catalog[0].averageT = NULL; 465 481 catalog[0].measureT = NULL; … … 477 493 catalog[0].Nlensobj = 0; 478 494 495 catalog[0].Nstarpar = 0; 496 479 497 catalog[0].Naves_disk = 0; 480 498 catalog[0].Nmeas_disk = 0; … … 485 503 catalog[0].Nlensobj_disk = 0; 486 504 505 catalog[0].Nstarpar_disk = 0; 506 487 507 catalog[0].Naves_off = 0; 488 508 catalog[0].Nmeas_off = 0; … … 492 512 catalog[0].Nlensing_off = 0; 493 513 catalog[0].Nlensobj_off = 0; 514 515 catalog[0].Nstarpar_off = 0; 494 516 495 517 /* pointers to SPLIT data files */ … … 499 521 catalog[0].lensing_catalog = NULL; 500 522 catalog[0].lensobj_catalog = NULL; 523 catalog[0].starpar_catalog = NULL; 501 524 502 525 /* pointers for data manipulation */ … … 560 583 if (catalog[0].lensing_catalog) dvo_catalog_unlock (catalog[0].lensing_catalog); 561 584 if (catalog[0].lensobj_catalog) dvo_catalog_unlock (catalog[0].lensobj_catalog); 585 if (catalog[0].starpar_catalog) dvo_catalog_unlock (catalog[0].starpar_catalog); 562 586 } 563 587 return (1); … … 835 859 free (catalog[0].lensobj_catalog); 836 860 } 861 if (catalog[0].starpar_catalog) { 862 free (catalog[0].starpar_catalog[0].filename); 863 dvo_catalog_free (catalog[0].starpar_catalog); 864 free (catalog[0].starpar_catalog); 865 } 837 866 } 838 867 dvo_catalog_free_data (catalog); … … 873 902 catalog[0].Nlensobj = 0; 874 903 catalog[0].lensobj = NULL; 904 } 905 if (catalog[0].starpar) { 906 free (catalog[0].starpar); 907 catalog[0].Nstarpar = 0; 908 catalog[0].starpar = NULL; 875 909 } 876 910 if (catalog[0].nOwn_t) { free (catalog[0].nOwn_t); catalog[0].nOwn_t = NULL; } … … 985 1019 } 986 1020 } 1021 if (catalog[0].starpar_catalog != NULL) { 1022 if (catalog[0].Nstarpar_disk == 0) { 1023 // need to relock (and re-open) file for close elsewhere 1024 status = dvo_catalog_lock (catalog[0].starpar_catalog, lockmode); 1025 } else { 1026 if (!dvo_catalog_backup (catalog[0].starpar_catalog, FALSE)) { 1027 return FALSE; 1028 } 1029 } 1030 } 987 1031 } 988 1032 return TRUE; … … 1036 1080 } 1037 1081 } 1082 if ((catalog[0].starpar_catalog != NULL) && (catalog[0].Nstarpar_disk > 0)) { 1083 if (!dvo_catalog_unlink_backup (catalog[0].starpar_catalog, FALSE)) { 1084 return FALSE; 1085 } 1086 } 1038 1087 } 1039 1088 return TRUE; -
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog_create.c
r37035 r37389 95 95 free (file); 96 96 97 /* define starpar catalog file */ 98 ALLOCATE (catalog[0].starpar_catalog, Catalog, 1); 99 dvo_catalog_init (catalog[0].starpar_catalog, TRUE); 100 101 /* create basic data for starpar catalog file */ 102 gfits_create_header (&catalog[0].starpar_catalog[0].header); 103 ALLOCATE (catalog[0].starpar_catalog[0].filename, char, length); 104 sprintf (catalog[0].starpar_catalog[0].filename, "%s/%s.cpy", path, root); 105 file = filebasename (catalog[0].starpar_catalog[0].filename); 106 gfits_modify (&catalog[0].header, "STARPAR", "%s", 1, file); 107 free (file); 108 97 109 free (path); 98 110 free (root); … … 117 129 } 118 130 if (dvo_catalog_lock (catalog[0].lensobj_catalog, catalog[0].lockmode) != DVO_CAT_OPEN_EMPTY) { 131 fprintf (stderr, "error with file lock\n"); 132 exit (2); 133 } 134 if (dvo_catalog_lock (catalog[0].starpar_catalog, catalog[0].lockmode) != DVO_CAT_OPEN_EMPTY) { 119 135 fprintf (stderr, "error with file lock\n"); 120 136 exit (2); … … 146 162 ALLOCATE (catalog[0].lensing, Lensing, 1); 147 163 ALLOCATE (catalog[0].lensobj, Lensobj, 1); 164 ALLOCATE (catalog[0].starpar, StarPar, 1); 148 165 149 166 /* setup secondary filters to match photcodes: -
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_catalog_split.c
r37035 r37389 134 134 if (!gfits_scan (&catalog[0].header, name, "%s", 1, string)) { 135 135 free (path); 136 // databases created prior to ~2014.07.01 did not have the LENSING or LENSOBJpaths in their headers.136 // databases created prior to ~2014.07.01 did not have the LENSING, LENSOBJ, STARPAR paths in their headers. 137 137 // in these cases, we do not try to lock or open the relevant file 138 138 if (!strcmp (name, "LENSING")) return (DVO_CAT_OPEN_EMPTY); 139 139 if (!strcmp (name, "LENSOBJ")) return (DVO_CAT_OPEN_EMPTY); 140 if (!strcmp (name, "STARPAR")) return (DVO_CAT_OPEN_EMPTY); 140 141 return (DVO_CAT_OPEN_FAIL); 141 142 } … … 182 183 off_t Nlensing; 183 184 off_t Nlensobj; 185 off_t Nstarpar; 184 186 off_t Nitems; 185 187 int status, Nsecfilt; … … 196 198 197 199 /* get the components from the header - these duplicate information in the split files (NAXIS2) */ 198 // NSTARS, NMEAS, NMISS are required; NLENSING, NLENSOBJ are not (0 if not found)200 // NSTARS, NMEAS, NMISS are required; NLENSING, NLENSOBJ, NSTARPAR are not (0 if not found) 199 201 if (!gfits_scan (&catalog[0].header, "NSTARS", OFF_T_FMT, 1, &Naverage)) return (FALSE); 200 202 if (!gfits_scan (&catalog[0].header, "NMEAS", OFF_T_FMT, 1, &Nmeasure)) return (FALSE); … … 203 205 if (!gfits_scan (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, &Nlensing)) Nlensing = 0; 204 206 if (!gfits_scan (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, &Nlensobj)) Nlensobj = 0; 207 if (!gfits_scan (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, &Nstarpar)) Nstarpar = 0; 205 208 206 209 /* the OBJID is a counter that uniquely defines an average entry and never changes. if … … 223 226 catalog[0].Nlensing_disk = Nlensing; 224 227 catalog[0].Nlensobj_disk = Nlensobj; 228 catalog[0].Nstarpar_disk = Nstarpar; 225 229 226 230 /** Nsecfilt is unusual: it does not list the number of data items in the table … … 235 239 catalog[0].lensing = NULL; 236 240 catalog[0].lensobj = NULL; 241 catalog[0].starpar = NULL; 237 242 238 243 /*** Average Table ***/ … … 465 470 gfits_free_header (&header); 466 471 472 /*** Starpar Table ***/ 473 if (!(catalog[0].catflags & SKIP_STARPAR)) { 474 // unless we specify 'skip', we still need to load the 475 status = dvo_catalog_open_subcat (catalog, &catalog[0].starpar_catalog, ftable.header, "STARPAR", VERBOSE); 476 if (status == DVO_CAT_OPEN_FAIL) { 477 return (FALSE); 478 } 479 // the Starpar file need not exist, unless we expect data to exist 480 if ((status == DVO_CAT_OPEN_EMPTY) && (catalog[0].Nstarpar_disk > 0)) { 481 return (FALSE); 482 } 483 } 484 if ((status != DVO_CAT_OPEN_EMPTY) && (catalog[0].catflags & LOAD_STARPAR)) { 485 // only read the Starpar table if the file actually exists 486 /* read Starpar table data */ 487 if (!gfits_fread_ftable_data (catalog[0].starpar_catalog[0].f, &ftable, FALSE)) { 488 if (VERBOSE) fprintf (stderr, "can't read table starpar data\n"); 489 return (FALSE); 490 } 491 /* convert data format to internal : returns number of row read in Nstarpar */ 492 catalog[0].starpar = FtableToStarpar (&ftable, &Nstarpar, &catalog[0].catformat); 493 if (Nstarpar != catalog[0].Nstarpar_disk) { 494 fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n", Nstarpar, catalog[0].Nstarpar_disk); 495 } 496 catalog[0].Nstarpar = catalog[0].Nstarpar_disk; 497 catalog[0].Nstarpar_off = 0; 498 } else { 499 if (catalog[0].starpar_catalog) { 500 gfits_free_header (&catalog[0].starpar_catalog[0].header); 501 } else { 502 ALLOCATE (catalog[0].starpar_catalog, Catalog, 1); 503 dvo_catalog_init (catalog[0].starpar_catalog, TRUE); 504 } 505 gfits_create_header (&catalog[0].starpar_catalog[0].header); 506 ALLOCATE (catalog[0].starpar, Starpar, 1); 507 catalog[0].Nstarpar = 0; 508 catalog[0].Nstarpar_off = catalog[0].Nstarpar_disk; 509 } 510 gfits_free_header (&header); 511 467 512 return (TRUE); 468 513 } … … 473 518 474 519 off_t Nbytes; 475 off_t Naverage, Nexpect, Nitems, Nmeasure, Nmissing, Nlensing, Nlensobj ;520 off_t Naverage, Nexpect, Nitems, Nmeasure, Nmissing, Nlensing, Nlensobj, Nstarpar; 476 521 Header header; 477 522 FTable ftable; … … 675 720 } 676 721 722 // XXX check the open status of the catalog 723 if (catalog[0].catflags & LOAD_STARPAR) { 724 725 Catalog *subcat = catalog[0].starpar_catalog; 726 727 /* move pointer past header -- must be already read (load_catalog) */ 728 Nbytes = subcat[0].header.datasize + gfits_data_size (&subcat[0].header); 729 fseeko (subcat[0].f, Nbytes, SEEK_SET); 730 731 /* read Starpar table header */ 732 if (!gfits_fread_header (subcat[0].f, &header)) { 733 if (VERBOSE) fprintf (stderr, "can't read table starpar header"); 734 return (FALSE); 735 } 736 /* read Starpar table data : format is irrelevant here */ 737 if (!gfits_fread_ftable_range (subcat[0].f, &ftable, start, Nrows)) { 738 if (VERBOSE) fprintf (stderr, "can't read table starpar data"); 739 return (FALSE); 740 } 741 742 /* convert data format to internal : returns number of row read in Nstarpar */ 743 catalog[0].starpar = FtableToStarpar (&ftable, &Nstarpar, &catalog[0].catformat); 744 if (Nstarpar != Nrows) { 745 // XXX this condition denotes the eof has been reached; not an error or a warning 746 // fprintf (stderr, "Warning: mismatch between Nstarpar in PHU and Table headers ("OFF_T_FMT" vs "OFF_T_FMT")\n", Nstarpar, Nrows); 747 } 748 gfits_free_header (&header); 749 catalog[0].Nstarpar = Nstarpar; 750 catalog[0].Nstarpar_off = start; 751 } 752 677 753 return (TRUE); 678 754 } … … 686 762 SecFilt *primary, *secfilt; 687 763 int Nsecfilt; 688 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new ;764 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new; 689 765 off_t first, start, Nrows; 690 766 … … 719 795 Nlensing_disk_new = MAX (catalog[0].Nlensing_disk, catalog[0].Nlensing + catalog[0].Nlensing_off); 720 796 Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off); 797 Nstarpar_disk_new = MAX (catalog[0].Nstarpar_disk, catalog[0].Nstarpar + catalog[0].Nstarpar_off); 721 798 722 799 /* make sure header is consistent with data */ … … 727 804 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 728 805 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 806 gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, Nstarpar_disk_new); 729 807 gfits_modify_alt (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 730 808 gfits_modify (&catalog[0].header, "OBJID", "%d", 1, catalog[0].objID); … … 893 971 if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) { 894 972 fprintf (stderr, "trouble writing Lensobj table\n"); 973 goto failure; 974 } 975 gfits_free_header (&header); 976 gfits_free_table (&ftable); 977 } 978 979 /*** Lensobj Table ***/ 980 if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].starpar != NULL)) { 981 982 first = 0; // first row in memory to write 983 start = catalog[0].Nstarpar_off; // first disk row to write 984 Nrows = catalog[0].Nstarpar - first; 985 986 assert (Nrows >= 0); 987 assert (first >= 0); 988 assert (first <= catalog[0].Nstarpar); 989 assert (catalog[0].Nstarpar_disk >= catalog[0].Nstarpar_off); 990 991 // convert to external table format (note that the block above does not damage or free catalog.average) 992 if (!StarparToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat)) { 993 fprintf (stderr, "trouble converting format\n"); 994 goto failure; 995 } 996 997 // write out Starpar table 998 if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) { 999 fprintf (stderr, "trouble writing Starpar table\n"); 895 1000 goto failure; 896 1001 } … … 925 1030 SecFilt *primary, *secfilt; 926 1031 int Nsecfilt; 927 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new ;1032 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new; 928 1033 off_t first, start, Nrows; 929 1034 … … 956 1061 if (catalog[0].Nlensobj_off > 0) { 957 1062 fprintf (stderr, "ERROR: only partial catalog (Lensobj) was loaded\n"); 1063 goto failure; 1064 } 1065 if (catalog[0].Nstarpar_off > 0) { 1066 fprintf (stderr, "ERROR: only partial catalog (Starpar) was loaded\n"); 958 1067 goto failure; 959 1068 } … … 984 1093 Nlensing_disk_new = catalog[0].Nlensing; 985 1094 Nlensobj_disk_new = catalog[0].Nlensobj; 1095 Nstarpar_disk_new = catalog[0].Nstarpar; 986 1096 987 1097 /* make sure header is consistent with data */ … … 992 1102 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 993 1103 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 1104 gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, Nstarpar_disk_new); 994 1105 gfits_modify_alt (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 995 1106 gfits_modify (&catalog[0].header, "OBJID", "%d", 1, catalog[0].objID); … … 1139 1250 /*** Lensobj Table ***/ 1140 1251 if ((catalog[0].catflags & LOAD_LENSOBJ) && (catalog[0].lensobj != NULL)) { 1252 1253 first = 0; // first row in memory to write 1254 start = catalog[0].Nlensobj_off; // first disk row to write 1255 Nrows = catalog[0].Nlensobj - first; 1256 1257 assert (Nrows >= 0); 1258 assert (first >= 0); 1259 assert (first <= catalog[0].Nlensobj); 1260 assert (catalog[0].Nlensobj_disk >= catalog[0].Nlensobj_off); 1261 1262 // convert to external table format 1263 if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat)) { 1264 fprintf (stderr, "trouble converting format\n"); 1265 goto failure; 1266 } 1267 1268 // write out Lensobj table 1269 if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) { 1270 fprintf (stderr, "trouble writing Lensobj table\n"); 1271 goto failure; 1272 } 1273 gfits_free_header (&header); 1274 gfits_free_table (&ftable); 1275 } 1276 1277 /*** Starpar Table ***/ 1278 if ((catalog[0].catflags & LOAD_STARPAR) && (catalog[0].lensobj != NULL)) { 1141 1279 1142 1280 first = 0; // first row in memory to write … … 1189 1327 SecFilt *primary, *secfilt; 1190 1328 int Nsecfilt; 1191 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new ;1329 off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nlensobj_disk_new; 1192 1330 off_t first, start, Nrows; 1193 1331 … … 1221 1359 Nlensing_disk_new = MAX (catalog[0].Nlensing_disk, catalog[0].Nlensing + catalog[0].Nlensing_off); 1222 1360 Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off); 1361 Nlensobj_disk_new = MAX (catalog[0].Nlensobj_disk, catalog[0].Nlensobj + catalog[0].Nlensobj_off); 1223 1362 1224 1363 /* make sure header is consistent with data */ … … 1229 1368 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 1230 1369 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 1370 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 1231 1371 gfits_modify_alt (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 1232 1372 gfits_modify (&catalog[0].header, "OBJID", "%d", 1, catalog[0].objID); … … 1371 1511 if (!dvo_catalog_save_subcat (catalog[0].lensing_catalog, &ftable, start, Nrows, catalog[0].Nlensing_disk, Nlensing_disk_new)) { 1372 1512 fprintf (stderr, "trouble writing Lensing table\n"); 1513 goto failure; 1514 } 1515 gfits_free_header (&header); 1516 gfits_free_table (&ftable); 1517 } 1518 1519 /*** Lensobj Table ***/ 1520 if (catalog[0].lensobj != NULL) { 1521 1522 first = catalog[0].Nlensobj_disk - catalog[0].Nlensobj_off; // first row in memory to write 1523 start = catalog[0].Nlensobj_disk; // first disk row to write 1524 Nrows = catalog[0].Nlensobj - first; 1525 1526 assert (Nrows >= 0); 1527 assert (first >= 0); 1528 assert (first <= catalog[0].Nlensobj); 1529 assert (catalog[0].Nlensobj_disk >= catalog[0].Nlensobj_off); 1530 1531 // convert to external table format 1532 // XXX does catalog.lensobj have averef correctly set up? 1533 if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat)) { 1534 fprintf (stderr, "trouble converting format\n"); 1535 goto failure; 1536 } 1537 1538 // write out Lensobj table 1539 if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) { 1540 fprintf (stderr, "trouble writing Lensobj table\n"); 1373 1541 goto failure; 1374 1542 }
Note:
See TracChangeset
for help on using the changeset viewer.
