示例#1
0
文件: Hillier.cpp 项目: corburn/ISIS
    /**
     * @brief Return parameters used for all bands
     *
     * Method creates keyword vectors of band specific parameters
     * used in the photometric correction.
     *
     * @author Kris Becker - 2/22/2010
     *
     * @param pvl Output PVL container write keywords
     */
    void Hillier::Report ( PvlContainer &pvl ) {
        pvl.addComment("I/F = mu0/(mu0+mu) * F(phase)");
                pvl.addComment(" where:");
                pvl.addComment("  mu0 = cos(incidence)");
                pvl.addComment("  mu = cos(incidence)");
                pvl.addComment("  F(phase) = B0*exp(-B1*phase) + A0 + A1*phase + A2*phase^2 + A3*phase^3 + A4*phase^4");

                pvl += PvlKeyword("Algorithm", "Hillier");
                pvl += PvlKeyword("IncRef", toString(_iRef), "degrees");
                pvl += PvlKeyword("EmaRef", toString(_eRef), "degrees");
                pvl += PvlKeyword("PhaRef", toString(_gRef), "degrees");
                PvlKeyword units("HillierUnits");
                PvlKeyword phostd("PhotometricStandard");
                PvlKeyword bbc("BandBinCenter");
                PvlKeyword bbct("BandBinCenterTolerance");
                PvlKeyword bbn("BandNumber");
                PvlKeyword b0("B0");
                PvlKeyword b1("B1");
                PvlKeyword a0("A0");
                PvlKeyword a1("A1");
                PvlKeyword a2("A2");
                PvlKeyword a3("A3");
                PvlKeyword a4("A4");
                for (unsigned int i = 0; i < _bandpho.size(); i++) {
                    Parameters &p = _bandpho[i];
                    units.addValue(p.units);
                    phostd.addValue(toString(p.phoStd));
                    bbc.addValue(toString(p.wavelength));
                    bbct.addValue(toString(p.tolerance));
                    bbn.addValue(toString(p.band));
                    b0.addValue(toString(p.b0));
                    b1.addValue(toString(p.b1));
                    a0.addValue(toString(p.a0));
                    a1.addValue(toString(p.a1));
                    a2.addValue(toString(p.a2));
                    a3.addValue(toString(p.a3));
                    a4.addValue(toString(p.a4));
                }
                pvl += units;
                pvl += phostd;
                pvl += bbc;
                pvl += bbct;
                pvl += bbn;
                pvl += b0;
                pvl += b1;
                pvl += a0;
                pvl += a1;
                pvl += a2;
                pvl += a3;
                pvl += a4;
                return;
            }
