Index: /branches/eam_branches/ohana.20150429/src/addstar/src/mkcmf.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/addstar/src/mkcmf.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/addstar/src/mkcmf.c	(revision 38345)
@@ -500,5 +500,5 @@
   }
 
-  gfits_table_set_PS1_DEV_0 (ftable, stars, Nstars);
+  gfits_table_set_PS1_DEV_0 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_DEV_0");
 }
@@ -547,5 +547,5 @@
   }
 
-  gfits_table_set_PS1_DEV_1 (ftable, stars, Nstars);
+  gfits_table_set_PS1_DEV_1 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_DEV_1");
 }
@@ -596,5 +596,5 @@
   }
 
-  gfits_table_set_CMF_PS1_V1 (ftable, stars, Nstars);
+  gfits_table_set_CMF_PS1_V1 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_V1");
 }
@@ -651,5 +651,5 @@
   }
 
-  gfits_table_set_CMF_PS1_V2 (ftable, stars, Nstars);
+  gfits_table_set_CMF_PS1_V2 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_V2");
 }
@@ -710,5 +710,5 @@
   }
 
-  gfits_table_set_CMF_PS1_V3 (ftable, stars, Nstars);
+  gfits_table_set_CMF_PS1_V3 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_V3");
 }
@@ -778,5 +778,5 @@
   }
 
-  gfits_table_set_CMF_PS1_V4 (ftable, stars, Nstars);
+  gfits_table_set_CMF_PS1_V4 (ftable, stars, Nstars, TRUE);
   gfits_modify (ftable->header, "EXTTYPE",   "%s", 1, "PS1_V4");
 }
Index: /branches/eam_branches/ohana.20150429/src/delstar/src/delete_duplicate_images.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/delstar/src/delete_duplicate_images.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/delstar/src/delete_duplicate_images.c	(revision 38345)
@@ -61,5 +61,5 @@
   
   fprintf (stderr, "removing "OFF_T_FMT" images (leaving "OFF_T_FMT" of "OFF_T_FMT")\n",  Nimage - Noutimage, Noutimage, Nimage);
-  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage);
+  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage, TRUE);
 
   gfits_modify (&db[0].theader, "NAXIS2", OFF_T_FMT, 1,  Noutimage);
Index: /branches/eam_branches/ohana.20150429/src/delstar/src/delete_image_photcodes.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/delstar/src/delete_image_photcodes.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/delstar/src/delete_image_photcodes.c	(revision 38345)
@@ -33,5 +33,5 @@
   
   if (VERBOSE) fprintf (stderr, "removing "OFF_T_FMT" images (leaving "OFF_T_FMT" of "OFF_T_FMT")\n",  Nimage - Noutimage, Noutimage, Nimage);
-  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage);
+  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage, TRUE);
 
   gfits_modify (&db[0].theader, "NAXIS2", OFF_T_FMT, 1,  Noutimage);
Index: /branches/eam_branches/ohana.20150429/src/delstar/src/delete_imagename.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/delstar/src/delete_imagename.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/delstar/src/delete_imagename.c	(revision 38345)
@@ -82,5 +82,5 @@
   
   if (VERBOSE) fprintf (stderr, "removing "OFF_T_FMT" images (leaving "OFF_T_FMT" of "OFF_T_FMT")\n",  Nimlist,  Noutimage,  Nimage);
-  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage);
+  // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage, TRUE);
 
   gfits_modify (&db[0].theader, "NAXIS2", OFF_T_FMT, 1,  Noutimage);
Index: /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairCPT.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairCPT.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairCPT.c	(revision 38345)
@@ -156,6 +156,8 @@
   gfits_modify_alt (&cptHeaderPHU, "SORTED", "%t",      1,  FALSE);
 
+  myAbort ("test for compression");
+
   /* convert internal to external format */
