IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 7, 2006, 5:07:29 PM (20 years ago)
Author:
jhoblitt
Message:

VESION 0.0.23

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/src/ippdb.c

    r8222 r8228  
    80108010static void rawImfileRowFree(rawImfileRow *object);
    80118011
    8012 rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *uri)
     8012rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *uri, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    80138013{
    80148014    rawImfileRow    *object;
     
    80218021    object->class_id = psStringCopy(class_id);
    80228022    object->uri = psStringCopy(uri);
     8023    object->filter = psStringCopy(filter);
     8024    object->airmass = airmass;
     8025    object->ra = ra;
     8026    object->decl = decl;
     8027    object->exp_time = exp_time;
     8028    object->bg = bg;
     8029    object->bg_stdev = bg_stdev;
     8030    object->bg_mean_stdev = bg_mean_stdev;
     8031    object->alt = alt;
     8032    object->az = az;
     8033    object->ccd_temp = ccd_temp;
     8034    object->posang = posang;
    80238035
    80248036    return object;
     
    80318043    psFree(object->class_id);
    80328044    psFree(object->uri);
     8045    psFree(object->filter);
    80338046}
    80348047
     
    80648077        return false;
    80658078    }
     8079    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
     8080        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     8081        psFree(md);
     8082        return false;
     8083    }
     8084    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
     8085        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     8086        psFree(md);
     8087        return false;
     8088    }
     8089    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
     8090        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
     8091        psFree(md);
     8092        return false;
     8093    }
     8094    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
     8095        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
     8096        psFree(md);
     8097        return false;
     8098    }
     8099    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
     8100        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     8101        psFree(md);
     8102        return false;
     8103    }
     8104    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
     8105        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     8106        psFree(md);
     8107        return false;
     8108    }
     8109    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
     8110        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     8111        psFree(md);
     8112        return false;
     8113    }
     8114    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
     8115        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     8116        psFree(md);
     8117        return false;
     8118    }
     8119    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) {
     8120        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     8121        psFree(md);
     8122        return false;
     8123    }
     8124    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) {
     8125        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     8126        psFree(md);
     8127        return false;
     8128    }
     8129    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) {
     8130        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     8131        psFree(md);
     8132        return false;
     8133    }
     8134    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) {
     8135        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     8136        psFree(md);
     8137        return false;
     8138    }
    80668139
    80678140    status = psDBCreateTable(dbh, RAWIMFILE_TABLE_NAME, md);
     
    80778150}
    80788151
    8079 bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *uri)
     8152bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *uri, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
    80808153{
    80818154    psMetadata      *md;
     
    81008173    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
    81018174        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
     8175        psFree(md);
     8176        return false;
     8177    }
     8178    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
     8179        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     8180        psFree(md);
     8181        return false;
     8182    }
     8183    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
     8184        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     8185        psFree(md);
     8186        return false;
     8187    }
     8188    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
     8189        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
     8190        psFree(md);
     8191        return false;
     8192    }
     8193    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
     8194        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
     8195        psFree(md);
     8196        return false;
     8197    }
     8198    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
     8199        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     8200        psFree(md);
     8201        return false;
     8202    }
     8203    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
     8204        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     8205        psFree(md);
     8206        return false;
     8207    }
     8208    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
     8209        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     8210        psFree(md);
     8211        return false;
     8212    }
     8213    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
     8214        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     8215        psFree(md);
     8216        return false;
     8217    }
     8218    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) {
     8219        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     8220        psFree(md);
     8221        return false;
     8222    }
     8223    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) {
     8224        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     8225        psFree(md);
     8226        return false;
     8227    }
     8228    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) {
     8229        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     8230        psFree(md);
     8231        return false;
     8232    }
     8233    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) {
     8234        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
    81028235        psFree(md);
    81038236        return false;
     
    81248257    return deleted;
    81258258}
    8126 bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **uri)
     8259bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **uri, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
    81278260{
    81288261    psArray         *rowSet;
     
    81928325        return false;
    81938326    }
     8327    *filter = psMetadataLookupPtr(&status, row, "filter");
     8328    if (!status) {
     8329        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
     8330        psFree(row);
     8331        return false;
     8332    }
     8333    *airmass = psMetadataLookupF32(&status, row, "airmass");
     8334    if (!status) {
     8335        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
     8336        psFree(row);
     8337        return false;
     8338    }
     8339    *ra = psMetadataLookupF64(&status, row, "ra");
     8340    if (!status) {
     8341        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
     8342        psFree(row);
     8343        return false;
     8344    }
     8345    *decl = psMetadataLookupF64(&status, row, "decl");
     8346    if (!status) {
     8347        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
     8348        psFree(row);
     8349        return false;
     8350    }
     8351    *exp_time = psMetadataLookupF32(&status, row, "exp_time");
     8352    if (!status) {
     8353        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
     8354        psFree(row);
     8355        return false;
     8356    }
     8357    *bg = psMetadataLookupF64(&status, row, "bg");
     8358    if (!status) {
     8359        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     8360        psFree(row);
     8361        return false;
     8362    }
     8363    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
     8364    if (!status) {
     8365        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     8366        psFree(row);
     8367        return false;
     8368    }
     8369    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
     8370    if (!status) {
     8371        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     8372        psFree(row);
     8373        return false;
     8374    }
     8375    *alt = psMetadataLookupF64(&status, row, "alt");
     8376    if (!status) {
     8377        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     8378        psFree(row);
     8379        return false;
     8380    }
     8381    *az = psMetadataLookupF64(&status, row, "az");
     8382    if (!status) {
     8383        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     8384        psFree(row);
     8385        return false;
     8386    }
     8387    *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp");
     8388    if (!status) {
     8389        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     8390        psFree(row);
     8391        return false;
     8392    }
     8393    *posang = psMetadataLookupF64(&status, row, "posang");
     8394    if (!status) {
     8395        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
     8396        psFree(row);
     8397        return false;
     8398    }
    81948399
    81958400    psFree(row);
     
    82008405bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object)
    82018406{
    8202     return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->uri);
     8407    return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->uri, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
    82038408}
    82048409
     
    82098414    char            class_id[256];
    82108415    char            uri[256];
    8211 
    8212     if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri)) {
     8416    char            filter[256];
     8417    psF32           airmass;
     8418    psF64           ra;
     8419    psF64           decl;
     8420    psF32           exp_time;
     8421    psF64           bg;
     8422    psF64           bg_stdev;
     8423    psF64           bg_mean_stdev;
     8424    psF64           alt;
     8425    psF64           az;
     8426    psF32           ccd_temp;
     8427    psF64           posang;
     8428
     8429    if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
    82138430        psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
    82148431        return NULL;
    82158432    }
    82168433
    8217     return rawImfileRowAlloc(exp_id, class, class_id, uri);
     8434    return rawImfileRowAlloc(exp_id, class, class_id, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    82188435}
    82198436
     
    83348551        return NULL;
    83358552    }
     8553    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
     8554        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     8555        psFree(md);
     8556        return NULL;
     8557    }
     8558    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
     8559        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     8560        psFree(md);
     8561        return NULL;
     8562    }
     8563    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
     8564        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
     8565        psFree(md);
     8566        return NULL;
     8567    }
     8568    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
     8569        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
     8570        psFree(md);
     8571        return NULL;
     8572    }
     8573    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
     8574        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     8575        psFree(md);
     8576        return NULL;
     8577    }
     8578    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
     8579        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     8580        psFree(md);
     8581        return NULL;
     8582    }
     8583    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
     8584        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
     8585        psFree(md);
     8586        return NULL;
     8587    }
     8588    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
     8589        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     8590        psFree(md);
     8591        return NULL;
     8592    }
     8593    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) {
     8594        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
     8595        psFree(md);
     8596        return NULL;
     8597    }
     8598    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) {
     8599        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
     8600        psFree(md);
     8601        return NULL;
     8602    }
     8603    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) {
     8604        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     8605        psFree(md);
     8606        return NULL;
     8607    }
     8608    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) {
     8609        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     8610        psFree(md);
     8611        return NULL;
     8612    }
    83368613
    83378614    return md;
     
    83458622    char            *class_id;
    83468623    char            *uri;
     8624    char            *filter;
     8625    psF32           airmass;
     8626    psF64           ra;
     8627    psF64           decl;
     8628    psF32           exp_time;
     8629    psF64           bg;
     8630    psF64           bg_stdev;
     8631    psF64           bg_mean_stdev;
     8632    psF64           alt;
     8633    psF64           az;
     8634    psF32           ccd_temp;
     8635    psF64           posang;
    83478636
    83488637    exp_id = psMetadataLookupPtr(&status, md, "exp_id");
     
    83668655        return false;
    83678656    }
    8368 
    8369     return rawImfileRowAlloc(exp_id, class, class_id, uri);
     8657    filter = psMetadataLookupPtr(&status, md, "filter");
     8658    if (!status) {
     8659        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
     8660        return false;
     8661    }
     8662    airmass = psMetadataLookupF32(&status, md, "airmass");
     8663    if (!status) {
     8664        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
     8665        return false;
     8666    }
     8667    ra = psMetadataLookupF64(&status, md, "ra");
     8668    if (!status) {
     8669        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
     8670        return false;
     8671    }
     8672    decl = psMetadataLookupF64(&status, md, "decl");
     8673    if (!status) {
     8674        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
     8675        return false;
     8676    }
     8677    exp_time = psMetadataLookupF32(&status, md, "exp_time");
     8678    if (!status) {
     8679        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
     8680        return false;
     8681    }
     8682    bg = psMetadataLookupF64(&status, md, "bg");
     8683    if (!status) {
     8684        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
     8685        return false;
     8686    }
     8687    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
     8688    if (!status) {
     8689        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
     8690        return false;
     8691    }
     8692    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
     8693    if (!status) {
     8694        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
     8695        return false;
     8696    }
     8697    alt = psMetadataLookupF64(&status, md, "alt");
     8698    if (!status) {
     8699        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
     8700        return false;
     8701    }
     8702    az = psMetadataLookupF64(&status, md, "az");
     8703    if (!status) {
     8704        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
     8705        return false;
     8706    }
     8707    ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
     8708    if (!status) {
     8709        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     8710        return false;
     8711    }
     8712    posang = psMetadataLookupF64(&status, md, "posang");
     8713    if (!status) {
     8714        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
     8715        return false;
     8716    }
     8717
     8718    return rawImfileRowAlloc(exp_id, class, class_id, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
    83708719}
    83718720psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note: See TracChangeset for help on using the changeset viewer.