void
QvisLegendAttributesInterface::UpdateControls()
{
    // Set the manage layout bit.
    manageLayout->blockSignals(true);
    manageLayout->setChecked(GetBool(LEGEND_MANAGE_POSITION));
    manageLayout->blockSignals(false);

    // Set the start position.
    positionEdit->setPosition(annot->GetPosition()[0], annot->GetPosition()[1]);
    positionEdit->setEnabled(!GetBool(LEGEND_MANAGE_POSITION));
    positionLabel->setEnabled(!GetBool(LEGEND_MANAGE_POSITION));

    // Set the spinbox values for the width and height.  The 0.5 is added
    // to avoid numeric issues converting back and forth between float and
    // integer.
    int w(int(annot->GetPosition2()[0] * WIDTH_HEIGHT_PRECISION + 0.5f));
    widthSpinBox->blockSignals(true);
    widthSpinBox->setValue(w);
    widthSpinBox->blockSignals(false);

    int h(int(annot->GetPosition2()[1] * WIDTH_HEIGHT_PRECISION + 0.5f));
    heightSpinBox->blockSignals(true);
    heightSpinBox->setValue(h);
    heightSpinBox->blockSignals(false);

    // Set the orientation.  
    orientationComboBox->blockSignals(true);
    if (GetBool(LEGEND_ORIENTATION0))
    {
        if (GetBool(LEGEND_ORIENTATION1))
            orientationComboBox->setCurrentIndex(3);
        else
            orientationComboBox->setCurrentIndex(2);
    }
    else
    {
        if (GetBool(LEGEND_ORIENTATION1))
            orientationComboBox->setCurrentIndex(1);
        else
            orientationComboBox->setCurrentIndex(0);
    }
    orientationComboBox->blockSignals(false);

    int type = annot->GetIntAttribute3();
    //
    tickControl->blockSignals(true);
    tickControl->setChecked(GetBool(LEGEND_CONTROL_TICKS));
    tickControl->blockSignals(false);

    numTicksSpinBox->blockSignals(true);
    numTicksSpinBox->setEnabled(type == LEGEND_TYPE_VARIABLE && 
                                GetBool(LEGEND_CONTROL_TICKS));
    numTicksLabel->setEnabled(type == LEGEND_TYPE_VARIABLE &&
                              GetBool(LEGEND_CONTROL_TICKS));
    numTicksSpinBox->setValue(annot->GetIntAttribute2());
    numTicksSpinBox->blockSignals(false);

    minMaxCheckBox->blockSignals(true);
    minMaxCheckBox->setChecked(GetBool(LEGEND_MINMAX_INCLUSIVE));
    minMaxCheckBox->setEnabled(type == LEGEND_TYPE_VARIABLE &&
                               GetBool(LEGEND_CONTROL_TICKS));
    minMaxCheckBox->blockSignals(false);

    QString temp;
    int size;
    if (type == LEGEND_TYPE_VARIABLE)
    {
        doubleVector sv = annot->GetDoubleVector1();
        size = (int)sv.size();
        ResizeSuppliedLabelsList(size);
        QString fmt(formatString->text());
        suppliedLabels->horizontalHeaderItem(0)->setText(tr("Values"));
        for (int i = 0; i < size; ++i)
        {
            temp.sprintf(fmt.toStdString().c_str(), sv[i]);
            suppliedLabels->item(i, 0)->setText(temp.simplified());
            suppliedLabels->item(i, 0)->setFlags(
                     Qt::ItemIsSelectable|Qt::ItemIsEditable|Qt::ItemIsEnabled);
        }
    }
    else 
    {
        stringVector sv = annot->GetStringVector2();
        size = (int)sv.size();
        ResizeSuppliedLabelsList(size);
        suppliedLabels->horizontalHeaderItem(0)->setText(tr("Computed values"));
        suppliedLabels->resizeColumnToContents(0);
        for (int i = 0; i < size; ++i)
        {
            suppliedLabels->item(i, 0)->setText(sv[i].c_str());
            suppliedLabels->item(i, 0)->setFlags(Qt::NoItemFlags);
        }
    }
 
    stringVector sl = annot->GetStringVector1();
    size = (int)sl.size();
    for (int i = 0; i < suppliedLabels->rowCount(); ++i)
    {
        if (i < size)
            suppliedLabels->item(i, 1)->setText(sl[i].c_str());
        else 
            suppliedLabels->item(i, 1)->setText("");
    }

    drawLabelsComboBox->blockSignals(true);
    int dv = GetBool(LEGEND_DRAW_VALUES) ? 1 : 0;
    int dl = GetBool(LEGEND_DRAW_LABELS) ? 2 : 0;
    drawLabelsComboBox->setCurrentIndex(dv+dl);
    drawLabelsComboBox->blockSignals(false);

    suppliedLabels->setEnabled(!GetBool(LEGEND_CONTROL_TICKS));
    addRowButton->setEnabled(type == LEGEND_TYPE_VARIABLE &&
                             !GetBool(LEGEND_CONTROL_TICKS));
    deleteRowButton->setEnabled(type == LEGEND_TYPE_VARIABLE &&
                               !GetBool(LEGEND_CONTROL_TICKS));

    //
    // Set the text color. If we're using the foreground color for the text
    // color then make the button be white and only let the user change the 
    // opacity.
    //
#ifdef TEXT_OPACITY_SUPPORTED
    textColorOpacity->blockSignals(true);
#endif
    QColor tc(annot->GetTextColor().Red(),
              annot->GetTextColor().Green(),
              annot->GetTextColor().Blue());
    textColorButton->setButtonColor(tc);
#ifdef TEXT_OPACITY_SUPPORTED
    textColorOpacity->setGradientColor(tc);
    textColorOpacity->setValue(annot->GetTextColor().Alpha());
    textColorOpacity->blockSignals(false);
    textColorOpacity->setEnabled(!annot->GetUseForegroundForTextColor());
#endif
    textColorButton->setEnabled(!annot->GetUseForegroundForTextColor());
    textColorLabel->setEnabled(!annot->GetUseForegroundForTextColor());

    // Set the bounding box color.
    drawBoundingBoxCheckBox->blockSignals(true);
    drawBoundingBoxCheckBox->setChecked(GetBool(LEGEND_DRAW_BOX));
    drawBoundingBoxCheckBox->blockSignals(false);
    boundingBoxOpacity->blockSignals(true);
    QColor bbc(annot->GetColor1().Red(),
               annot->GetColor1().Green(),
               annot->GetColor1().Blue());
    boundingBoxColorButton->setButtonColor(bbc);
    boundingBoxColorButton->setEnabled(GetBool(LEGEND_DRAW_BOX));
    boundingBoxOpacity->setEnabled(GetBool(LEGEND_DRAW_BOX));
    boundingBoxOpacity->setGradientColor(bbc);
    boundingBoxOpacity->setValue(annot->GetColor1().Alpha());
    boundingBoxOpacity->blockSignals(false);

    // Set the format string
    const stringVector &annotText = annot->GetText();
    if(annotText.size() > 0)
        formatString->setText(annotText[0].c_str());
    else
        formatString->setText("");

    // Set the "draw labels" box.
    drawTitleCheckBox->blockSignals(true);
    drawTitleCheckBox->setChecked(GetBool(LEGEND_DRAW_TITLE));
    drawTitleCheckBox->blockSignals(false);

    // Set the "draw labels" box.
    drawMinmaxCheckBox->blockSignals(true);
    drawMinmaxCheckBox->setChecked(GetBool(LEGEND_DRAW_MINMAX));
    drawMinmaxCheckBox->blockSignals(false);

    // Set the font height
    fontHeight->setText(QString().sprintf("%g", annot->GetDoubleAttribute1()));

    // Set the use foreground color check box.
    useForegroundColorCheckBox->blockSignals(true);
    useForegroundColorCheckBox->setChecked(annot->GetUseForegroundForTextColor());
    useForegroundColorCheckBox->blockSignals(false);

    // Set the font family
    fontFamilyComboBox->blockSignals(true);
    fontFamilyComboBox->setCurrentIndex(int(annot->GetFontFamily()));
    fontFamilyComboBox->blockSignals(false);

    // Set the bold check box.
    boldCheckBox->blockSignals(true);
    boldCheckBox->setChecked(annot->GetFontBold());
    boldCheckBox->blockSignals(false);

    // Set the italic check box.
    italicCheckBox->blockSignals(true);
    italicCheckBox->setChecked(annot->GetFontItalic());
    italicCheckBox->blockSignals(false);

    // Set the shadow check box.
    shadowCheckBox->blockSignals(true);
    shadowCheckBox->setChecked(annot->GetFontShadow());
    shadowCheckBox->blockSignals(false);
}
示例#3
0
void dipi0(int plt=0, int cut=2, int run=1, int opt=4){
    printf("plt=%d cut=%d run=%d opt=%d\n",plt,cut,run,opt);
    OPT=opt;
    RUN=run;
    openCanvas();  
    if(plt==1 || plt==0) bbc(1);
    if(plt==2 || plt==0) bbc(2);
    if(plt==3 || plt==0) bbc(3);
    if(plt==4 || plt==0) {plot("bbce",11,cut,c1); plot("bbce",13,cut,c2); plot("bbce",12,cut,c3);}
    if(plt==5 || plt==0) {plot("m0",11,cut,c1);   plot("m0",13,cut,c2);  plot("m0",12,cut,c3);}
    if(plt==6 || plt==0) {plot("m1",11,cut,c1);   plot("m1",13,cut,c2);  plot("m1",12,cut,c3);}
    if(plt==7 || plt==0) {plot("m2",11,cut,c1);   plot("m2",13,cut,c2);  plot("m2",12,cut,c3);}
    if(plt==8 || plt==0) {plot("z1",11,cut,c1);   plot("z1",13,cut,c2);  plot("z1",12,cut,c3);}
    if(plt==9 || plt==0) {plot("z2",11,cut,c1);   plot("z2",13,cut,c2);  plot("z2",12,cut,c3);}
    if(plt==10|| plt==0) {plot("phi0",11,cut,c1); plot("phi0",13,cut,c2);plot("phi0",12,cut,c3);}
    if(plt==11|| plt==0) {plot("phi1",11,cut,c1); plot("phi1",13,cut,c2);plot("phi1",12,cut,c3);}
    if(plt==12|| plt==0) {plot("phi2",11,cut,c1); plot("phi2",13,cut,c2);plot("phi2",12,cut,c3);}
    if(plt==13|| plt==0) {plot("eta1",11,cut,c1); plot("eta1",13,cut,c2);plot("eta1",12,cut,c3);}
    if(plt==14|| plt==0) {plot("eta2",11,cut,c1); plot("eta2",13,cut,c2);plot("eta2",12,cut,c3);}
    if(plt==15|| plt==0) {plot("dphi",11,cut,c1); plot("dphi",13,cut,c2);plot("dphi",12,cut,c3);}
    if(plt==16|| plt==0) {plot("phi1dphi",11,cut,c1); plot("phi1dphi",13,cut,c2);plot("phi1dphi",12,cut,c3);}
    if(plt==17|| plt==0) {plot("mix",11,cut,c1); plot("mix",13,cut,c2);plot("mix",12,cut,c3);}

    if(plt==20 || plt==0){plot("mall",11,cut,c1);   plot("mall",13,cut,c2); plot("mall",12,cut,c3);}
    if(plt==21 || plt==0){plot("z12",11,cut,c1);    plot("z12",13,cut,c2);  plot("z12",12,cut,c3);}

    if(plt==30|| plt==0){comp(11,4,2,c1);   comp(13,4,2,c2);  comp(12,4,2,c3);}
    if(plt==31|| plt==0){comp(20,2,1,c1);}

    if(plt==40 || plt==0) {plot("norm",11,cut,c1,2); plot("norm",13,cut,c2,2); plot("norm",12,cut,c3,2);}
    if(plt==41 || plt==0) {
	plot("norm",11,cut,c1,1,-1,-1,0.00,4); 
	plot("norm",13,cut,c2,1,-1,-1,0.00,4); 
	plot("norm",12,cut,c3,1,-1,-1,0.00,4);
    }
    if(plt==42 || plt==0) {
	plot("corr",11,cut,c1,1,-1,-1,0.00,4); 
	plot("corr",13,cut,c2,1,-1,-1,0.00,4); 
	plot("corr",12,cut,c3,1,-1,-1,0.00,4);
    }

    if(plt==50) mix(run,cut,3,1);
    if(plt==51) mix(11,12,4,2);
    if(plt==52) mix(12,16,2,0);
    if(plt==53) mix(11,2,3,1);
    if(plt==54) mix(12,16,3,1);
    if(plt==55) mix(13,16,3,1);
    if(plt==56) mix(13,2,2,2);
    

    if(plt==100 || plt==0){
	plot("norm",11,2,c1,1,2,0,0.1);
	plot("norm",12,2,c2,1,2,0,0.1);
	plot("norm",12,3,c2,1,2,0,0.1);
	plot("norm",12,4,c2,1,2,0,0.1);
	plot("norm",12,5,c2,1,2,0,0.1);
	plot("norm",12,15,c2,1,2,0,0.1);
	plot("norm",12,16,c2,1,2,0,0.1);
    }
    if(plt==101 || plt==0){
	plot("norm",11,2,c1,1,3,1,0.012);
	plot("norm",11,3,c1,1,3,1,0.012);
	plot("norm",11,4,c1,1,3,1,0.012);
	plot("norm",11,5,c1,1,3,1,0.012);
	plot("norm",11,15,c1,1,3,1,0.012);
	plot("norm",12,2,c2,1,3,1,0.012);
	plot("norm",12,3,c2,1,3,1,0.012);
	plot("norm",12,4,c2,1,3,1,0.012);
	plot("norm",12,5,c2,1,3,1,0.012);
	plot("norm",12,15,c2,1,3,1,0.012);
	plot("norm",12,16,c2,1,3,1,0.012);
	plot("norm",13,2,c2,1,3,1,0.012);
	plot("norm",13,3,c2,1,3,1,0.012);
	plot("norm",13,4,c2,1,3,1,0.012);
	plot("norm",13,5,c2,1,3,1,0.012);
	plot("norm",13,15,c2,1,3,1,0.012);
	plot("norm",13,16,c2,1,3,1,0.012);
    }
    if(plt==102 || plt==0){
	plot("norm",11,2,c1,1,4,2,0.002);
	plot("norm",12,2,c2,1,4,2,0.002);
	plot("norm",12,3,c2,1,4,2,0.002);
	plot("norm",12,4,c2,1,4,2,0.002);
	plot("norm",12,5,c2,1,4,2,0.002);
	plot("norm",12,15,c2,1,4,2,0.002);
	plot("norm",12,16,c2,1,4,2,0.002);
    }
    if(plt==103 || plt==0){
	plot("norm",11,2,c1,1,5,3,0.0005);
	plot("norm",12,2,c2,1,5,3,0.0005);
	plot("norm",12,3,c2,1,5,3,0.0005);
	plot("norm",12,4,c2,1,5,3,0.0005);
	plot("norm",12,5,c2,1,5,3,0.0005);
	plot("norm",12,15,c2,1,5,3,0.0005);
	plot("norm",12,16,c2,1,5,3,0.0005);
    }
    if(plt==110 || plt==0){
	plot("norm",11,2,c1,1,3,1,0.012);
	plot("norm",11,6,c2,1,3,1,0.012);
	plot("norm",12,2,c1,1,3,1,0.012);
	plot("norm",12,6,c2,1,3,1,0.012);
	plot("norm",15,2,c1,1,3,1,0.012);
	plot("norm",15,6,c2,1,3,1,0.012);
	plot("norm",11,2,c1,1,4,2,0.002);
	plot("norm",11,6,c2,1,4,2,0.002);
	plot("norm",12,2,c1,1,4,2,0.002);
	plot("norm",12,6,c2,1,4,2,0.002);
	plot("norm",15,2,c1,1,4,2,0.002);
	plot("norm",15,6,c2,1,4,2,0.002);
    }
    if(plt==111 || plt==0){
	plot("norm",11,12,c1,1,3,1,0.012);
	plot("norm",11,13,c2,1,3,1,0.012);
	plot("norm",15,12,c1,1,3,1,0.012);
	plot("norm",15,13,c2,1,3,1,0.012);
	plot("norm",12,12,c1,1,3,1,0.012);
	plot("norm",12,13,c2,1,3,1,0.012);
	plot("norm",11,12,c1,1,4,2,0.002);
	plot("norm",11,13,c2,1,4,2,0.002);
	plot("norm",15,12,c1,1,4,2,0.002);
	plot("norm",15,13,c2,1,4,2,0.002);
	plot("norm",12,12,c1,1,4,2,0.002);
	plot("norm",12,13,c2,1,4,2,0.002);
    }
    if(plt==112 || plt==0){
	plot("norm",11,9,c1,1,3,1,0.012);
	plot("norm",11,10,c2,1,3,1,0.012);
	plot("norm",11,11,c2,1,3,1,0.012);
	plot("norm",12,9,c1,1,3,1,0.012);
	plot("norm",12,10,c2,1,3,1,0.012);
	plot("norm",12,11,c2,1,3,1,0.012);
    }


    if(plt==200){
	bbc();
	for(int c=0; c<NCUT; c++){
	    plot("mall",11,c,c1);   plot("mall",12,c,c2);
	    plot("z12", 11,c,c1);   plot("z12", 12,c,c2);
	    plot("norm",11,c,c1);   plot("norm",12,c,c2);
	}
    }
}