-  if (!AverageToFtable (&cptFtable, average, Naverage, catformat, NULL)) {
+  if (!AverageToFtable (&cptFtable, average, Naverage, catformat, NULL, TRUE)) {
     myAbort("trouble converting format");
   }
Index: /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImageList.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImageList.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImageList.c	(revision 38345)
@@ -467,6 +467,8 @@
   gfits_scan (&cptHeaderPHU, "NSECFILT",     "%d",      1,  &Nsecfilt);
 
+  myAbort ("test for compression");
+
   /* convert internal to external format */
-  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL)) {
+  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL, TRUE)) {
     myAbort("trouble converting format");
   }
Index: /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImagesByExternID.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImagesByExternID.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairDeleteImagesByExternID.c	(revision 38345)
@@ -658,6 +658,8 @@
   gfits_scan (&cptHeaderPHU, "NSECFILT",     "%d",      1,  &Nsecfilt);
 
+  myAbort ("test for compression");
+
   /* convert internal to external format */
-  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL)) {
+  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL, TRUE)) {
     myAbort("trouble converting format");
   }
Index: /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairFixTables.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairFixTables.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/dvomerge/src/dvorepairFixTables.c	(revision 38345)
@@ -326,6 +326,8 @@
   gfits_scan (&cptHeaderPHU, "NSECFILT",     "%d",      1,  &Nsecfilt);
 
+  myAbort ("test for compression");
+
   /* convert internal to external format */
