IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25256 for trunk/ppMops


Ignore:
Timestamp:
Sep 2, 2009, 2:36:52 PM (17 years ago)
Author:
Paul Price
Message:

Merging branches/pap_mops into trunk. ppMops now merges multiple skycells, and these get published for MOPS as a single file per exposure. Tested and works.

Location:
trunk
Files:
1 deleted
5 edited
5 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/ppMops/ICDlite.txt

    r25135 r25256  
    7979 * ASTRORMS added to make absolute (i.e., across exposures) astrometry errors more accurate
    8080 * DE_MAGnn and DE_EFFnn replace DE1 through DE10, which were never well defined
     81 * Removed LIMITMAG, which was never well defined, and is unnecessary given the DE_MAGnn and DE_EFFnn
    8182
    8283=== Table ===
     
    119120
    120121
     122=== Example ===
    121123
    122 
    123                             Table 3: IPP-MOPS Transient Detection Keywords
    124 FITS Keyword      Precision                     Description
    125 FPA ID            char(20)                      IPP-assigned identifier that can be used to trace back to this FPA
    126 MJD-OBS           F64                           midpoint time of the exposure as a MJD and day fraction
    127 RA                HH:MM:SS.SSS                 field center RA at exposure midpoint, string
    128 DEC               sDD:MM:SS (s is + or -) field center declination at exposure midpoint, string
    129 EXPTIME           F64                          exposure time in seconds
    130 ROTANGLE          F64                          image rotation of the y-axis in degrees, from local N toward E
    131 FILTER            char(3)                       effective filter used for the exposure, one of g, r, i, z, y, B, V, w
    132 AIRMASS           F64                          airmass at exposure midpoint
    133 LIMITMAG          F64                           limiting magnitude of detections for this FPA
    134 DE1 through DE10  F64                           detection efficiency coefficients
    135 OBSCODE           char(5)                       MPC three-character observatory code
    136 TEL ALT           F64                          telescope altitude at exposure midpoint, in degrees
    137 TEL AZ            F64                          telescope azimuth at exposure midpoint, in degrees
    138                          Table 4: IPP-MOPS Transient Detection Table Columns
    139              Column       Precision Description
    140              RA DEG       F64          detection center coordinates in degrees
    141              RA SIG       F64          error in the detection center, in degrees
    142              DEC DEG      F64          detection center coordinates in degrees
    143              DEC SIG      F64          error in the detection center, in degrees
    144              FLUX         F64          flux
    145              FLUX SIG     F64          error in the flux value
    146              STARPSF      F64          probability that the PSF matches a starlike PSF
    147              ANG          F64          detection’s elongation angle in degrees, local N toward E
    148              ANG SIG      F64          error in the angle, in degrees
    149              LEN          F64          elongation length of the detection in degrees
    150              LEN SIG      F64          error in the length, in degrees
     124{{{
     125XTENSION= 'BINTABLE'           / binary table extension
     126BITPIX  =                    8 / 8-bit bytes
     127NAXIS   =                    2 / 2-dimensional binary table
     128NAXIS1  =                   72 / width of table in bytes
     129NAXIS2  =                42032 / number of rows in table
     130PCOUNT  =                    0 / size of special data area
     131GCOUNT  =                    1 / one data group (required keyword)
     132TFIELDS =                   13 / number of fields in each row
     133TTYPE1  = 'RA      '           / label for field   1
     134TFORM1  = '1D      '           / data format of field: 8-byte DOUBLE
     135TTYPE2  = 'RA_ERR  '           / label for field   2
     136TFORM2  = '1D      '           / data format of field: 8-byte DOUBLE
     137TTYPE3  = 'DEC     '           / label for field   3
     138TFORM3  = '1D      '           / data format of field: 8-byte DOUBLE
     139TTYPE4  = 'DEC_ERR '           / label for field   4
     140TFORM4  = '1D      '           / data format of field: 8-byte DOUBLE
     141TTYPE5  = 'MAG     '           / label for field   5
     142TFORM5  = '1E      '           / data format of field: 4-byte REAL
     143TTYPE6  = 'MAG_ERR '           / label for field   6
     144TFORM6  = '1E      '           / data format of field: 4-byte REAL
     145TTYPE7  = 'STARPSF '           / label for field   7
     146TFORM7  = '1E      '           / data format of field: 4-byte REAL
     147TTYPE8  = 'ANGLE   '           / label for field   8
     148TFORM8  = '1E      '           / data format of field: 4-byte REAL
     149TTYPE9  = 'ANGLE_ERR'          / label for field   9
     150TFORM9  = '1E      '           / data format of field: 4-byte REAL
     151TTYPE10 = 'LENGTH  '           / label for field  10
     152TFORM10 = '1E      '           / data format of field: 4-byte REAL
     153TTYPE11 = 'LENGTH_ERR'         / label for field  11
     154TFORM11 = '1E      '           / data format of field: 4-byte REAL
     155TTYPE12 = 'FLAGS   '           / label for field  12
     156TFORM12 = '1J      '           / data format of field: 4-byte INTEGER
     157TZERO12 =           2147483648 / offset for unsigned integers
     158TSCAL12 =                    1 / data are not scaled
     159TTYPE13 = 'DIFF_SKYFILE_ID'    / label for field  13
     160TFORM13 = '1K      '           / data format of field: 8-byte INTEGER
     161SWSOURCE= '60eb6cdc-a59c-4636-a4e0-dba66a9721fd' / Software source
     162SWVERSN = 'branches/pap_mops/ppMops@25227' / Software version
     163HISTORY ppMops at 2009-09-02T03:48:46.695783
     164HISTORY psLib version: branches/pap_mops/psLib@25227
     165HISTORY psLib source: 60eb6cdc-a59c-4636-a4e0-dba66a9721fd
     166HISTORY ppMops version: branches/pap_mops/ppMops@25227
     167HISTORY ppMops source: 60eb6cdc-a59c-4636-a4e0-dba66a9721fd
     168EXP_NAME= 'o4995g0129o'        / Exposure name
     169EXP_ID  =                77164 / Exposure identifier
     170CHIP_ID =                24019 / Chip stage identifier
     171CAM_ID  =                17726 / Cam stage identifier
     172FAKE_ID =                10227 / Fake stage identifier
     173WARP_ID =                 8842 / Warp stage identifier
     174DIFF_ID =                    0 / Diff stage identifier
     175DIFF_POS=                    F / Positive subtraction?
     176MJD-OBS =     54995.4740598313 / MJD of exposure midpoint
     177RA      = '18:25:01.988'       / Right Ascension of boresight
     178DEC     = '-17:20:40.069'      / Declination of boresight
     179TEL_ALT =            51.951873 / Telescope altitude
     180TEL_AZ  =           179.483883 / Telescope azimuth
     181EXPTIME =                  38. / Exposure time (sec)
     182ROTANGLE=             333.1039 / Rotator position angle
     183FILTER  = 'r.00000 '           / Filter name
     184AIRMASS =                1.269 / Airmass of exposure
     185OBSCODE = 'F51     '           / IAU Observatory code
     186SEEING  =             1.678401 / Mean seeing
     187MAGZP   =             28.65226 / Magnitude zero point
     188MAGZPERR=             0.353063 / Error in magnitude zero point
     189ASTRORMS=            0.3111496 / RMS of astrometric fit
     190EXTNAME = 'MOPS_TRANSIENT_DETECTIONS'
     191END
     192}}}
  • trunk/ppMops/src/Makefile.am

    r24307 r25256  
    2828        ppMops.c                \
    2929        ppMopsVersion.c         \
    30         ppMopsData.c                   
     30        ppMopsArguments.c       \
     31        ppMopsDetections.c      \
     32        ppMopsRead.c            \
     33        ppMopsWrite.c           \
     34        ppMopsMerge.c
    3135
    3236noinst_HEADERS = \
  • trunk/ppMops/src/ppMops.c

    r25100 r25256  
    66int main(int argc, char *argv[])
    77{
    8     if (argc != 7) {
    9         fprintf(stderr, "Insufficient arguments.\n");
    10         fprintf(stderr, "Usage: %s DETECTIONS ZP EXP_ID EXP_NAME DIRECTION OUTPUT\n", argv[0]);
     8    psLibInit(NULL);
     9
     10    ppMopsArguments *args = ppMopsArgumentsParse(argc, argv); // Parsed arguments
     11    if (!args) {
     12        psErrorStackPrint(stderr, "Error parsing arguments");
    1113        exit(PS_EXIT_CONFIG_ERROR);
    1214    }
    1315
    14     ppMopsData *data = ppMopsDataAlloc(); // Configuration data
    15     data->detections = psStringCopy(argv[1]);
    16     data->zp = atof(argv[2]);
    17     data->exp_id = atoll(argv[3]);
    18     data->exp_name = psStringCopy(argv[4]);
    19     data->direction = atoi(argv[5]);
    20     data->output = psStringCopy(argv[6]);
    21 
    22     if (!isfinite(data->zp)) {
    23         psErrorStackPrint(stderr, "Zero point is unknown\n");
    24         exit(PS_EXIT_CONFIG_ERROR);
    25     }
     16    psArray *detections = ppMopsRead(args); // Detections from each input
     17    if (!detections) {
     18        psErrorStackPrint(stderr, "Unable to read detections");
     19        exit(PS_EXIT_SYS_ERROR);
     20    }
     21
     22    ppMopsDetections *merged = ppMopsMerge(detections); // Merged detections
     23    psFree(detections);
     24    if (!merged) {
     25        psErrorStackPrint(stderr, "Unable to merge detections");
     26        exit(PS_EXIT_SYS_ERROR);
     27    }
     28
     29    if (!ppMopsWrite(merged, args)) {
     30        psErrorStackPrint(stderr, "Unable to write detections");
     31        exit(PS_EXIT_SYS_ERROR);
     32    }
     33
     34    psFree(merged);
     35    psFree(args);
     36
     37    psLibFinalize();
     38
     39    return PS_EXIT_SUCCESS;
     40}
     41
     42
     43#if 0
     44    ps
     45
    2646
    2747    psArray *detections = NULL;         // Detections
     
    211231    psFree(data);
    212232
    213     return PS_EXIT_SUCCESS;
    214 }
     233#endif
     234
  • trunk/ppMops/src/ppMops.h

    r25100 r25256  
    1111                     PM_SOURCE_MODE_CR_LIMIT | PM_SOURCE_MODE_SKY_FAILURE) // Flags to exclude
    1212
    13 
    1413// Configuration data
    1514typedef struct {
    16     psString detections;                // Detections filename
    17     float zp;                           // Magnitude zero point
     15    psArray *input;                     // Input filenames
     16    psString exp_name;                  // Exposure name
    1817    psS64 exp_id;                       // Exposure identifier
    19     psString exp_name;                  // Exposure name
    20     bool direction;                     // Direction of subtraction, 1=positive, 0=negative
     18    psS64 chip_id;                      // Chip stage identifier
     19    psS64 cam_id;                       // Camera stage identifier
     20    psS64 fake_id;                      // Fake stage identifier
     21    psS64 warp_id;                      // Warp stage identifier
     22    psS64 diff_id;                      // Diff stage identifier
     23    bool positive;                      // Sense of subtraction, T=positive, F=negative
     24    float zp, zpErr;                    // Magnitude zero point and error
     25    float rmsAstrom;                    // Astrometric solution RMS
    2126    psString output;                    // Output filename
    22 } ppMopsData;
     27} ppMopsArguments;
    2328
    24 // Allocator
    25 ppMopsData *ppMopsDataAlloc(void);
     29/// Parse arguments
     30ppMopsArguments *ppMopsArgumentsParse(int argc, char *argv[]);
     31
     32typedef struct {
     33    psString raBoresight, decBoresight; // RA,Dec of telescope boresight
     34    psString filter;                    // Filter for exposure
     35    float airmass;                      // Airmass of exposure
     36    float exptime;                      // Exposure time
     37    double posangle;                    // Position angle
     38    double alt, az;                     // Telescope altitude and azimuth
     39    double mjd;                         // Modified Julian Date
     40    float seeing;                       // Seeing of exposure
     41    long num;                           // Number of detections
     42    psVector *x, *y;                    // Image coordinates
     43    psVector *ra, *dec;                 // Sky coordinates
     44    psVector *raErr, *decErr;           // Error in sky coordinates
     45    psVector *mag, *magErr;             // Magnitude and associated error
     46    psVector *extended;                 // Measure of extendedness
     47    psVector *angle, *angleErr;         // Angle of trail and associated error
     48    psVector *length, *lengthErr;       // Length of trail and associated error
     49    psVector *flags;                    // psphot flags
     50    psVector *diffSkyfileId;            // Identifier for source image
     51    psVector *naxis1, *naxis2;          // Size of image
     52    psVector *mask;                     // Mask for detections
     53} ppMopsDetections;
     54
     55ppMopsDetections *ppMopsDetectionsAlloc(long num);
     56
     57/// Copy a detection
     58bool ppMopsDetectionsCopySingle(ppMopsDetections *target, const ppMopsDetections *source, long index);
     59
     60/// Purge the detections list of masked detections
     61bool ppMopsDetectionsPurge(ppMopsDetections *detections);
     62
     63
     64/// Read detections
     65psArray *ppMopsRead(const ppMopsArguments *args);
     66
     67/// Merge detections
     68ppMopsDetections *ppMopsMerge(const psArray *detections);
     69
     70/// Write detections
     71bool ppMopsWrite(const ppMopsDetections *detections, const ppMopsArguments *args);
    2672
    2773
Note: See TracChangeset for help on using the changeset viewer.