Index: trunk/psastro/src/psastro.h
===================================================================
--- trunk/psastro/src/psastro.h	(revision 6791)
+++ trunk/psastro/src/psastro.h	(revision 7014)
@@ -3,7 +3,10 @@
 # include <unistd.h>   // for unlink
 # include <pslib.h>
-# include <pmAstrometry.h>
-# include "psLibUtils.h"
-# include "pmAstrom.h"
+# include <psmodules.h>
+
+# define psMemCopy(A)(psMemIncrRefCounter((A)))
+# define DEG_RAD 57.295779513082322
+# define RAD_DEG  0.017453292519943
+# define SIGN(X)  (((X) == 0) ? 0 : ((fabs((double)(X))) / (X)))
 
 # define fromTPA fromTangentPlane
@@ -11,56 +14,26 @@
 # define toSky projection
 
-// How much of the FPA to load at a time
-typedef enum {
-    PP_LOAD_NONE,                       // Don't load anything
-    PP_LOAD_FPA,                        // Load the entire FPA at once
-    PP_LOAD_CHIP,                       // Load by chip
-    PP_LOAD_CELL,                       // Load by cell
-} ppImageLoadDepth;
+pmConfig         *psastroArguments (int *argc, char **argv);
+bool              psastroParseCamera (pmConfig *config);
+bool              psastroDataLoad (pmConfig *config);
+bool              psastroDataSave (pmConfig *config);
 
-// Configuration data
-typedef struct {
-    psMetadata *site;                   // The site configuration
-    psMetadata *camera;                 // The camera configuration
-    psMetadata *recipe;                 // The recipe (i.e., specific setups)
-    psMetadata *arguments;              // Command-line arguments
-    psMetadata *options;                // Command-line recipe options
-    psDB       *database;               // Database handle
-} ppConfig;
+bool              psastroConvert (pmReadout *readout, psMetadata *recipe);
+psArray          *pmSourceToAstromObj (psArray *sources);
+bool              psastroAstromGuess (pmConfig *config);
 
-// A file to process
-typedef struct {
-    char *filename;                     // File name
-    psFits *fits;                       // The FITS file handle
-    psMetadata *phu;                    // The FITS header
-    pmFPA *fpa;                         // The FPA, with pixels and extensions
-} ppFile;
+bool              pmAstromReadWCS (psProjection **toSkyOut, psPlaneDistort **toTPAout, psPlaneTransform **toFPAout, psMetadata *header, double plateScale);
+bool              pmAstromWriteWCS (psPlaneTransform *toFPA, psProjection *toSky, psMetadata *header, double plateScale);
+psPlaneDistort   *psPlaneDistortIdentity ();
 
-bool              pmAstromReadWCS (psPlaneTransform **toFPA, psProjection **toSky, psMetadata *header);
-bool              pmAstromWriteWCS (psPlaneTransform *toFPA, psProjection *toSky, psMetadata *header);
+psArray          *psastroLoadReferences (pmConfig *config);
+bool              psastroChipAstrom (pmConfig *config, psArray *refs);
+bool              psastroOneChip (pmFPA *fpa, pmChip *chip, psArray *refset, psArray *rawset, psMetadata *recipe);
 
-pmFPA            *pmFPACopyAstrom (pmFPA *inFPA);
-psMetadata       *psastroArguments (int *argc, char **argv);
-pmFPA            *psastroBuildFPA (psMetadata *header, psArray *stars);
-bool 		  psastroChipAstrom (pmFPA *fpa, psMetadata *config);
-psArray          *psastroLoadReference (psMetadata *header, psMetadata *config);
-psArray          *psastroReadCMP (psMetadata **header, char *filename);
-bool              psastroSelectBrightStars (pmFPA *fpa, psMetadata *config);
-bool              psastroWriteCMP (pmFPA *fpa, char *filename);
+// bool              psVectorSmooth (psVector *vector, double sigma, double Nsigma);
 
+// utility functions:
+bool              psastroUpdateChipToFPA (pmFPA *fpa, pmChip *chip, psArray *rawstars, psArray *refstars);
+bool              psastroWriteStars (char *filename, psArray *sources);
+bool              psastroWriteTransform (psPlaneTransform *map);
 
-psPlane          *psCoordReadoutToCell (psPlane *cellpix, psPlane *readpix, pmReadout *readout);
-psPlane 	 *psCoordCellToReadout (psPlane *readpix, psPlane *cellpix, pmReadout *readout);
-psPlane 	 *psCoordChipToCell_EAM(psPlane* cellCoord, const psPlane* chipCoord, const pmCell* cell);
-
-bool 		  testWriteCMP (psMetadata *header, char *filename, psArray *sources);
-bool 		  testWriteRef (char *filename, psArray *sources);
-bool 		  testWriteRaw (char *filename, psArray *sources);
-psMetadata       *testArguments (int *argc, char **argv);
-
-bool 		  psastroProjectFPA (pmFPA *fpa, char *starlist, bool toSky);
-bool 		  psastroProjectRawstars (psArray *stars, pmReadout *readout);
-bool 		  psastroProjectRefstars (psArray *stars, pmReadout *readout);
-
-psPlaneTransform *p_psPlaneTransformLinearInvert_EAM(psPlaneTransform *transform);
-pmFPA            *pmFPACopyAstrom (pmFPA *inFPA);