-  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL)) {
+  if (!AverageToFtable (&cptFtable, averageOut, NaverageOut, catformat, NULL, TRUE)) {
     myAbort("trouble converting format");
   }
Index: /branches/eam_branches/ohana.20150429/src/getstar/src/WriteImageFITS.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/getstar/src/WriteImageFITS.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/getstar/src/WriteImageFITS.c	(revision 38345)
@@ -36,5 +36,5 @@
 
   table.header = &theader;
-  gfits_table_set_SMPData (&table, NULL, Nstars);
+  gfits_table_set_SMPData (&table, NULL, Nstars, TRUE);
   gfits_fwrite_Theader (f, &theader);
   gfits_fwrite_table   (f, &table);
Index: /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_0.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_0.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_0.c	(revision 38345)
@@ -111,5 +111,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_Getstar_PS1_DEV_0 (&ftable, output, Noutput);
+  gfits_table_set_Getstar_PS1_DEV_0 (&ftable, output, Noutput, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_1.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_1.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_1.c	(revision 38345)
@@ -114,5 +114,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_Getstar_PS1_DEV_1 (&ftable, output, Noutput);
+  gfits_table_set_Getstar_PS1_DEV_1 (&ftable, output, Noutput, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_2.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_2.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/getstar/src/write_getstar_ps1_dev_2.c	(revision 38345)
@@ -120,5 +120,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_Getstar_PS1_DEV_2 (&ftable, output, Noutput);
+  gfits_table_set_Getstar_PS1_DEV_2 (&ftable, output, Noutput, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/imclean/src/wfits.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imclean/src/wfits.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imclean/src/wfits.c	(revision 38345)
@@ -19,5 +19,5 @@
     
   table.header = &theader;
-  gfits_table_set_SMPData (&table, stars, Nstars);
+  gfits_table_set_SMPData (&table, stars, Nstars, TRUE);
 
   gfits_write_header  (filename, header);
Index: /branches/eam_branches/ohana.20150429/src/imregister/detrend/delete.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/detrend/delete.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/detrend/delete.c	(revision 38345)
@@ -41,5 +41,5 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  gfits_table_set_DetReg (&db[0].ftable, subset, Nsubset);
+  gfits_table_set_DetReg (&db[0].ftable, subset, Nsubset, TRUE);
   gfits_db_save (db);
   gfits_db_close (db);
Index: /branches/eam_branches/ohana.20150429/src/imregister/detrend/output.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/detrend/output.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/detrend/output.c	(revision 38345)
@@ -50,5 +50,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_DetReg (&ftable, subset, Nmatch);
+  gfits_table_set_DetReg (&ftable, subset, Nmatch, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/imregister/imphot/dumpfits.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/imphot/dumpfits.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/imphot/dumpfits.c	(revision 38345)
@@ -34,5 +34,5 @@
 
   ftable.header = &theader;
-  // gfits_table_set_Image (&ftable, subset, Nmatch);
+  // gfits_table_set_Image (&ftable, subset, Nmatch, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/imregister/imreg/delete.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/imreg/delete.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/imreg/delete.c	(revision 38345)
@@ -41,5 +41,5 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  gfits_table_set_RegImage (&db[0].ftable, subset, Nsubset);
+  gfits_table_set_RegImage (&db[0].ftable, subset, Nsubset, TRUE);
   gfits_db_save (db);
   gfits_db_close (db);
Index: /branches/eam_branches/ohana.20150429/src/imregister/imreg/imregclient.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/imreg/imregclient.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/imreg/imregclient.c	(revision 38345)
@@ -77,5 +77,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);
-    gfits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0, TRUE);
   } else {  
     if (!gfits_db_load (&db)) {
Index: /branches/eam_branches/ohana.20150429/src/imregister/imreg/output.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/imreg/output.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/imreg/output.c	(revision 38345)
@@ -77,5 +77,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_RegImage (&ftable, subset, Nmatch);
+  gfits_table_set_RegImage (&ftable, subset, Nmatch, TRUE);
 
   gfits_fwrite_header  (f, &header);
Index: /branches/eam_branches/ohana.20150429/src/imregister/photreg/delete.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/photreg/delete.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/photreg/delete.c	(revision 38345)
@@ -38,5 +38,5 @@
   }
 
-  gfits_table_set_PhotPars (&db[0].ftable, subset, Nsubset);
+  gfits_table_set_PhotPars (&db[0].ftable, subset, Nsubset, TRUE);
   gfits_db_save (db);
   gfits_db_close (db);
Index: /branches/eam_branches/ohana.20150429/src/imregister/photreg/output.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/photreg/output.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/photreg/output.c	(revision 38345)
@@ -55,5 +55,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_PhotPars (&ftable, subset, Nmatch);
+  gfits_table_set_PhotPars (&ftable, subset, Nmatch, TRUE);
 
   /* EXTNAME is set to ZERO_POINTS_3.0 by default */
Index: /branches/eam_branches/ohana.20150429/src/imregister/spreg/delete.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/spreg/delete.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/spreg/delete.c	(revision 38345)
@@ -39,5 +39,5 @@
   /** we may later want to pull this out and put it elsewhere **/
   /** free db[0].theader, db[0].table.buffer? **/
-  gfits_table_set_Spectrum (&db[0].ftable, subset, Nsubset);
+  gfits_table_set_Spectrum (&db[0].ftable, subset, Nsubset, TRUE);
   gfits_db_save (db);
   gfits_db_close (db);
Index: /branches/eam_branches/ohana.20150429/src/imregister/spreg/output.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/spreg/output.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/spreg/output.c	(revision 38345)
@@ -61,5 +61,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_Spectrum (&ftable, subset, Nmatch);
+  gfits_table_set_Spectrum (&ftable, subset, Nmatch, TRUE);
 
   gfits_fwrite_header   (f, &header);
@@ -96,5 +96,5 @@
   /* create an empty table which we will fill in by hand */
   ftable.header = &theader;
-  gfits_table_set_SpectrumASCII (&ftable, NULL, 0);
+  gfits_table_set_SpectrumASCII (&ftable, NULL, 0, TRUE);
   
   /* add data to table */
Index: /branches/eam_branches/ohana.20150429/src/imregister/src/detregister.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/src/detregister.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/src/detregister.c	(revision 38345)
@@ -29,5 +29,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);    
-    gfits_table_set_DetReg (&db.ftable, NULL, 0);
+    gfits_table_set_DetReg (&db.ftable, NULL, 0, TRUE);
   } else {  
     if (!gfits_db_load (&db)) {
Index: /branches/eam_branches/ohana.20150429/src/imregister/src/imregister.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/src/imregister.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/src/imregister.c	(revision 38345)
@@ -28,5 +28,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);
-    gfits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0, TRUE);
   } else {  
     if (!gfits_db_load (&db)) {
Index: /branches/eam_branches/ohana.20150429/src/imregister/src/imregtable.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/src/imregtable.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/src/imregtable.c	(revision 38345)
@@ -51,5 +51,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);
-    gfits_table_set_RegImage (&db.ftable, NULL, 0);
+    gfits_table_set_RegImage (&db.ftable, NULL, 0, TRUE);
   } else {  
     if (!gfits_db_load (&db)) {
Index: /branches/eam_branches/ohana.20150429/src/imregister/src/photreg.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/src/photreg.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/src/photreg.c	(revision 38345)
@@ -26,5 +26,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);
-    gfits_table_set_PhotPars (&db.ftable, NULL, 0);
+    gfits_table_set_PhotPars (&db.ftable, NULL, 0, TRUE);
     /* EXTNAME is set to ZERO_POINTS_3.0 by default */
     if (!strcmp (output.db, "trans")) {
Index: /branches/eam_branches/ohana.20150429/src/imregister/src/spregister.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/imregister/src/spregister.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/imregister/src/spregister.c	(revision 38345)
@@ -28,5 +28,5 @@
   if (db.dbstate == LCK_EMPTY) {
     gfits_db_create (&db);
-    gfits_table_set_Spectrum (&db.ftable, NULL, 0);
+    gfits_table_set_Spectrum (&db.ftable, NULL, 0, TRUE);
   } else {  
     if (!gfits_db_load (&db)) {
Index: /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.c	(revision 38345)
@@ -57,5 +57,5 @@
 }
 
-int gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, off_t Ndata) {
+int gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, off_t Ndata, int swapFromNative) {
 
   Header *header;
@@ -74,5 +74,7 @@
   /* add data values */
   if (!gfits_table_scale_data (ftable)) return (FALSE);
-  if (!gfits_convert_$STRUCT (data, sizeof ($STRUCT), Ndata)) return (FALSE);
+  if (swapFromNative) {
+    if (!gfits_convert_$STRUCT (data, sizeof ($STRUCT), Ndata)) return (FALSE);
+  }
   if (!gfits_add_rows (ftable, (char *) data, Ndata, sizeof ($STRUCT))) return (FALSE);
 
Index: /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.h
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.h	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libautocode/def/autocode.h	(revision 38345)
@@ -3,5 +3,5 @@
 
 $STRUCT *gfits_table_get_$STRUCT (FTable *table, off_t *Ndata, char *scaledValue, char *nativeOrder);
-int      gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, off_t Ndata);
+int      gfits_table_set_$STRUCT (FTable *ftable, $STRUCT *data, off_t Ndata, int swapFromNative);
 int      gfits_table_mkheader_$STRUCT (Header *header);
 int      gfits_convert_$STRUCT ($STRUCT *data, off_t size, off_t nitems);
Index: /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/include/dvo.h	(revision 38345)
@@ -789,4 +789,5 @@
   char catformat;			/* storage format (elixir, panstarrs, etc) */
   int sorted;				/* is measure table average-sorted? (NOTE this is an int only because gfits_scan %t requires it) */
+  char compressOutput;
   
   DVOCatFlags catflags; /* choices to be loaded */
@@ -977,5 +978,5 @@
 int      FtableToImage   (FTable *ftable, Header *theader, char *format);
 
-int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary);
+int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary, int swapFromNative);
 int MeasureToFtable (FTable *ftable, Average *average, Measure *measure, off_t Nmeasure, char format);
 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, off_t Nsecfilt, char format);
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/AstromOffsetMapIO.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/AstromOffsetMapIO.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/AstromOffsetMapIO.c	(revision 38345)
@@ -78,5 +78,5 @@
 
   ftable.header = &theader;
