- Timestamp:
- Jan 13, 2016, 4:18:52 PM (11 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 5 edited
-
include/dvodb.h (modified) (1 diff)
-
src/HostTable.c (modified) (1 diff)
-
src/dbExtractImages.c (modified) (1 diff)
-
src/dbFields.c (modified) (1 diff)
-
src/dvo_catalog_split.c (modified) (29 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/include/dvodb.h
r39269 r39308 404 404 IMAGE_Y_UL_FP, 405 405 IMAGE_Y_UR_FP, 406 IMAGE_R_LL, 407 IMAGE_R_LR, 408 IMAGE_R_UL, 409 IMAGE_R_UR, 410 IMAGE_D_LL, 411 IMAGE_D_LR, 412 IMAGE_D_UL, 413 IMAGE_D_UR, 406 414 IMAGE_X_ERR_SYS, 407 415 IMAGE_Y_ERR_SYS, -
trunk/Ohana/src/libdvo/src/HostTable.c
r39293 r39308 63 63 64 64 // can I access the file for read? (not backup, not readwrite, not verbose) 65 int status = check_file_access (filename, FALSE, FALSE, FALSE); 66 return status; 65 if (!check_file_access (filename, FALSE, FALSE, FALSE)) { 66 free (filename); 67 return FALSE; 68 } 69 70 /* check permission to read file */ 71 struct stat filestat; 72 73 int status = stat (filename, &filestat); 74 if (status == 0) { /* file exists, are permissions OK? */ 75 uid_t uid = getuid(); 76 gid_t gid = getgid(); 77 78 if (uid == filestat.st_uid) { 79 if (filestat.st_mode & S_IRUSR) return TRUE; 80 } 81 if (gid == filestat.st_gid) { 82 if (filestat.st_mode & S_IRGRP) return TRUE; 83 } 84 if (filestat.st_mode & S_IROTH) return TRUE; 85 } 86 87 return FALSE; 67 88 } 68 89 -
trunk/Ohana/src/libdvo/src/dbExtractImages.c
r38986 r39308 348 348 break; 349 349 350 case IMAGE_R_LL: 351 case IMAGE_D_LL: 352 XY_to_RD (&x, &y, 0.0, 0.0, &image[N].coords); 353 value.Flt = (field->ID == IMAGE_R_LL) ? x : y; 354 break; 355 case IMAGE_R_LR: 356 case IMAGE_D_LR: 357 XY_to_RD (&x, &y, image[N].NX, 0.0, &image[N].coords); 358 value.Flt = (field->ID == IMAGE_R_LR) ? x : y; 359 break; 360 case IMAGE_R_UL: 361 case IMAGE_D_UL: 362 XY_to_RD (&x, &y, 0.0, image[N].NY, &image[N].coords); 363 value.Flt = (field->ID == IMAGE_R_UL) ? x : y; 364 break; 365 case IMAGE_R_UR: 366 case IMAGE_D_UR: 367 XY_to_RD (&x, &y, image[N].NX, image[N].NY, &image[N].coords); 368 value.Flt = (field->ID == IMAGE_R_UR) ? x : y; 369 break; 370 350 371 case IMAGE_X_ERR_SYS: 351 372 value.Flt = image[N].dXpixSys; -
trunk/Ohana/src/libdvo/src/dbFields.c
r39269 r39308 867 867 if (!strcasecmp (fieldName, "Y_UR_FP" )) ESCAPE (IMAGE_Y_UR_FP, OPIHI_FLT); 868 868 869 if (!strcasecmp (fieldName, "R_LL" )) ESCAPE (IMAGE_R_LL, OPIHI_FLT); 870 if (!strcasecmp (fieldName, "R_LR" )) ESCAPE (IMAGE_R_LR, OPIHI_FLT); 871 if (!strcasecmp (fieldName, "R_UL" )) ESCAPE (IMAGE_R_UL, OPIHI_FLT); 872 if (!strcasecmp (fieldName, "R_UR" )) ESCAPE (IMAGE_R_UR, OPIHI_FLT); 873 if (!strcasecmp (fieldName, "D_LL" )) ESCAPE (IMAGE_D_LL, OPIHI_FLT); 874 if (!strcasecmp (fieldName, "D_LR" )) ESCAPE (IMAGE_D_LR, OPIHI_FLT); 875 if (!strcasecmp (fieldName, "D_UL" )) ESCAPE (IMAGE_D_UL, OPIHI_FLT); 876 if (!strcasecmp (fieldName, "D_UR" )) ESCAPE (IMAGE_D_UR, OPIHI_FLT); 877 869 878 if (!strcasecmp (fieldName, "dX_SYS" )) ESCAPE (IMAGE_X_ERR_SYS, OPIHI_FLT); 870 879 if (!strcasecmp (fieldName, "dY_SYS" )) ESCAPE (IMAGE_Y_ERR_SYS, OPIHI_FLT); -
trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
r38986 r39308 815 815 816 816 /* save_catalog_split writes all data currently in memory to disk */ 817 // this function cannot shrink the output file sizes 817 818 int dvo_catalog_save_split (Catalog *catalog, char VERBOSE) { 818 819 … … 862 863 gfits_modify (&catalog[0].header, "NMEAS", OFF_T_FMT, 1, Nmeasure_disk_new); 863 864 gfits_modify (&catalog[0].header, "NMISS", OFF_T_FMT, 1, Nmissing_disk_new); 864 gfits_modify (&catalog[0].header, "NSECFILT", "%d",1, Nsecfilt);865 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt); 865 866 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 866 867 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 867 868 gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, Nstarpar_disk_new); 868 gfits_modify (&catalog[0].header, "NGALPHOT", OFF_T_FMT, 1, Ngalphot_disk_new);869 gfits_modify (&catalog[0].header, "NGALPHOT", OFF_T_FMT, 1, Ngalphot_disk_new); 869 870 870 871 gfits_modify_alt (&catalog[0].header, "EXTEND", "%t", 1, TRUE); … … 956 957 } 957 958 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 958 959 959 960 960 gfits_free_header (&header); … … 1484 1484 int Nsecfilt; 1485 1485 off_t Naverage_disk_new, Nmeasure_disk_new, Nmissing_disk_new, Nsecfilt_disk_new, Nlensing_disk_new, Nlensobj_disk_new, Nstarpar_disk_new, Ngalphot_disk_new; 1486 off_t first, start, Nrows;1487 1486 1488 1487 ftable.header = &header; … … 1491 1490 primary = NULL; 1492 1491 1493 // skip empty catalogs: it is illegal to have Measures without corresponding Averages1492 // it is illegal to use this function in a partial load mode 1494 1493 if (catalog[0].Naverage_off > 0) { 1495 1494 fprintf (stderr, "ERROR: only partial catalog (Average) was loaded\n"); … … 1525 1524 } 1526 1525 1526 // skip empty catalogs: it is illegal to have Measures without corresponding Averages 1527 1527 Naverage_disk_new = catalog[0].Naverage; 1528 1528 if (Naverage_disk_new == 0) { … … 1545 1545 } 1546 1546 1547 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1548 1547 1549 Nmeasure_disk_new = catalog[0].Nmeasure; 1548 1550 Nmissing_disk_new = catalog[0].Nmissing; … … 1554 1556 1555 1557 /* make sure header is consistent with data */ 1556 gfits_modify (&catalog[0].header, "NSTARS", OFF_T_FMT, 1, Naverage_disk_new); 1557 gfits_modify (&catalog[0].header, "NMEAS", OFF_T_FMT, 1, Nmeasure_disk_new); 1558 gfits_modify (&catalog[0].header, "NMISS", OFF_T_FMT, 1, Nmissing_disk_new); 1559 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt); 1560 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 1561 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 1562 gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, Nstarpar_disk_new); 1563 gfits_modify (&catalog[0].header, "NGALPHOT", OFF_T_FMT, 1, Ngalphot_disk_new); 1558 gfits_modify (&catalog[0].header, "NSTARS", OFF_T_FMT, 1, Naverage_disk_new); 1559 gfits_modify (&catalog[0].header, "NMEAS", OFF_T_FMT, 1, Nmeasure_disk_new); 1560 gfits_modify (&catalog[0].header, "NMISS", OFF_T_FMT, 1, Nmissing_disk_new); 1561 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt); 1562 gfits_modify (&catalog[0].header, "NLENSING", OFF_T_FMT, 1, Nlensing_disk_new); 1563 gfits_modify (&catalog[0].header, "NLENSOBJ", OFF_T_FMT, 1, Nlensobj_disk_new); 1564 gfits_modify (&catalog[0].header, "NSTARPAR", OFF_T_FMT, 1, Nstarpar_disk_new); 1565 gfits_modify (&catalog[0].header, "NGALPHOT", OFF_T_FMT, 1, Ngalphot_disk_new); 1566 1564 1567 gfits_modify_alt (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 1565 1568 gfits_modify (&catalog[0].header, "OBJID", "%d", 1, catalog[0].objID); 1566 1569 1567 /* in split mode, we can save only part of the data */ 1570 /* in split mode, we can save only part of the data, but not using this function (use e.g., dvo_catalog_update_split) */ 1571 1572 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1568 1573 1569 1574 /*** Average Table ***/ 1570 1575 if ((catalog[0].catflags & DVO_LOAD_AVERAGE) && (catalog[0].average != NULL)) { 1571 1576 1572 first = 0; // first row in memory to write1573 start = catalog[0].Naverage_off; // first disk row to write1574 Nrows = catalog[0].Naverage - first;1577 off_t first = 0; // first row in memory to write 1578 off_t start = catalog[0].Naverage_off; // first disk row to write 1579 off_t Nrows = catalog[0].Naverage - first; 1575 1580 1576 1581 assert (Nrows >= 0); … … 1579 1584 assert (catalog[0].Naverage_disk >= catalog[0].Naverage_off); 1580 1585 1586 /* convert internal to external format : also results in a byte-swapped, scaled output 1587 table. Note that ftable is newly allocated. 1588 */ 1589 1590 // if we are going to compress, we need to receive unswapped data -- 1591 int swapFromNative = !output_is_compressed (start, Nrows, Naverage_disk_new, catalog->catcompress); 1592 1581 1593 /* convert internal to external format */ 1582 if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, TRUE)) { 1583 fprintf (stderr, "trouble converting format\n"); 1584 goto failure; 1585 } 1594 if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, swapFromNative)) { 1595 fprintf (stderr, "trouble converting format\n"); 1596 goto failure; 1597 } 1598 1599 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1586 1600 1587 1601 if (!dvo_catalog_save_subcat (catalog, &ftable, start, Nrows, catalog[0].Naverage_disk, Naverage_disk_new)) { … … 1589 1603 goto failure; 1590 1604 } 1605 1606 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1607 1591 1608 gfits_free_header (&header); 1592 1609 gfits_free_table (&ftable); … … 1602 1619 goto failure; 1603 1620 } 1604 }1621 } 1605 1622 1606 1623 /*** Measure Table ***/ 1607 if ( catalog[0].measure != NULL) {1608 1609 first = catalog[0].Nmeasure_disk - catalog[0].Nmeasure_off;// first row in memory to write1610 start = catalog[0].Nmeasure_disk; // first disk row to write1611 Nrows = catalog[0].Nmeasure - first;1624 if ((catalog[0].catflags & DVO_LOAD_MEASURE) && (catalog[0].measure != NULL)) { 1625 1626 off_t first = 0; // first row in memory to write 1627 off_t start = catalog[0].Nmeasure_off; // first disk row to write 1628 off_t Nrows = catalog[0].Nmeasure - first; 1612 1629 1613 1630 assert (Nrows >= 0); … … 1616 1633 assert (catalog[0].Nmeasure_disk >= catalog[0].Nmeasure_off); 1617 1634 1635 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1636 1637 // if we are going to compress, we need to receive unswapped data -- 1638 int swapFromNative = !output_is_compressed (start, Nrows, Nmeasure_disk_new, catalog->catcompress); 1639 1618 1640 // convert to external table format 1619 1641 // XXX does catalog.measure have averef correctly set up? 1620 if (!MeasureToFtable (&ftable, catalog[0].average, &catalog[0].measure[first], Nrows, catalog[0].catformat, TRUE)) { 1621 fprintf (stderr, "trouble converting format\n"); 1622 goto failure; 1623 } 1642 if (!MeasureToFtable (&ftable, catalog[0].average, &catalog[0].measure[first], Nrows, catalog[0].catformat, swapFromNative)) { 1643 fprintf (stderr, "trouble converting format\n"); 1644 goto failure; 1645 } 1646 1647 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1624 1648 1625 1649 // write out Measure table 1650 catalog->measure_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1626 1651 if (!dvo_catalog_save_subcat (catalog[0].measure_catalog, &ftable, start, Nrows, catalog[0].Nmeasure_disk, Nmeasure_disk_new)) { 1627 1652 fprintf (stderr, "trouble writing Measure table\n"); 1628 1653 goto failure; 1629 1654 } 1655 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1656 1630 1657 gfits_free_header (&header); 1631 1658 gfits_free_table (&ftable); … … 1636 1663 1637 1664 /*** Missing Table ***/ 1638 1639 if (catalog[0].missing != NULL) { 1665 if ((catalog[0].catflags & DVO_LOAD_MISSING) && (catalog[0].missing != NULL)) { 1640 1666 1641 1667 if (catalog[0].Nmissing_off != 0) { … … 1644 1670 } 1645 1671 1672 // if we are going to compress, we need to receive unswapped data -- 1673 int swapFromNative = !output_is_compressed (catalog[0].Nmissing_off, catalog[0].Nmissing, Nmissing_disk_new, catalog->catcompress); 1674 1646 1675 // convert to external table format 1647 if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, TRUE)) {1676 if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, swapFromNative)) { 1648 1677 fprintf (stderr, "trouble converting format\n"); 1649 1678 goto failure; … … 1651 1680 1652 1681 // write out Missing table (must write out entire table) 1682 catalog->missing_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1653 1683 if (!dvo_catalog_save_subcat (catalog[0].missing_catalog, &ftable, 0, catalog[0].Nmissing, catalog[0].Nmissing, catalog[0].Nmissing)) { 1654 1684 fprintf (stderr, "trouble writing Missing Table\n"); … … 1660 1690 1661 1691 /*** Secfilt Table ***/ 1662 if (catalog[0].secfilt != NULL) { 1663 1664 first = catalog[0].Nsecfilt_disk - catalog[0].Nsecfilt_off; // first row in memory to write 1665 start = catalog[0].Nsecfilt_disk; // first disk row to write 1666 Nrows = catalog[0].Nsecfilt_mem - first; 1667 1668 assert (Nrows >= 0); 1669 assert (first >= 0); 1692 if ((catalog[0].catflags & DVO_LOAD_SECFILT) && (catalog[0].secfilt != NULL)) { 1693 1694 off_t first = 0; // first row in memory to write 1695 off_t start = catalog[0].Nsecfilt_off; // first disk row to write 1696 off_t Nitems = catalog[0].Naverage*Nsecfilt; 1697 off_t Nrows = Nitems - first; 1698 1699 assert (Nrows >= 0); 1700 assert (first >= 0); 1701 assert (first <= Nitems); 1670 1702 assert (catalog[0].Nsecfilt_disk >= catalog[0].Nsecfilt_off); 1703 // XXX check these for consistency... 1704 1705 // if we are going to compress, we need to receive unswapped data -- 1706 int swapFromNative = !output_is_compressed (start, Nrows, Nsecfilt_disk_new, catalog->catcompress); 1707 1708 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1671 1709 1672 1710 // convert to external table format 1673 if (!SecFiltToFtable (&ftable, &secfilt[first], Nrows, catalog[0].catformat, TRUE)) { 1674 fprintf (stderr, "trouble converting format\n"); 1675 goto failure; 1676 } 1711 if (!SecFiltToFtable (&ftable, &secfilt[first], Nrows, catalog[0].catformat, swapFromNative)) { 1712 fprintf (stderr, "trouble converting format\n"); 1713 goto failure; 1714 } 1715 1716 if (OHANA_MEMCHECK) ohana_memcheck_func (TRUE); 1677 1717 1678 1718 // write out SecFilt table 1719 catalog->secfilt_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1679 1720 if (!dvo_catalog_save_subcat (catalog[0].secfilt_catalog, &ftable, start, Nrows, catalog[0].Nsecfilt_disk, Nsecfilt_disk_new)) { 1680 1721 fprintf (stderr, "failure writing SecFilt table\n"); … … 1686 1727 1687 1728 /*** Lensing Table ***/ 1688 if ( catalog[0].lensing != NULL) {1689 1690 first = catalog[0].Nlensing_disk - catalog[0].Nlensing_off;// first row in memory to write1691 start = catalog[0].Nlensing_disk; // first disk row to write1692 Nrows = catalog[0].Nlensing - first;1729 if ((catalog[0].catflags & DVO_LOAD_LENSING) && catalog[0].lensing && Nlensing_disk_new) { 1730 1731 off_t first = 0; // first row in memory to write 1732 off_t start = catalog[0].Nlensing_off; // first disk row to write 1733 off_t Nrows = catalog[0].Nlensing - first; 1693 1734 1694 1735 assert (Nrows >= 0); … … 1697 1738 assert (catalog[0].Nlensing_disk >= catalog[0].Nlensing_off); 1698 1739 1740 // if we are going to compress, we need to receive unswapped data -- 1741 int swapFromNative = !output_is_compressed (start, Nrows, Nlensing_disk_new, catalog->catcompress); 1742 1699 1743 // convert to external table format 1700 // XXX does catalog.lensing have averef correctly set up? 1701 if (!LensingToFtable (&ftable, &catalog[0].lensing[first], Nrows, catalog[0].catformat, TRUE)) { 1744 if (!LensingToFtable (&ftable, &catalog[0].lensing[first], Nrows, catalog[0].catformat, swapFromNative)) { 1702 1745 fprintf (stderr, "trouble converting format\n"); 1703 1746 goto failure; … … 1705 1748 1706 1749 // write out Lensing table 1750 catalog->lensing_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1707 1751 if (!dvo_catalog_save_subcat (catalog[0].lensing_catalog, &ftable, start, Nrows, catalog[0].Nlensing_disk, Nlensing_disk_new)) { 1708 1752 fprintf (stderr, "trouble writing Lensing table\n"); … … 1714 1758 1715 1759 /*** Lensobj Table ***/ 1716 if ( catalog[0].lensobj != NULL) {1717 1718 first = catalog[0].Nlensobj_disk - catalog[0].Nlensobj_off;// first row in memory to write1719 start = catalog[0].Nlensobj_disk; // first disk row to write1720 Nrows = catalog[0].Nlensobj - first;1760 if ((catalog[0].catflags & DVO_LOAD_LENSOBJ) && catalog[0].lensobj && Nlensobj_disk_new) { 1761 1762 off_t first = 0; // first row in memory to write 1763 off_t start = catalog[0].Nlensobj_off; // first disk row to write 1764 off_t Nrows = catalog[0].Nlensobj - first; 1721 1765 1722 1766 assert (Nrows >= 0); … … 1725 1769 assert (catalog[0].Nlensobj_disk >= catalog[0].Nlensobj_off); 1726 1770 1771 // if we are going to compress, we need to receive unswapped data -- 1772 int swapFromNative = !output_is_compressed (start, Nrows, Nlensobj_disk_new, catalog->catcompress); 1773 1727 1774 // convert to external table format 1728 // XXX does catalog.lensobj have averef correctly set up? 1729 if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat, TRUE)) { 1775 if (!LensobjToFtable (&ftable, &catalog[0].lensobj[first], Nrows, catalog[0].catformat, swapFromNative)) { 1730 1776 fprintf (stderr, "trouble converting format\n"); 1731 1777 goto failure; … … 1733 1779 1734 1780 // write out Lensobj table 1781 catalog->lensobj_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1735 1782 if (!dvo_catalog_save_subcat (catalog[0].lensobj_catalog, &ftable, start, Nrows, catalog[0].Nlensobj_disk, Nlensobj_disk_new)) { 1736 1783 fprintf (stderr, "trouble writing Lensobj table\n"); … … 1742 1789 1743 1790 /*** StarPar Table ***/ 1744 if ( catalog[0].starpar != NULL) {1745 1746 first = catalog[0].Nstarpar_disk - catalog[0].Nstarpar_off;// first row in memory to write1747 start = catalog[0].Nstarpar_disk; // first disk row to write1748 Nrows = catalog[0].Nstarpar - first;1791 if ((catalog[0].catflags & DVO_LOAD_STARPAR) && catalog[0].starpar && Nstarpar_disk_new) { 1792 1793 off_t first = 0; // first row in memory to write 1794 off_t start = catalog[0].Nstarpar_off; // first disk row to write 1795 off_t Nrows = catalog[0].Nstarpar - first; 1749 1796 1750 1797 assert (Nrows >= 0); … … 1753 1800 assert (catalog[0].Nstarpar_disk >= catalog[0].Nstarpar_off); 1754 1801 1802 // if we are going to compress, we need to receive unswapped data -- 1803 int swapFromNative = !output_is_compressed (start, Nrows, Nstarpar_disk_new, catalog->catcompress); 1804 1755 1805 // convert to external table format 1756 // XXX does catalog.starpar have averef correctly set up? 1757 if (!StarParToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat, TRUE)) { 1806 if (!StarParToFtable (&ftable, &catalog[0].starpar[first], Nrows, catalog[0].catformat, swapFromNative)) { 1758 1807 fprintf (stderr, "trouble converting format\n"); 1759 1808 goto failure; … … 1761 1810 1762 1811 // write out StarPar table 1812 catalog->starpar_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1763 1813 if (!dvo_catalog_save_subcat (catalog[0].starpar_catalog, &ftable, start, Nrows, catalog[0].Nstarpar_disk, Nstarpar_disk_new)) { 1764 1814 fprintf (stderr, "trouble writing StarPar table\n"); … … 1770 1820 1771 1821 /*** GalPhot Table ***/ 1772 if ( catalog[0].galphot != NULL) {1773 1774 first = catalog[0].Ngalphot_disk - catalog[0].Ngalphot_off;// first row in memory to write1775 start = catalog[0].Ngalphot_disk; // first disk row to write1776 Nrows = catalog[0].Ngalphot - first;1822 if ((catalog[0].catflags & DVO_LOAD_GALPHOT) && catalog[0].galphot && Ngalphot_disk_new) { 1823 1824 off_t first = 0; // first row in memory to write 1825 off_t start = catalog[0].Ngalphot_off; // first disk row to write 1826 off_t Nrows = catalog[0].Ngalphot - first; 1777 1827 1778 1828 assert (Nrows >= 0); … … 1781 1831 assert (catalog[0].Ngalphot_disk >= catalog[0].Ngalphot_off); 1782 1832 1833 // if we are going to compress, we need to receive unswapped data -- 1834 int swapFromNative = !output_is_compressed (start, Nrows, Ngalphot_disk_new, catalog->catcompress); 1835 1783 1836 // convert to external table format 1784 // XXX does catalog.galphot have averef correctly set up? 1785 if (!GalPhotToFtable (&ftable, &catalog[0].galphot[first], Nrows, catalog[0].catformat, TRUE)) { 1837 if (!GalPhotToFtable (&ftable, &catalog[0].galphot[first], Nrows, catalog[0].catformat, swapFromNative)) { 1786 1838 fprintf (stderr, "trouble converting format\n"); 1787 1839 goto failure; … … 1789 1841 1790 1842 // write out GalPhot table 1843 catalog->galphot_catalog->catcompress = catalog->catcompress; // XXX this is a bit of a hack, should be done in an api 1791 1844 if (!dvo_catalog_save_subcat (catalog[0].galphot_catalog, &ftable, start, Nrows, catalog[0].Ngalphot_disk, Ngalphot_disk_new)) { 1792 1845 fprintf (stderr, "trouble writing GalPhot table\n"); … … 1807 1860 failure: 1808 1861 /* free temp storage */ 1862 gfits_free_header (&header); 1863 gfits_free_table (&ftable); 1809 1864 if (primary != NULL) { 1810 1865 free (primary);
Note:
See TracChangeset
for help on using the changeset viewer.
