Changeset 26837
- Timestamp:
- Feb 9, 2010, 8:24:35 PM (16 years ago)
- Location:
- branches/eam_branches/20091201/ppViz
- Files:
-
- 8 deleted
- 3 edited
- 10 copied
-
. (copied) (copied from trunk/ppViz ) (1 prop)
-
configure.ac (modified) (1 diff)
-
src/Makefile.am (modified) (1 diff)
-
src/ppVizPattern (copied) (copied from trunk/ppViz/src/ppVizPSF )
-
src/ppVizPattern/Makefile.am (modified) (1 diff)
-
src/ppVizPattern/ppVizPSF.c (deleted)
-
src/ppVizPattern/ppVizPSF.h (deleted)
-
src/ppVizPattern/ppVizPSFArguments.c (deleted)
-
src/ppVizPattern/ppVizPSFCamera.c (deleted)
-
src/ppVizPattern/ppVizPSFData.c (deleted)
-
src/ppVizPattern/ppVizPSFLoop.c (deleted)
-
src/ppVizPattern/ppVizPSFVersion.c (deleted)
-
src/ppVizPattern/ppVizPSFVersionDefinitions.h.in (deleted)
-
src/ppVizPattern/ppVizPattern.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSF.c ) (4 diffs)
-
src/ppVizPattern/ppVizPattern.h (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSF.h ) (1 diff)
-
src/ppVizPattern/ppVizPatternArguments.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFArguments.c ) (4 diffs)
-
src/ppVizPattern/ppVizPatternCamera.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFCamera.c ) (3 diffs)
-
src/ppVizPattern/ppVizPatternData.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFData.c ) (3 diffs)
-
src/ppVizPattern/ppVizPatternLoop.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFLoop.c ) (7 diffs)
-
src/ppVizPattern/ppVizPatternVersion.c (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFVersion.c ) (6 diffs)
-
src/ppVizPattern/ppVizPatternVersionDefinitions.h.in (copied) (copied from trunk/ppViz/src/ppVizPSF/ppVizPSFVersionDefinitions.h.in ) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/ppViz
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/eam_branches/20091113/ppViz 26119-26255 /branches/pap/ppViz 26320
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/eam_branches/20091201/ppViz/configure.ac
r26377 r26837 35 35 src/ppVizPSF/Makefile 36 36 src/ppCoord/Makefile 37 src/ppVizPattern/Makefile 37 38 ]) 38 39 -
branches/eam_branches/20091201/ppViz/src/Makefile.am
r26377 r26837 1 SUBDIRS = ppVizPSF ppCoord 1 SUBDIRS = ppVizPSF ppCoord ppVizPattern 2 2 3 3 CLEANFILES = *.pyc *~ core core.* -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/Makefile.am
r26352 r26837 1 bin_PROGRAMS = ppVizP SF1 bin_PROGRAMS = ppVizPattern 2 2 3 3 if HAVE_SVNVERSION 4 PPVIZP SF_VERSION=`$(SVNVERSION) ..`4 PPVIZPATTERN_VERSION=`$(SVNVERSION) ..` 5 5 else 6 PPVIZP SF_VERSION="UNKNOWN"6 PPVIZPATTERN_VERSION="UNKNOWN" 7 7 endif 8 8 9 9 if HAVE_SVN 10 PPVIZP SF_BRANCH=`$(SVN) info .. | $(SED) -n -e '/URL:/ h' -e '/Repository Root:/ { x; H; x; s|Repository Root: \(.*\)\nURL: \1\(.*\)|\2| ; s|^/|| ; s|/[a-zA-Z]*/src.*|| ; p }'`11 PPVIZP SF_SOURCE=`$(SVN) info | $(SED) -n -e 's/Repository UUID: // p'`10 PPVIZPATTERN_BRANCH=`$(SVN) info .. | $(SED) -n -e '/URL:/ h' -e '/Repository Root:/ { x; H; x; s|Repository Root: \(.*\)\nURL: \1\(.*\)|\2| ; s|^/|| ; s|/[a-zA-Z]*/src.*|| ; p }'` 11 PPVIZPATTERN_SOURCE=`$(SVN) info | $(SED) -n -e 's/Repository UUID: // p'` 12 12 else 13 PPVIZP SF_BRANCH="UNKNOWN"14 PPVIZP SF_SOURCE="UNKNOWN"13 PPVIZPATTERN_BRANCH="UNKNOWN" 14 PPVIZPATTERN_SOURCE="UNKNOWN" 15 15 endif 16 16 17 # Force recompilation of ppVizP SFVersion.c, since it gets the version information18 ppVizP SFVersion.c: ppVizPSFVersionDefinitions.h19 ppVizP SFVersionDefinitions.h: ppVizPSFVersionDefinitions.h.in FORCE20 -$(RM) ppVizP SFVersionDefinitions.h21 $(SED) -e "s|@PPVIZP SF_VERSION@|\"$(PPVIZPSF_VERSION)\"|" -e "s|@PPVIZPSF_BRANCH@|\"$(PPVIZPSF_BRANCH)\"|" -e "s|@PPVIZPSF_SOURCE@|\"$(PPVIZPSF_SOURCE)\"|" ppVizPSFVersionDefinitions.h.in > ppVizPSFVersionDefinitions.h17 # Force recompilation of ppVizPatternVersion.c, since it gets the version information 18 ppVizPatternVersion.c: ppVizPatternVersionDefinitions.h 19 ppVizPatternVersionDefinitions.h: ppVizPatternVersionDefinitions.h.in FORCE 20 -$(RM) ppVizPatternVersionDefinitions.h 21 $(SED) -e "s|@PPVIZPATTERN_VERSION@|\"$(PPVIZPATTERN_VERSION)\"|" -e "s|@PPVIZPATTERN_BRANCH@|\"$(PPVIZPATTERN_BRANCH)\"|" -e "s|@PPVIZPATTERN_SOURCE@|\"$(PPVIZPATTERN_SOURCE)\"|" ppVizPatternVersionDefinitions.h.in > ppVizPatternVersionDefinitions.h 22 22 FORCE: ; 23 23 24 BUILT_SOURCES = ppVizP SFVersionDefinitions.h24 BUILT_SOURCES = ppVizPatternVersionDefinitions.h 25 25 26 26 27 ppVizP SF_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPVIZPSF_CFLAGS)28 ppVizP SF_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPVIZPSF_LIBS)27 ppVizPattern_CPPFLAGS = $(PSLIB_CFLAGS) $(PSMODULE_CFLAGS) $(PPVIZPATTERN_CFLAGS) 28 ppVizPattern_LDFLAGS = $(PSLIB_LIBS) $(PSMODULE_LIBS) $(PPVIZPATTERN_LIBS) 29 29 30 ppVizP SF_SOURCES = \31 ppVizP SF.c \32 ppVizP SFArguments.c \33 ppVizP SFCamera.c \34 ppVizP SFData.c \35 ppVizP SFLoop.c \36 ppVizP SFVersion.c30 ppVizPattern_SOURCES = \ 31 ppVizPattern.c \ 32 ppVizPatternArguments.c \ 33 ppVizPatternCamera.c \ 34 ppVizPatternData.c \ 35 ppVizPatternLoop.c \ 36 ppVizPatternVersion.c 37 37 38 38 noinst_HEADERS = \ 39 ppVizP SF.h39 ppVizPattern.h 40 40 41 41 clean-local: -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPattern.c
r26827 r26837 7 7 #include <psmodules.h> 8 8 9 #include "ppVizP SF.h"9 #include "ppVizPattern.h" 10 10 11 11 int main(int argc, char *argv[]) 12 12 { 13 ppVizP SFVersionPrint();13 ppVizPatternVersionPrint(); 14 14 15 ppVizP SFData *data = ppVizPSFDataInit(&argc, argv);15 ppVizPatternData *data = ppVizPatternDataInit(&argc, argv); 16 16 if (!data) { 17 17 psErrorStackPrint(stderr, "Unable to initialise."); … … 19 19 } 20 20 21 if (!ppVizP SFArguments(data, argc, argv)) {21 if (!ppVizPatternArguments(data, argc, argv)) { 22 22 psErrorStackPrint(stderr, "Unable to parse arguments."); 23 23 psFree(data); … … 25 25 } 26 26 27 if (!ppVizP SFCamera(data)) {27 if (!ppVizPatternCamera(data)) { 28 28 psErrorStackPrint(stderr, "Unable to parse camera configuration."); 29 29 psFree(data); … … 31 31 } 32 32 33 if (!ppVizP SFLoop(data)) {33 if (!ppVizPatternLoop(data)) { 34 34 psErrorStackPrint(stderr, "Unable to process data."); 35 35 psFree(data); -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPattern.h
r26827 r26837 5 5 #include <psmodules.h> 6 6 7 #define PPVIZP SF_RECIPE "PPVIZPSF" // Recipe name7 #define PPVIZPATTERN_RECIPE "PPVIZPATTERN" // Recipe name 8 8 9 9 // Data for processing 10 10 typedef struct { 11 psString psfName; // Filename with PSF 12 psString sourcesName; // Filename with sources 13 int fakeNum; // Number of fake sources 14 float fakeMag; // Magnitude of fake sources 11 psString patternName; // Filename with pattern 15 12 psString outRoot; // Output root name 16 float minFlux; // Minimum flux for sources17 int size; // Size of PSF image18 float x, y; // Position of fake source19 13 pmConfig *config; // Configuration 20 } ppVizP SFData;14 } ppVizPatternData; 21 15 22 16 /// Initialise data for processing 23 ppVizP SFData *ppVizPSFDataInit(int *argc, char *argv[] // Command-line arguments17 ppVizPatternData *ppVizPatternDataInit(int *argc, char *argv[] // Command-line arguments 24 18 ); 25 19 26 20 /// Parse command-line arguments 27 bool ppVizP SFArguments(ppVizPSFData *data, // Data for processing21 bool ppVizPatternArguments(ppVizPatternData *data, // Data for processing 28 22 int argc, char *argv[] // Command-line arguments 29 23 ); 30 24 31 25 /// Parse camera configurations 32 bool ppVizP SFCamera(ppVizPSFData *data // Data for processing26 bool ppVizPatternCamera(ppVizPatternData *data // Data for processing 33 27 ); 34 28 35 29 /// Loop over input data, processing 36 bool ppVizP SFLoop(ppVizPSFData *data // Data for processing30 bool ppVizPatternLoop(ppVizPatternData *data // Data for processing 37 31 ); 38 32 39 33 /// Add version information to header 40 bool ppVizP SFVersionHeader(34 bool ppVizPatternVersionHeader( 41 35 psMetadata *header // Header to supplement 42 36 ); 43 37 44 38 /// Print version information to stdout 45 void ppVizP SFVersionPrint(void);39 void ppVizPatternVersionPrint(void); 46 40 47 41 #endif -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternArguments.c
r26827 r26837 1 /** @file ppVizP SFArguments.c1 /** @file ppVizPatternArguments.c 2 2 * 3 3 * @brief 4 4 * 5 * @ingroup ppVizP SF5 * @ingroup ppVizPattern 6 6 * 7 7 * @author Paul Price … … 18 18 #include <psmodules.h> 19 19 20 #include "ppVizP SF.h"20 #include "ppVizPattern.h" 21 21 22 22 /// Print usage information and die 23 23 static void usage(const char *program, // Name of the program 24 24 psMetadata *arguments, // Command-line arguments 25 ppVizP SFData *data // Run-time data25 ppVizPatternData *data // Run-time data 26 26 ) 27 27 { 28 fprintf(stderr, "\nPan-STARRS PSFvisualisation\n\n");28 fprintf(stderr, "\nPan-STARRS pattern visualisation\n\n"); 29 29 fprintf(stderr, 30 "Usage: %s -p sf PSF.psf -sources SOURCES.cmfOUTPUT_ROOT\n\n",30 "Usage: %s -pattern PATTERN.ptn OUTPUT_ROOT\n\n", 31 31 program); 32 32 fprintf(stderr, "\n"); … … 42 42 43 43 44 bool ppVizP SFArguments(ppVizPSFData *data, int argc, char *argv[])44 bool ppVizPatternArguments(ppVizPatternData *data, int argc, char *argv[]) 45 45 { 46 46 assert(data); … … 48 48 49 49 psMetadata *arguments = psMetadataAlloc(); // Command-line arguments 50 psMetadataAddStr(arguments, PS_LIST_TAIL, "-psf", 0, "Filename of PSF", NULL); 51 psMetadataAddStr(arguments, PS_LIST_TAIL, "-sources", 0, "Filename of CMF sources", NULL); 52 psMetadataAddS32(arguments, PS_LIST_TAIL, "-fake-num", 0, "Number of fake sources", 0); 53 psMetadataAddF32(arguments, PS_LIST_TAIL, "-fake-mag", 0, "Magnitude of fake sources", NAN); 54 psMetadataAddF32(arguments, PS_LIST_TAIL, "-x", 0, "x position of fake source [0..1]", NAN); 55 psMetadataAddF32(arguments, PS_LIST_TAIL, "-y", 0, "y position of fake source [0..1]", NAN); 50 psMetadataAddStr(arguments, PS_LIST_TAIL, "-pattern", 0, "Filename of pattern correction", NULL); 56 51 if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 2) { 57 52 usage(argv[0], arguments, data); 58 53 } 59 54 60 bool mdok; // Status of MD lookup 61 data->psfName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-psf")); 62 data->sourcesName = psMemIncrRefCounter(psMetadataLookupStr(&mdok, arguments, "-sources")); 63 data->fakeNum = psMetadataLookupS32(NULL, arguments, "-fake-num"); 64 data->fakeMag = psMetadataLookupF32(NULL, arguments, "-fake-mag"); 55 data->patternName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-pattern")); 65 56 data->outRoot = psStringCopy(argv[1]); 66 data->x = psMetadataLookupF32(NULL, arguments, "-x");67 data->y = psMetadataLookupF32(NULL, arguments, "-y");68 57 psMetadataAddStr(data->config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Output root name", data->outRoot); 69 58 70 psTrace("ppVizP SF", 1, "Done reading command-line arguments\n");59 psTrace("ppVizPattern", 1, "Done reading command-line arguments\n"); 71 60 psFree(arguments); 72 61 73 PS_ASSERT_STRING_NON_EMPTY(data->p sfName, false);62 PS_ASSERT_STRING_NON_EMPTY(data->patternName, false); 74 63 PS_ASSERT_STRING_NON_EMPTY(data->outRoot, false); 75 64 -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternCamera.c
r26827 r26837 7 7 #include <psmodules.h> 8 8 9 #include "ppVizP SF.h"9 #include "ppVizPattern.h" 10 10 11 11 /// Add a single filename to the arguments as an array, so that it can be used with pmFPAfileBindFromArgs, etc … … 27 27 28 28 29 bool ppVizP SFCamera(ppVizPSFData *data // Run-time data29 bool ppVizPatternCamera(ppVizPatternData *data // Run-time data 30 30 ) 31 31 { 32 32 bool status; // Status of file definition 33 33 34 fileArguments("PSF", data->psfName, "Input PSF", data->config); 35 pmFPAfile *psf = pmFPAfileDefineFromArgs(&status, data->config, "PSPHOT.PSF.LOAD", "PSF"); // File 36 if (!status || !psf) { 37 psError(PS_ERR_IO, false, "Failed to build file from PSPHOT.LOAD.PSF"); 34 fileArguments("PATTERN", data->patternName, "Input pattern", data->config); 35 pmFPAfile *input = pmFPAfileDefineFromArgs(&status, data->config, "PPVIZPATTERN.INPUT", 36 "PATTERN"); // File 37 if (!status || !input) { 38 psError(PS_ERR_IO, false, "Failed to build file from PPVIZPATTERN.INPUT"); 38 39 return false; 39 40 } 40 41 41 if (data->sourcesName) { 42 fileArguments("SOURCES", data->sourcesName, "Input sources", data->config); 43 pmFPAfile *srcs = pmFPAfileBindFromArgs(&status, psf, data->config, 44 "PSPHOT.INPUT.CMF", "SOURCES"); // File 45 if (!status || !srcs) { 46 psError(PS_ERR_IO, false, "Failed to build file from PSPHOT.INPUT.CMF"); 47 return false; 48 } 49 } 50 51 pmFPAfile *output = pmFPAfileDefineOutput(data->config, psf->fpa, "PPVIZPSF.OUTPUT"); 42 pmFPAfile *output = pmFPAfileDefineOutput(data->config, input->fpa, "PPVIZPATTERN.OUTPUT"); 52 43 if (!output) { 53 44 psError(psErrorCodeLast(), false, "Unable to define output."); … … 56 47 output->save = true; 57 48 49 #if 0 58 50 // Now the camera has been determined, we can read the recipe 59 psMetadata *recipe = psMetadataLookupMetadata(NULL, data->config->recipes, PPVIZP SF_RECIPE); // Recipe51 psMetadata *recipe = psMetadataLookupMetadata(NULL, data->config->recipes, PPVIZPATTERN_RECIPE); // Recipe 60 52 if (!recipe) { 61 psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find recipe %s", PPVIZP SF_RECIPE);53 psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find recipe %s", PPVIZPATTERN_RECIPE); 62 54 return false; 63 55 } 64 65 data->minFlux = psMetadataLookupF32(NULL, recipe, "MINFLUX"); // Minimum flux 66 if (!isfinite(data->minFlux) || data->minFlux <= 0) { 67 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unable to find legitimate value for MINFLUX"); 68 return false; 69 } 70 71 if (!data->sourcesName) { 72 data->size = psMetadataLookupS32(NULL, recipe, "SIZE"); // Size of PSF 73 if (data->size <= 0) { 74 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unable to find legitimate value for SIZE"); 75 return false; 76 } 77 } 56 #endif 78 57 79 58 return true; -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternData.c
r26827 r26837 7 7 #include <psmodules.h> 8 8 9 #include "ppVizP SF.h"9 #include "ppVizPattern.h" 10 10 11 11 // Destructor 12 static void vizP SFDataFree(ppVizPSFData *data // Data to free12 static void vizPatternDataFree(ppVizPatternData *data // Data to free 13 13 ) 14 14 { 15 psFree(data->psfName); 16 psFree(data->sourcesName); 15 psFree(data->patternName); 17 16 psFree(data->outRoot); 18 17 psFree(data->config); … … 21 20 22 21 23 ppVizP SFData *ppVizPSFDataAlloc(void)22 ppVizPatternData *ppVizPatternDataAlloc(void) 24 23 { 25 ppVizP SFData *data = psAlloc(sizeof(ppVizPSFData)); // Processing data, to return26 psMemSetDeallocator(data, (psFreeFunc)vizP SFDataFree);24 ppVizPatternData *data = psAlloc(sizeof(ppVizPatternData)); // Processing data, to return 25 psMemSetDeallocator(data, (psFreeFunc)vizPatternDataFree); 27 26 28 data->psfName = NULL; 29 data->sourcesName = NULL; 30 data->fakeNum = 0; 31 data->fakeMag = NAN; 27 data->patternName = NULL; 32 28 data->outRoot = NULL; 33 29 data->config = NULL; 34 data->minFlux = NAN;35 data->size = 0;36 data->x = NAN;37 data->y = NAN;38 30 39 31 return data; … … 41 33 42 34 43 ppVizP SFData *ppVizPSFDataInit(int *argc, char **argv)35 ppVizPatternData *ppVizPatternDataInit(int *argc, char **argv) 44 36 { 45 37 PS_ASSERT_PTR_NON_NULL(argc, NULL); 46 38 PS_ASSERT_PTR_NON_NULL(argv, NULL); 47 39 48 ppVizP SFData *data = ppVizPSFDataAlloc(); // Processing data, to return49 data->config = pmConfigRead(argc, argv, PPVIZP SF_RECIPE);40 ppVizPatternData *data = ppVizPatternDataAlloc(); // Processing data, to return 41 data->config = pmConfigRead(argc, argv, PPVIZPATTERN_RECIPE); 50 42 if (!data->config) { 51 43 psError(PS_ERR_UNKNOWN, false, "Unable to read configuration."); -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternLoop.c
r26827 r26837 7 7 #include <psmodules.h> 8 8 9 #include "ppVizP SF.h"9 #include "ppVizPattern.h" 10 10 11 #define MASK_BAD 0xFFFF // Mask for bad pixels 11 12 12 bool ppVizP SFLoop(ppVizPSFData *data // Run-time data13 bool ppVizPatternLoop(ppVizPatternData *data // Run-time data 13 14 ) 14 15 { 15 16 pmConfig *config = data->config; // Configuration data 16 pmFPAfile * psfFile = pmFPAfileSelectSingle(config->files, "PSPHOT.PSF.LOAD", 0); // File with PSF17 pmFPAfile *input = pmFPAfileSelectSingle(config->files, "PPVIZPATTERN.INPUT", 0); // File with PSF 17 18 18 19 pmFPAview *view = pmFPAviewAlloc(0); // Pointer into FPA hierarchy … … 22 23 23 24 pmChip *chip; // Chip from FPA 24 while ((chip = pmFPAviewNextChip(view, psfFile->fpa, 1))) {25 while ((chip = pmFPAviewNextChip(view, input->fpa, 1))) { 25 26 if (!chip->process || !chip->file_exists) { 26 27 continue; … … 31 32 } 32 33 33 if (chip->cells->n != 1) {34 psWarning("More than one cell present for chip %d", view->chip);35 }36 37 34 pmCell *cell; // Cell from chip 38 while ((cell = pmFPAviewNextCell(view, psfFile->fpa, 1))) {35 while ((cell = pmFPAviewNextCell(view, input->fpa, 1))) { 39 36 if (!cell->process || !cell->file_exists) { 40 37 continue; … … 45 42 } 46 43 47 if (cell->readouts->n == 0) {48 pmReadout *ro = pmReadoutAlloc(cell);49 ro->data_exists = true;50 cell->data_exists = true;51 chip->data_exists = true;52 psFree(ro); // Drop reference53 }54 55 if (cell->readouts->n > 1) {56 psWarning("More than one readout present for chip %d, cell %d", view->chip, view->cell);57 }58 59 44 pmReadout *readout; // Readout from cell 60 while ((readout = pmFPAviewNextReadout(view, psfFile->fpa, 1))) {45 while ((readout = pmFPAviewNextReadout(view, input->fpa, 1))) { 61 46 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 62 47 psError(PS_ERR_UNKNOWN, false, "Error loading data from files."); … … 67 52 } 68 53 69 pmPSF *psf = psMetadataLookupPtr(NULL, chip->analysis, "PSPHOT.PSF"); // PSF 70 assert(psf); 54 int numCols = 0, numRows = 0; // Size of image 71 55 72 bool mdok; // Status of MD lookup 73 psArray *sources = psMetadataLookupPtr(&mdok, readout->analysis, "PSPHOT.SOURCES"); // Sources 74 int numCols = 0, numRows = 0; // Size of image 75 psVector *xOffset = NULL, *yOffset = NULL; // Offset from source to true position 56 // Get size of image from concepts 57 if (numCols == 0 || numRows == 0) { 58 numCols = psMetadataLookupS32(NULL, cell->concepts, "CELL.XSIZE"); 59 numRows = psMetadataLookupS32(NULL, cell->concepts, "CELL.YSIZE"); 60 } 76 61 77 if (sources || (data->fakeNum > 0 && isfinite(data->fakeMag))) { 78 numCols = psf->fieldNx; 79 numRows = psf->fieldNy; 80 psLogMsg("ppVizPSF", PS_LOG_INFO, "Generating %dx%d image", numCols, numRows); 81 } 82 if (sources) { 83 psMemIncrRefCounter(sources); 84 psLogMsg("ppVizPSF", PS_LOG_INFO, "Using %ld input sources", sources->n); 85 } 86 if (data->fakeNum > 0 && isfinite(data->fakeMag)) { 87 long numOld = 0; // Old number of sources 88 long numNew = -1; // New number of sources 89 psLogMsg("ppVizPSF", PS_LOG_INFO, "Adding %d fake sources", data->fakeNum); 90 if (sources) { 91 numOld = sources->n; 92 numNew = numOld + data->fakeNum; 93 sources = psArrayRealloc(sources, numNew); 94 sources->n = numNew; 95 } else { 96 numNew = data->fakeNum; 97 sources = psArrayAlloc(numNew); 98 } 99 100 psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS); // Random number generator 101 102 for (int i = numOld; i < numNew; i++) { 103 pmSource *source = pmSourceAlloc(); // Fake source 104 sources->data[i] = source; 105 float xSrc = psRandomUniform(rng) * numCols, ySrc = psRandomUniform(rng) * numRows; // Position of source 106 107 pmModel *model = pmModelFromPSFforXY(psf, xSrc, ySrc, 1.0); // Model for normalisation 108 float fluxNorm = model->modelFlux(model->params); // Flux for peak=1 109 float fluxPeak = powf(10.0, -0.4 * data->fakeMag) / fluxNorm; // Peak flux 110 source->peak = pmPeakAlloc(xSrc, ySrc, fluxPeak, PM_PEAK_LONE); 111 source->psfMag = data->fakeMag; 112 psFree(model); 113 } 114 } 115 if (!sources) { 116 // Generate fake image with only a single realisation of the PSF 117 sources = psArrayAlloc(1); 118 pmSource *source = pmSourceAlloc(); // Fake source 119 sources->data[0] = source; 120 float xRel = isfinite(data->x) ? data->x : 0.5; // Relative position in x 121 float yRel = isfinite(data->y) ? data->y : 0.5; // Relative position in y 122 float xSrc = xRel * psf->fieldNx, ySrc = yRel * psf->fieldNy; // Position of source 123 source->peak = pmPeakAlloc(xSrc, ySrc, 1.0, PM_PEAK_LONE); 124 pmModel *model = pmModelFromPSFforXY(psf, xSrc, ySrc, 1.0); // Model for normalisation 125 float flux = model->modelFlux(model->params); // Flux for peak=1 126 psFree(model); 127 source->psfMag = -2.5 * log10(flux); 128 xOffset = psVectorAlloc(1, PS_TYPE_S32); 129 yOffset = psVectorAlloc(1, PS_TYPE_S32); 130 xOffset->data.S32[0] = data->size - xSrc; 131 yOffset->data.S32[0] = data->size - ySrc; 132 numCols = 2 * data->size + 1; 133 numRows = 2 * data->size + 1; 134 psLogMsg("ppVizPSF", PS_LOG_INFO, "Generating %dx%d image with single PSF", 135 numCols, numRows); 62 // Get size of image from TRIMSEC 63 if (numCols == 0 || numRows == 0) { 64 psRegion *trimsec = psMetadataLookupPtr(NULL, cell->concepts, "CELL.TRIMSEC"); 65 numCols = trimsec->x1 - trimsec->x0; 66 numRows = trimsec->y1 - trimsec->y0; 136 67 } 137 68 … … 141 72 } 142 73 143 if (!pmReadoutFakeFromSources(readout, numCols, numRows, sources, 0, xOffset, yOffset, psf, 144 data->minFlux, 0, false, true)) { 145 psError(PS_ERR_UNKNOWN, false, "Unable to generate fake readout."); 74 readout->image = psImageAlloc(numCols, numRows, PS_TYPE_F32); 75 psImageInit(readout->image, 0.0); 76 77 if (!pmPatternRowApply(readout, MASK_BAD) || !pmPatternCellApply(readout, MASK_BAD)) { 78 psError(PS_ERR_UNKNOWN, false, "Unable to apply pattern correction."); 146 79 return false; 147 80 } 148 81 149 psFree(sources); 150 psFree(xOffset); 151 psFree(yOffset); 152 153 pmHDU *hdu = pmHDUGetLowest(psfFile->fpa, chip, cell); // HDU for readout 82 pmHDU *hdu = pmHDUGetLowest(input->fpa, chip, cell); // HDU for readout 154 83 if (!hdu) { 155 84 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find HDU for data."); … … 159 88 hdu->header = psMetadataAlloc(); 160 89 } 161 ppVizP SFVersionHeader(hdu->header);90 ppVizPatternVersionHeader(hdu->header); 162 91 163 92 -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternVersion.c
r26827 r26837 1 /** @file ppVizP SFVersion.c1 /** @file ppVizPatternVersion.c 2 2 * 3 3 * @brief 4 4 * 5 * @ingroup ppVizP SF5 * @ingroup ppVizPattern 6 6 * 7 7 * @author IfA … … 19 19 #include <psmodules.h> 20 20 21 #include "ppVizP SF.h"22 #include "ppVizP SFVersionDefinitions.h"21 #include "ppVizPattern.h" 22 #include "ppVizPatternVersionDefinitions.h" 23 23 24 #ifndef PPVIZP SF_VERSION25 #error "PPVIZP SF_VERSION is not set"24 #ifndef PPVIZPATTERN_VERSION 25 #error "PPVIZPATTERN_VERSION is not set" 26 26 #endif 27 #ifndef PPVIZP SF_BRANCH28 #error "PPVIZP SF_BRANCH is not set"27 #ifndef PPVIZPATTERN_BRANCH 28 #error "PPVIZPATTERN_BRANCH is not set" 29 29 #endif 30 #ifndef PPVIZP SF_SOURCE31 #error "PPVIZP SF_SOURCE is not set"30 #ifndef PPVIZPATTERN_SOURCE 31 #error "PPVIZPATTERN_SOURCE is not set" 32 32 #endif 33 33 34 psString ppVizP SFVersion(void)34 psString ppVizPatternVersion(void) 35 35 { 36 36 char *value = NULL; 37 psStringAppend(&value, "%s@%s", PPVIZP SF_BRANCH, PPVIZPSF_VERSION);37 psStringAppend(&value, "%s@%s", PPVIZPATTERN_BRANCH, PPVIZPATTERN_VERSION); 38 38 return value; 39 39 } 40 40 41 psString ppVizP SFSource(void)41 psString ppVizPatternSource(void) 42 42 { 43 return psStringCopy(PPVIZP SF_SOURCE);43 return psStringCopy(PPVIZPATTERN_SOURCE); 44 44 } 45 45 46 psString ppVizP SFVersionLong(void)46 psString ppVizPatternVersionLong(void) 47 47 { 48 psString version = ppVizP SFVersion(); // Version, to return49 psString source = ppVizP SFSource(); // Source48 psString version = ppVizPatternVersion(); // Version, to return 49 psString source = ppVizPatternSource(); // Source 50 50 51 psStringPrepend(&version, "ppVizP SF");51 psStringPrepend(&version, "ppVizPattern "); 52 52 psStringAppend(&version, " from %s, built %s, %s", source, __DATE__, __TIME__); 53 53 psFree(source); … … 62 62 }; 63 63 64 bool ppVizP SFVersionHeader(psMetadata *header)64 bool ppVizPatternVersionHeader(psMetadata *header) 65 65 { 66 66 PS_ASSERT_METADATA_NON_NULL(header, false); … … 70 70 psFree(time); 71 71 psString history = NULL; // History string 72 psStringAppend(&history, "ppVizP SFat %s", timeString);72 psStringAppend(&history, "ppVizPattern at %s", timeString); 73 73 psFree(timeString); 74 74 psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history); … … 78 78 psModulesVersionHeader(header); 79 79 80 psString version = ppVizP SFVersion(); // Software version81 psString source = ppVizP SFSource(); // Software source80 psString version = ppVizPatternVersion(); // Software version 81 psString source = ppVizPatternSource(); // Software source 82 82 83 psStringPrepend(&version, "ppVizP SFversion: ");84 psStringPrepend(&version, "ppVizP SFsource: ");83 psStringPrepend(&version, "ppVizPattern version: "); 84 psStringPrepend(&version, "ppVizPattern source: "); 85 85 86 86 psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, version); … … 93 93 } 94 94 95 void ppVizP SFVersionPrint(void)95 void ppVizPatternVersionPrint(void) 96 96 { 97 97 psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now 98 98 psString timeString = psTimeToISO(time); // The time in an ISO string 99 99 psFree(time); 100 psLogMsg("ppVizP SF", PS_LOG_INFO, "ppVizPSFat %s", timeString);100 psLogMsg("ppVizPattern", PS_LOG_INFO, "ppVizPattern at %s", timeString); 101 101 psFree(timeString); 102 102 103 103 psString pslib = psLibVersionLong();// psLib version 104 104 psString psmodules = psModulesVersionLong(); // psModules version 105 psString ppVizP SF = ppVizPSFVersionLong(); // ppVizPSFversion105 psString ppVizPattern = ppVizPatternVersionLong(); // ppVizPattern version 106 106 107 psLogMsg("ppVizP SF", PS_LOG_INFO, "%s", pslib);108 psLogMsg("ppVizP SF", PS_LOG_INFO, "%s", psmodules);109 psLogMsg("ppVizP SF", PS_LOG_INFO, "%s", ppVizPSF);107 psLogMsg("ppVizPattern", PS_LOG_INFO, "%s", pslib); 108 psLogMsg("ppVizPattern", PS_LOG_INFO, "%s", psmodules); 109 psLogMsg("ppVizPattern", PS_LOG_INFO, "%s", ppVizPattern); 110 110 111 111 psFree(pslib); 112 112 psFree(psmodules); 113 psFree(ppVizP SF);113 psFree(ppVizPattern); 114 114 115 115 return; -
branches/eam_branches/20091201/ppViz/src/ppVizPattern/ppVizPatternVersionDefinitions.h.in
r26827 r26837 1 #ifndef PPVIZP SF_VERSION_DEFINITIONS_H2 #define PPVIZP SF_VERSION_DEFINITIONS_H1 #ifndef PPVIZPATTERN_VERSION_DEFINITIONS_H 2 #define PPVIZPATTERN_VERSION_DEFINITIONS_H 3 3 4 #define PPVIZP SF_VERSION @PPVIZPSF_VERSION@ // SVN version5 #define PPVIZP SF_BRANCH @PPVIZPSF_BRANCH@ // SVN branch6 #define PPVIZP SF_SOURCE @PPVIZPSF_SOURCE@ // SVN source4 #define PPVIZPATTERN_VERSION @PPVIZPATTERN_VERSION@ // SVN version 5 #define PPVIZPATTERN_BRANCH @PPVIZPATTERN_BRANCH@ // SVN branch 6 #define PPVIZPATTERN_SOURCE @PPVIZPATTERN_SOURCE@ // SVN source 7 7 8 8 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