-  gfits_table_set_AstromOffsetMap_Disk_6x6 (&ftable, map_disk, Nmap);
+  gfits_table_set_AstromOffsetMap_Disk_6x6 (&ftable, map_disk, Nmap, TRUE);
 
   f = fopen (filename, "w");
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/SavePhotcodesFITS.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/SavePhotcodesFITS.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/SavePhotcodesFITS.c	(revision 38345)
@@ -34,5 +34,5 @@
   /* convert FITS format data to internal format (byteswaps & EXTNAME) */
   if (!gfits_db_create (&db)) return (FALSE);
-  if (!gfits_table_set_PhotCode_PS1_V5 (&db.ftable, photcode_output, table[0].Ncode)) return (FALSE);
+  if (!gfits_table_set_PhotCode_PS1_V5 (&db.ftable, photcode_output, table[0].Ncode, TRUE)) return (FALSE);
   if (!gfits_db_save (&db)) return (FALSE);
   if (!gfits_db_close (&db)) return (FALSE);
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_mef.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_mef.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_mef.c	(revision 38345)
@@ -385,5 +385,5 @@
 
   /* write out Average table (convert to FITS table format) */
-  AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat, primary);
+  AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat, primary, TRUE);
   if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     fprintf (stderr, "can't write table header");
@@ -411,5 +411,5 @@
 
   /* write out Missing table (convert to FITS table format) */
