Index: trunk/psphot/src/psphotRadialPlot.c
===================================================================
--- trunk/psphot/src/psphotRadialPlot.c	(revision 12627)
+++ trunk/psphot/src/psphotRadialPlot.c	(revision 12665)
@@ -6,47 +6,66 @@
 # include <kapa.h>
 
-bool psphotRadialPlot (const char *filename, pmSource *source) {
+static int nCount = 0;
+
+bool psphotRadialPlot (int *kapa, char *filename, pmSource *source) {
+
+    Graphdata graphdata;
+
+    // only plot 50 stars for now...
+    if (nCount > 00) {
+	if (*kapa != 0) {
+	    KiiClose (*kapa);
+	    *kapa = 0;
+	}
+	return true;
+    }
 
     // XXX get the 'showWindow' option from the recipes somewhere
-    int kapa = pmKapaOpen (false);
-    if (kapa == -1) {
+    // XXX 'showWindow = false' is broken
+    if (*kapa == 0) {
+	*kapa = pmKapaOpen (true);
+	KapaResize (*kapa, 500, 500);
+	unlink (filename);
+    }
+    if (*kapa == -1) {
 	psError(PSPHOT_ERR_UNKNOWN, true, "failure to open kapa");
 	return false;
     }
 
-    KapaResize (kapa, 500, 500);
     KapaInitGraph (&graphdata);
+    KapaClear(*kapa, true);
 
     // examine sources to set data range
-    graphdata.xmin = -0.05;
+    graphdata.xmin =  -0.05;
+    graphdata.xmax = +30.05;
     graphdata.ymin = -0.05;
-    graphdata.xmax = +2.05;
-    graphdata.ymax = +2.05;
-    KapaSetLimits (kapa, &graphdata);
+    graphdata.ymax = +5.05;
+    KapaSetLimits (*kapa, &graphdata);
   
-    KapaSetFont (kapa, "helvetica", 14);
-    KapaBox (kapa, &graphdata);
-    KapaSendLabel (kapa, "&ss&h_x| (pixels)", KAPA_LABEL_XM);
-    KapaSendLabel (kapa, "&ss&h_y| (pixels)", KAPA_LABEL_YM);
+    KapaSetFont (*kapa, "helvetica", 14);
+    KapaBox (*kapa, &graphdata);
+    KapaSendLabel (*kapa, "radius (pixels)", KAPA_LABEL_XM);
+    KapaSendLabel (*kapa, "log flux (counts)", KAPA_LABEL_YM);
 	       
     int nPts = source->pixels->numRows * source->pixels->numCols;
-    psVector *radius = psVectorAllocEmpty (nPts, PS_TYPE_F32);
-    psVector *lflux  = psVectorAllocEmpty (nPts, PS_TYPE_F32);
-    psVector *rmask  = psVectorAllocEmpty (nPts, PS_TYPE_F32);
-    psVector *lfmask = psVectorAllocEmpty (nPts, PS_TYPE_F32);
+    psVector *rg = psVectorAllocEmpty (nPts, PS_TYPE_F32);
+    psVector *fg = psVectorAllocEmpty (nPts, PS_TYPE_F32);
+    psVector *rb = psVectorAllocEmpty (nPts, PS_TYPE_F32);
+    psVector *fb = psVectorAllocEmpty (nPts, PS_TYPE_F32);
 
-    int n = 0;
-    int nm = 0;
+    int ng = 0;
+    int nb = 0;
+    float Xo = source->modelPSF->params->data.F32[PM_PAR_XPOS] - source->pixels->col0;
+    float Yo = source->modelPSF->params->data.F32[PM_PAR_YPOS] - source->pixels->row0;
     for (int iy = 0; iy < source->pixels->numRows; iy++) {
 	for (int ix = 0; ix < source->pixels->numCols; ix++) {
-	    
 	    if (source->mask->data.U8[iy][ix]) {
-		rmask->data.F32[nm] = RADIUS;
-		lfmask->data.F32[nm] = log10(source->pixels->data.F32[iy][ix]);
-		nm++;
+		rb->data.F32[nb] = hypot (ix - Xo, iy - Yo) ;
+		fb->data.F32[nb] = log10(source->pixels->data.F32[iy][ix]);
+		nb++;
 	    } else {
-		radius->data.F32[n] = RADIUS;
-		lflux->data.F32[n] = log10(source->pixels->data.F32[iy][ix]);
-		n++;
+		rg->data.F32[ng] = hypot (ix - Xo, iy - Yo) ;
+		fg->data.F32[ng] = log10(source->pixels->data.F32[iy][ix]);
+		ng++;
 	    }
 	}
@@ -56,26 +75,44 @@
 
     graphdata.color = KapaColorByName ("black");
+    graphdata.ptype = 2;
+    graphdata.size = 0.5;
+    graphdata.style = 2;
+    KapaPrepPlot (*kapa, ng, &graphdata);
+    KapaPlotVector (*kapa, ng, rg->data.F32);
+    KapaPlotVector (*kapa, ng, fg->data.F32);
+
+    graphdata.color = KapaColorByName ("red");
     graphdata.ptype = 0;
     graphdata.size = 0.3;
     graphdata.style = 2;
-    KapaPrepPlot (kapa, nm, &graphdata);
-    KapaPlotVector (kapa, nm, rmask->data.F32);
-    KapaPlotVector (kapa, nm, lfmask->data.F32);
+    KapaPrepPlot (*kapa, nb, &graphdata);
+    KapaPlotVector (*kapa, nb, rb->data.F32);
+    KapaPlotVector (*kapa, nb, fb->data.F32);
   
-    graphdata.color = KapaColorByName ("red");
-    graphdata.ptype = 2;
-    graphdata.size = 0.5;
-    graphdata.style = 2;
-    KapaPrepPlot (kapa, n, &graphdata);
-    KapaPlotVector (kapa, n, radius->data.F32);
-    KapaPlotVector (kapa, n, lflux->data.F32);
+    psLogMsg ("psphot", 3, "saving plot to %s", filename);
 
-    psLogMsg ("psphot", 3, "saving plot to %s", file->filename);
-    KapaPS (kapa, false, KAPA_PS_NEWPAGE, filename, "none");
+    char pagename[16];
+    sprintf (pagename, "%02d", nCount);
+    if (nCount == 0) {
+	KiiPS (*kapa, false, KAPA_PS_NEWPLOT, filename, pagename);
+    } else {
+	KiiPS (*kapa, false, KAPA_PS_NEWPAGE, filename, pagename);
+    }
 
-    psFree (radius);
-    psFree (lflux);
-    psFree (rmask);
-    psFree (lfmask);
+    psFree (rg);
+    psFree (fg);
+    psFree (rb);
+    psFree (fb);
 
+    nCount ++;
+    return true;
 }
+
+# else
+
+bool psphotRadialPlot (int *kapa, const char *filename, pmSource *source) {
+    psLogMsg ("psphot", 3, "skipping source radial plots");
+    return true;
+}
+
+# endif
