Changeset 7935


Ignore:
Timestamp:
03/28/12 17:23:52 (8 years ago)
Author:
aivar
Message:

SLIM Plugin: Working on cursor problems.

Location:
trunk/projects/curve-fitter/src/main/java/loci/curvefitter
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/AbstractCurveFitter.java

    r7891 r7935  
    4141 */ 
    4242public abstract class AbstractCurveFitter implements ICurveFitter { 
     43    IFitterEstimator m_estimator = new DummyFitterEstimator(); 
    4344    FitAlgorithm m_fitAlgorithm; 
    4445    FitFunction m_fitFunction; 
     
    4748    boolean[] m_free; 
    4849    double[] m_instrumentResponse; 
     50 
     51    @Override 
     52    public IFitterEstimator getEstimator() { 
     53        return m_estimator; 
     54    } 
     55     
     56    @Override 
     57    public void setEstimator(IFitterEstimator estimator) { 
     58        m_estimator = estimator; 
     59    } 
    4960     
    5061    @Override 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/CurveFitData.java

    r7929 r7935  
    5555    int _transStartIndex; 
    5656    int _transFitStartIndex; 
    57     Integer _transEstimateStartIndex = null; 
    5857    int _transEndIndex; 
    5958    boolean _ignorePromptForIntegralEstimate = false; 
     
    179178     
    180179    @Override 
    181     public int getTransEstimateStartIndex() { 
    182         // if not set, return the regular fit start index 
    183         int index = _transFitStartIndex; 
    184         if (null != _transEstimateStartIndex) { 
    185             index = _transEstimateStartIndex; 
    186         } 
    187         return index; 
    188     } 
    189      
    190     @Override 
    191     public void setTransEstimateStartIndex(int transEstimateStartIndex) { 
    192         _transEstimateStartIndex = transEstimateStartIndex; 
    193     } 
    194      
    195     @Override 
    196180    public int getTransEndIndex() { 
    197181        return _transEndIndex; 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/ICurveFitData.java

    r7929 r7935  
    202202     
    203203    /** 
    204      * Gets estimate fitting start index in transient. 
    205      *  
    206      * This is a TRI2 compatiblity wrinkle.  The RLD estimate before a LMA is 
    207      * handled oddly. 
    208      *  
    209      * @return  
    210      */ 
    211     @Deprecated 
    212     public int getTransEstimateStartIndex(); 
    213      
    214     /** 
    215      * Sets estimate fitting start index in transient. 
     204     * Gets end index in transient. 
     205     *  
     206     * @return  
     207     */ 
     208    public int getTransEndIndex(); 
     209 
     210    /** 
     211     * Gets end index in transient adjusted for transient start. 
     212     *  
     213     * @return  
     214     */ 
     215    public int getAdjustedTransEndIndex(); 
     216     
     217    /** 
     218     * Sets end index in transient. 
     219     *  
     220     * @param transEndIndex  
     221     */ 
     222    public void setTransEndIndex(int transEndIndex); 
     223 
     224    /** 
     225     * Gets whether to ignore the prompt when using Integral/RLD fitting for an 
     226     * estimate before a LMA fit. 
    216227     *  
    217228     * This is a TRI2 compatibility wrinkle.  The RLD estimate before a LMA is 
    218229     * handled oddly. 
    219230     *  
    220      * @param transEstimateStartIndex  
     231     * If never set will return false; 
     232     *  
     233     * @return  
    221234     */ 
    222235    @Deprecated 
    223     public void setTransEstimateStartIndex(int transEstimateStartIndex); 
    224      
    225     /** 
    226      * Gets end index in transient. 
    227      *  
    228      * @return  
    229      */ 
    230     public int getTransEndIndex(); 
    231  
    232     /** 
    233      * Gets end index in transient adjusted for transient start. 
    234      *  
    235      * @return  
    236      */ 
    237     public int getAdjustedTransEndIndex(); 
    238      
    239     /** 
    240      * Sets end index in transient. 
    241      *  
    242      * @param transEndIndex  
    243      */ 
    244     public void setTransEndIndex(int transEndIndex); 
    245  
    246     /** 
    247      * Gets whether to ignore the prompt when using Integral/RLD fitting for an 
     236    public boolean getIgnorePromptForIntegralEstimate(); 
     237 
     238 
     239    /** 
     240     * Sets whether to ignore the prompt when using Integral/RLD fitting for an 
    248241     * estimate before a LMA fit. 
    249242     *  
     
    251244     * handled oddly. 
    252245     *  
    253      * If never set will return false; 
    254      *  
    255      * @return  
    256      */ 
    257     @Deprecated 
    258     public boolean getIgnorePromptForIntegralEstimate(); 
    259  
    260  
    261     /** 
    262      * Sets whether to ignore the prompt when using Integral/RLD fitting for an 
    263      * estimate before a LMA fit. 
    264      *  
    265      * This is a TRI2 compatibility wrinkle.  The RLD estimate before a LMA is 
    266      * handled oddly. 
    267      *  
    268246     * @param ignore  
    269247     */ 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/ICurveFitter.java

    r7891 r7935  
    7676     */ 
    7777    public double DEFAULT_X_INC = 1.0f; 
     78     
     79    /** 
     80     * Get fitting estimator. 
     81     *  
     82     * @return fitting estimator 
     83     */ 
     84    public IFitterEstimator getEstimator(); 
     85     
     86    /** 
     87     * Set fitting estimator. 
     88     *  
     89     * @param fitting estimator 
     90     */ 
     91    public void setEstimator(IFitterEstimator estimator); 
    7892     
    7993    /** 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/SLIMCurveFitter.java

    r7931 r7935  
    208208                    catch (UnsatisfiedLinkError e) { 
    209209                        System.out.println("Library not on path " + e.getMessage()); 
    210                         IJ.log("Library not on path " + e.getMessage()); 
    211210                    }  
    212211                } 
     
    221220        } 
    222221        if (!s_libraryLoaded) { 
    223             IJ.log("Unable to do fit."); 
     222            IJ.log("Native library not loaded.  Unable to do fit."); 
    224223            return 0; 
    225224        } 
     
    260259                tau[0] = data.getParams()[3]; 
    261260                z[0]   = data.getParams()[1]; 
    262  
     261                 
     262                System.out.println("A " + a[0] + " T " + tau[0] + " Z " + z[0]); //TODO ARG in instances when RLD fails the incoming parameters will become the results. 
     263                a[0] = 100.0; 
     264                tau[0] = 0.5; 
     265                z[0] = 0.5; 
     266                System.out.println("A " + a[0] + " T " + tau[0] + " Z " + z[0]); 
     267                 
    263268                // get IRF curve, if any 
    264                 double[] instrumentResponse = getInstrumentResponse(data.getPixels()); 
     269                double[] instrumentResponse = null; 
    265270                int nInstrumentResponse = 0; 
    266                 if (null != instrumentResponse) { 
    267                     nInstrumentResponse = instrumentResponse.length; 
     271                if (FitAlgorithm.SLIMCURVE_RLD.equals(m_fitAlgorithm) 
     272                        // for a RLD estimate before a LMA fit may skip prompt 
     273                        || getEstimator().usePrompt()) { 
     274                    // do get the prompt 
     275                    instrumentResponse = getInstrumentResponse(data.getPixels()); 
     276                    if (null != instrumentResponse) { 
     277                        nInstrumentResponse = instrumentResponse.length; 
     278                    } 
    268279                } 
    269280 
    270281                // set start and stop 
    271282                int start = data.getAdjustedDataStartIndex(); 
    272                 if (FitAlgorithm.SLIMCURVE_RLD_LMA.equals(m_fitAlgorithm)) { 
    273                     start = data.getTransEstimateStartIndex(); 
    274                 } 
    275                 int stop = data.getAdjustedTransEndIndex(); 
     283                int stop  = data.getAdjustedTransEndIndex(); 
     284                 
     285                // these lines give more TRI2 compatible fit results 
     286                start = getEstimator().getEstimateStartIndex 
     287                            (data.getAdjustedYCount(), start, stop); 
     288                a[0]  = getEstimator().getEstimateA 
     289                            (a[0], data.getAdjustedYCount(), start, stop); 
    276290                     
    277291                int chiSquareAdjust = stop - start - numParamFree; 
Note: See TracChangeset for help on using the changeset viewer.