-  gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);
+  gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, TRUE);
   if (!gfits_fwrite_Theader (catalog[0].f, &header)) {
     fprintf (stderr, "can't write table header");
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_catalog_split.c	(revision 38345)
@@ -151,13 +151,34 @@
   gfits_free_matrix (&matrix);
 
+  FTable *outtable = ftable;
+  FTable cmptable;
+  Header cmpheader;
+  cmptable.header = &cmpheader;
+  gfits_init_header (&cmpheader);
+  gfits_init_table (&cmptable);
+  
+  int fullWrite = (start == 0) && (Nrows == Ntotal);
+
+  if (fullWrite && catalog->compressOutput) {
+    if (!gfits_compress_table (ftable, &cmptable, 10, "GZIP_1")) {
+      fprintf (stderr, "compression failure\n");
+      return (FALSE);
+    }
+    outtable = &cmptable;
+  }
+
   // write the table data
-  if (!gfits_fwrite_ftable_range (catalog->f, ftable, start, Nrows, Ndisk, Ntotal)) {
+  if (!gfits_fwrite_ftable_range (catalog->f, outtable, start, Nrows, Ndisk, Ntotal)) {
     fprintf (stderr, "can't write table data\n");
     return (FALSE);
   }
-  fullsize += ftable->datasize + ftable->header->datasize;
+  fullsize += outtable->datasize + outtable->header->datasize;
+
+  // since we init'ed the structures above, these operations are safe whether or not we compressed the table
+  gfits_free_header (&cmpheader);
+  gfits_free_table (&cmptable);
 
   // if the output file will be completely re-written, truncate to total datasize
-  if ((start == 0) && (Nrows == Ntotal)) {
+  if (fullWrite) {
     int fd = fileno (catalog->f);
     if (ftruncate (fd, fullsize)) {
@@ -975,6 +996,17 @@
     assert (catalog[0].Naves_disk >= catalog[0].Naves_off);
 
-    /* convert internal to external format */
-    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary)) {
+    /* convert internal to external format : also results in a byte-swapped, scaled output
+       table.  Note that ftable is newly allocated.
+     */
+    
+    // if we are going to compress, we need to receive unswapped data -- 
+    // gfits_compress_table expectes a table with unswapped data values
+    int swapFromNative = TRUE;
+    int fullWrite = (start == 0) && (Nrows == Naves_disk_new);
+    if (fullWrite && catalog->compressOutput) {
+      swapFromNative = FALSE;
+    }
+
+    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, swapFromNative)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
@@ -1036,5 +1068,5 @@
 
     // convert to external table format
-    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing)) {
+    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, TRUE)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
@@ -1315,5 +1347,5 @@
 
     /* convert internal to external format */
-    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary)) {
+    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, TRUE)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
@@ -1375,5 +1407,5 @@
 
     // convert to external table format
