IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 9817


Ignore:
Timestamp:
Oct 31, 2006, 6:21:24 PM (20 years ago)
Author:
jhoblitt
Message:

first pass implementation of -register_detrend & -register_detrend_imfile

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/dettool.c

    r9816 r9817  
    46174617{
    46184618    PS_ASSERT_PTR_NON_NULL(config, false);
     4619
     4620    // required options
     4621    bool status = false;
     4622    psString det_type = psMetadataLookupStr(&status, config->args, "-det_type");
     4623    if (!status) {
     4624        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -det_type");
     4625        return false;
     4626    }
     4627    if (!det_type) {
     4628        psError(PS_ERR_UNKNOWN, true, "-det_type is required");
     4629        return false;
     4630    }
     4631
     4632    // everything else is optional
     4633    psString exp_type = psMetadataLookupStr(&status, config->args, "-exp_type");
     4634    if (!status) {
     4635        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -exp_type");
     4636        return false;
     4637    }
     4638
     4639    psString filter = psMetadataLookupStr(&status, config->args, "-filter");
     4640    if (!status) {
     4641        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filter");
     4642        return false;
     4643    }
     4644
     4645    psF32 airmass = psMetadataLookupF32(&status, config->args, "-airmass");
     4646    if (!status) {
     4647        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -airmass");
     4648        return false;
     4649    }
     4650
     4651    psF32 exp_time = psMetadataLookupF32(&status, config->args, "-exp_time");
     4652    if (!status) {
     4653        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -exp_time");
     4654        return false;
     4655    }
     4656
     4657    psF32 ccd_temp = psMetadataLookupF32(&status, config->args, "-ccd_temp");
     4658    if (!status) {
     4659        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -ccd_temp");
     4660        return false;
     4661    }
     4662
     4663    psF64 posang = psMetadataLookupF32(&status, config->args, "-posang");
     4664    if (!status) {
     4665        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -posang");
     4666        return false;
     4667    }
     4668
     4669    psString object = psMetadataLookupStr(&status, config->args, "-object");
     4670    if (!status) {
     4671        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -object");
     4672        return false;
     4673    }
     4674
     4675    psTime *registered = NULL;
     4676    {
     4677        psString registeredStr = psMetadataLookupStr(&status, config->args, "-registered");
     4678        if (!status) {
     4679            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -registered");
     4680            return false;
     4681        }
     4682        // pass through NULL as this is an optional field
     4683        if (registeredStr) {
     4684            registered = psTimeFromISO(registeredStr, PS_TIME_UTC);
     4685        } else {
     4686            registered = NULL;
     4687        }
     4688    }
     4689
     4690    psTime *use_begin = NULL;
     4691    {
     4692        psString use_beginStr = psMetadataLookupStr(&status, config->args, "-use_begin");
     4693        if (!status) {
     4694            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -use_begin");
     4695            return false;
     4696        }
     4697        // pass through NULL as this is an optional field
     4698        if (use_beginStr) {
     4699            use_begin = psTimeFromISO(use_beginStr, PS_TIME_UTC);
     4700        } else {
     4701            use_begin = NULL;
     4702        }
     4703    }
     4704
     4705    psTime *use_end = NULL;
     4706    {
     4707        psString use_endStr = psMetadataLookupStr(&status, config->args, "-use_end");
     4708        if (!status) {
     4709            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -use_end");
     4710            return false;
     4711        }
     4712        // pass through NULL as this is an optional field
     4713        if (use_endStr) {
     4714            use_end = psTimeFromISO(use_endStr, PS_TIME_UTC);
     4715        } else {
     4716            use_end = NULL;
     4717        }
     4718    }
     4719
     4720    psF64 bg = psMetadataLookupF64(&status, config->args, "-bg");
     4721    if (!status) {
     4722        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg");
     4723        return false;
     4724    }
     4725
     4726    psF64 bg_stdev = psMetadataLookupF64(&status, config->args, "-bg_stdev");
     4727    if (!status) {
     4728        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_stdev");
     4729        return false;
     4730    }
     4731
     4732    psF64 bg_mean_stdev = psMetadataLookupF64(&status, config->args, "-bg_mean_stdev");
     4733    if (!status) {
     4734        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_mean_stdev");
     4735        return false;
     4736    }
     4737
     4738    if (!psDBTransaction(config->dbh)) {
     4739        psError(PS_ERR_UNKNOWN, false, "database error");
     4740        return false;
     4741    }
     4742
     4743    if (!detRunInsert(config->dbh,
     4744            0,
     4745            0,  // the iteration is fixed at 0
     4746            det_type,
     4747            "reg",
     4748            exp_type,
     4749            filter,
     4750            airmass,
     4751            exp_time,
     4752            ccd_temp,
     4753            posang,
     4754            object,
     4755            registered,
     4756            use_begin,
     4757            use_end
     4758    )) {
     4759        psError(PS_ERR_UNKNOWN, false, "database error");
     4760        // rollback
     4761        if (!psDBRollback(config->dbh)) {
     4762            psError(PS_ERR_UNKNOWN, false, "database error");
     4763        }
     4764        return false;
     4765    }
     4766
     4767    if (!detRunSummaryInsert(config->dbh,
     4768            psDBLastInsertID(config->dbh),
     4769            0,  // the iteration is fixed at 0
     4770            bg,
     4771            bg_stdev,
     4772            bg_mean_stdev,
     4773            true // accept
     4774    )) {
     4775        psError(PS_ERR_UNKNOWN, false, "database error");
     4776        // rollback
     4777        if (!psDBRollback(config->dbh)) {
     4778            psError(PS_ERR_UNKNOWN, false, "database error");
     4779        }
     4780        return false;
     4781    }
     4782
     4783    if (!psDBCommit(config->dbh)) {
     4784        psError(PS_ERR_UNKNOWN, false, "database error");
     4785        return false;
     4786    }
     4787
    46194788    return true;
    46204789}
     
    46234792{
    46244793    PS_ASSERT_PTR_NON_NULL(config, false);
     4794
     4795    // required options
     4796    bool status = false;
     4797    psString det_id = psMetadataLookupStr(&status, config->args, "-det_id");
     4798    if (!status) {
     4799        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -det_id");
     4800        return false;
     4801    }
     4802    if (!det_id) {
     4803        psError(PS_ERR_UNKNOWN, true, "-det_id is required");
     4804        return false;
     4805    }
     4806
     4807    psString class_id = psMetadataLookupStr(&status, config->args, "-class_id");
     4808    if (!status) {
     4809        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -class_id");
     4810        return false;
     4811    }
     4812    if (!class_id) {
     4813        psError(PS_ERR_UNKNOWN, true, "-class_id is required");
     4814        return false;
     4815    }
     4816
     4817    psString uri    = psMetadataLookupStr(&status, config->args, "-uri");
     4818    if (!status) {
     4819        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -uri");
     4820        return false;
     4821    }
     4822    if (!uri) {
     4823        psError(PS_ERR_UNKNOWN, true, "-uri is required");
     4824        return false;
     4825    }
     4826
     4827    // everything else is optional
     4828    psF64 bg = psMetadataLookupF64(&status, config->args, "-bg");
     4829    if (!status) {
     4830        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg");
     4831        return false;
     4832    }
     4833
     4834    psF64 bg_stdev = psMetadataLookupF64(&status, config->args, "-bg_stdev");
     4835    if (!status) {
     4836        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_stdev");
     4837        return false;
     4838    }
     4839
     4840    psF64 bg_mean_stdev = psMetadataLookupF64(&status, config->args, "-bg_mean_stdev");
     4841    if (!status) {
     4842        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_mean_stdev");
     4843        return false;
     4844    }
     4845
     4846    psString b1_uri = psMetadataLookupStr(&status, config->args, "-b1_uri");
     4847    if (!status) {
     4848        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b1_uri");
     4849        return false;
     4850    }
     4851
     4852    psString b2_uri = psMetadataLookupStr(&status, config->args, "-b2_uri");
     4853    if (!status) {
     4854        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b2_uri");
     4855        return false;
     4856    }
     4857
     4858    // XXX this is going in without checking that the det_id is valid.
     4859    // it seems like it be better to be using forgein key constraints rather
     4860    // then having to resort to a seperate query (and locking) to check that
     4861    // the det_id is valid
     4862    if (!detNormalizedImfileInsert(config->dbh,
     4863            (psS32)atoi(det_id),
     4864            0,  // the iteration is fixed at 0
     4865            class_id,
     4866            uri,
     4867            bg,
     4868            bg_stdev,
     4869            bg_mean_stdev,
     4870            b1_uri,
     4871            b2_uri
     4872    )) {
     4873        psError(PS_ERR_UNKNOWN, false, "database error");
     4874        return false;
     4875    }
     4876
    46254877    return true;
    46264878}
  • trunk/ippTools/src/dettoolConfig.c

    r9816 r9817  
    555555    psMetadata *register_detrend_imfileArgs = psMetadataAlloc();
    556556    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-det_id",  0,
    557             "define detrend ID", NULL);
     557            "define detrend ID (required)", NULL);
    558558    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-class_id",  0,
    559             "search for class ID", NULL);
     559            "search for class ID (required)", NULL);
    560560    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-uri",  0,
    561561            "define resid file URI (required)", NULL);
Note: See TracChangeset for help on using the changeset viewer.