-    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing)) {
+    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, TRUE)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
@@ -1611,5 +1643,5 @@
 
     /* convert internal to external format */
-    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary)) {
+    if (!AverageToFtable (&ftable, &catalog[0].average[first], Nrows, catalog[0].catformat, primary, TRUE)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
@@ -1676,5 +1708,5 @@
 
     // convert to external table format
-    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing)) {
+    if (!gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing, TRUE)) {
       fprintf (stderr, "trouble converting format\n");
       goto failure;
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/dvo_convert.c	(revision 38345)
@@ -139,18 +139,18 @@
 }
 
-int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary) {
-
-# define FORMAT_CASE(FORMAT, TYPE) \
-    case DVO_FORMAT_##FORMAT: { \
-      Average_##TYPE *tmpAverage; \
+int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary, int swapFromNative) {
+  
+# define FORMAT_CASE(FORMAT, TYPE)		\
+  case DVO_FORMAT_##FORMAT: {						\
+    Average_##TYPE *tmpAverage;						\
       tmpAverage = AverageInternalTo_##TYPE (average, Naverage, primary); \
-      gfits_table_set_Average_##TYPE (ftable, tmpAverage, Naverage); \
-      free (tmpAverage); \
-      break; }
-
+	gfits_table_set_Average_##TYPE (ftable, tmpAverage, Naverage, swapFromNative); \
+	  free (tmpAverage);						\
+	  break; }
+  
   /* convert from the internal format */
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_Average (ftable, average, Naverage);
+      gfits_table_set_Average (ftable, average, Naverage, TRUE);
       break; }
 
@@ -276,5 +276,5 @@
       myAssert (ABS_COORDS || average, "conversion from internal needs average table"); \
       tmpMeasure = MeasureInternalTo_##TYPE (average, measure, Nmeasure); \
-      gfits_table_set_Measure_##TYPE (ftable, tmpMeasure, Nmeasure); \
+	gfits_table_set_Measure_##TYPE (ftable, tmpMeasure, Nmeasure, TRUE); \
       free (tmpMeasure); \
       break; }
@@ -283,5 +283,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_Measure (ftable, measure, Nmeasure);
+      gfits_table_set_Measure (ftable, measure, Nmeasure, TRUE);
       break; }
 
@@ -386,5 +386,5 @@
       SecFilt_##TYPE *tmpSecFilt; \
       tmpSecFilt = SecFiltInternalTo_##TYPE (secfilt, Nsecfilt); \
-      gfits_table_set_SecFilt_##TYPE (ftable, tmpSecFilt, Nsecfilt); \
+	gfits_table_set_SecFilt_##TYPE (ftable, tmpSecFilt, Nsecfilt, TRUE); \
       free (tmpSecFilt); \
       break; }
@@ -393,5 +393,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_SecFilt (ftable, secfilt, Nsecfilt);
+      gfits_table_set_SecFilt (ftable, secfilt, Nsecfilt, TRUE);
       break; }
 
@@ -526,5 +526,5 @@
       Lensing_##TYPE *tmpLensing; \
       tmpLensing = LensingInternalTo_##TYPE (lensing, Nlensing); \
-      gfits_table_set_Lensing_##TYPE (ftable, tmpLensing, Nlensing); \
+	gfits_table_set_Lensing_##TYPE (ftable, tmpLensing, Nlensing, TRUE); \
       free (tmpLensing); \
       break; }
@@ -533,5 +533,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_Lensing (ftable, lensing, Nlensing);
+      gfits_table_set_Lensing (ftable, lensing, Nlensing, TRUE);
       break; }
 
@@ -641,5 +641,5 @@
       Lensobj_##TYPE *tmpLensobj; \
       tmpLensobj = LensobjInternalTo_##TYPE (lensobj, Nlensobj); \
-      gfits_table_set_Lensobj_##TYPE (ftable, tmpLensobj, Nlensobj); \
+	gfits_table_set_Lensobj_##TYPE (ftable, tmpLensobj, Nlensobj, TRUE); \
       free (tmpLensobj); \
       break; }
@@ -648,5 +648,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_Lensobj (ftable, lensobj, Nlensobj);
+      gfits_table_set_Lensobj (ftable, lensobj, Nlensobj, TRUE);
       break; }
 
@@ -744,5 +744,5 @@
       StarPar_##TYPE *tmpStarPar; \
       tmpStarPar = StarParInternalTo_##TYPE (starpar, Nstarpar); \
-      gfits_table_set_StarPar_##TYPE (ftable, tmpStarPar, Nstarpar); \
+	gfits_table_set_StarPar_##TYPE (ftable, tmpStarPar, Nstarpar, TRUE); \
       free (tmpStarPar); \
       break; }
@@ -751,5 +751,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_StarPar (ftable, starpar, Nstarpar);
+      gfits_table_set_StarPar (ftable, starpar, Nstarpar, TRUE);
       break; }
 
@@ -848,5 +848,5 @@
       GalShape_##TYPE *tmpGalShape; \
       tmpGalShape = GalShapeInternalTo_##TYPE (galshape, Ngalshape); \
-      gfits_table_set_GalShape_##TYPE (ftable, tmpGalShape, Ngalshape); \
+	gfits_table_set_GalShape_##TYPE (ftable, tmpGalShape, Ngalshape, TRUE); \
       free (tmpGalShape); \
       break; }
@@ -855,5 +855,5 @@
   switch (format) {
     case DVO_FORMAT_INTERNAL: {
-      gfits_table_set_GalShape (ftable, galshape, Ngalshape);
+      gfits_table_set_GalShape (ftable, galshape, Ngalshape, TRUE);
       break; }
 
@@ -963,5 +963,5 @@
       tmpImage = ImageInternalTo_##TYPE ((Image *) ftable[0].buffer, Nimage); \
       free (ftable[0].buffer); \
-      gfits_table_set_Image_##TYPE (ftable, tmpImage, Nimage); \
+      gfits_table_set_Image_##TYPE (ftable, tmpImage, Nimage, TRUE); \
       free (tmpImage); \
       break; }
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/flatcorr_io.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/flatcorr_io.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/flatcorr_io.c	(revision 38345)
@@ -161,8 +161,8 @@
 
   ftableImage.header = &theaderImage;
-  gfits_table_set_FlatCorrectionImage (&ftableImage, image, flatcorrTable->Nimage);
+  gfits_table_set_FlatCorrectionImage (&ftableImage, image, flatcorrTable->Nimage, TRUE);
 
   ftableCorr.header = &theaderCorr;
-  gfits_table_set_FlatCorrection (&ftableCorr, corr, flatcorrTable->Ncorr);
+  gfits_table_set_FlatCorrection (&ftableCorr, corr, flatcorrTable->Ncorr, TRUE);
 
   f = fopen (filename, "w");
Index: /branches/eam_branches/ohana.20150429/src/libdvo/src/skyregion_io.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/libdvo/src/skyregion_io.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/libdvo/src/skyregion_io.c	(revision 38345)
@@ -99,5 +99,5 @@
   gfits_print (&header, "HOSTS", "%s", 1, skytable->hosts);
 
-  gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);
+  gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions, TRUE);
 
   f = fopen (filename, "w");
Index: /branches/eam_branches/ohana.20150429/src/mosastro/src/wfits.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/mosastro/src/wfits.c	(revision 38344)
+++ /branches/eam_branches/ohana.20150429/src/mosastro/src/wfits.c	(revision 38345)
@@ -19,5 +19,5 @@
     
   table.header = &theader;
-  gfits_table_set_SMPData (&table, stars, Nstars);
+  gfits_table_set_SMPData (&table, stars, Nstars, TRUE);
 
   gfits_write_header  (filename, header);
