Changeset 14242


Ignore:
Timestamp:
01/14/13 11:19:27 (12 years ago)
Author:
jschierm
Message:

NEW: dakota_out_parse.m updated for Dakota 5.2 (noting 4.3 still works).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/qmu/dakota_out_parse.m

    r14196 r14242  
    112112    elseif strncmp(fline,'Moments for each response function',34)
    113113        [dresp]=moments_read(fidi,dresp,fline);
     114    elseif strncmp(fline,'Moment-based statistics for each response function',50)
     115        [dresp]=mbstats_read(fidi,dresp,fline);
    114116    elseif strncmp(fline,'95% confidence intervals for each response function',51)
    115117        [dresp]=cis_read(fidi,dresp,fline);
    116     elseif strncmp(fline,'Probabilities for each response function',40)
     118    elseif strncmp(fline,'Probabilities for each response function',40) || ...
     119           strncmp(fline,'Level mappings for each response function',41)
    117120        [dresp]=cdfs_read(fidi,dresp,fline);
     121    elseif strncmp(fline,'Probability Density Function (PDF) histograms for each response function',72)
     122        [dresp]=pdfs_read(fidi,dresp,fline);
    118123    elseif strncmp(fline,'Simple Correlation Matrix',25)
    119124        [scm]=corrmat_read(fidi,'Simple Correlation Matrix',fline);
     
    137142    else
    138143        display(['Unexpected line: ' deblank(fline)]);
    139         fline=fgetl(fidi);
    140144    end
    141145    fline=fgetl(fidi);
     
    316320end
    317321
     322%%  function to find and read the moment-based statistics
     323
     324function [dresp]=mbstats_read(fidi,dresp,fline)
     325
     326if ~exist('fline','var') || isempty(fline) || ~ischar(fline)
     327    [fline]=findline(fidi,'Moment-based statistics for each response function');
     328    if ~ischar(fline)
     329        return
     330    end
     331end
     332
     333display('Reading moment-based statistics for response functions:');
     334
     335%  skip column headings of moment-based statistics
     336
     337    fline=fgetl(fidi);
     338
     339while 1
     340    fline=fgetl(fidi);
     341    if isempty(fline)
     342        break;
     343    end
     344    [ntokens,tokens]=fltokens(fline);
     345
     346%  add new response function and moment-based statistics
     347
     348    dresp(end+1).descriptor=tokens{1}{ 1};
     349    display(sprintf('  %s',dresp(end).descriptor));
     350    dresp(end  ).mean      =tokens{1}{ 2};
     351    dresp(end  ).stddev    =tokens{1}{ 3};
     352    dresp(end  ).skewness  =tokens{1}{ 4};
     353    dresp(end  ).kurtosis  =tokens{1}{ 5};
     354end
     355
     356display(sprintf('  Number of Dakota response functions=%d.',...
     357    length(dresp)));
     358
     359end
     360
    318361%%  function to find and read the confidence intervals
    319362
     
    336379    end
    337380    [ntokens,tokens]=fltokens(fline);
     381
     382%  check for column headings in Dakota 5.2
     383
     384    if (ntokens == 4)
     385        fline=fgetl(fidi);
     386        if isempty(fline)
     387            break;
     388        end
     389        [ntokens,tokens]=fltokens(fline);
     390    end
    338391
    339392%  find response function associated with confidence intervals
     
    354407%  add confidence intervals to response functions
    355408
    356     dresp(i).meanci  (1,1)=tokens{1}{ 5};
    357     dresp(i).meanci  (2,1)=tokens{1}{ 6};
    358     dresp(i).stddevci(1,1)=tokens{1}{12};
    359     dresp(i).stddevci(2,1)=tokens{1}{13};
     409    if (ntokens == 14)
     410        dresp(i).meanci  (1,1)=tokens{1}{ 5};
     411        dresp(i).meanci  (2,1)=tokens{1}{ 6};
     412        dresp(i).stddevci(1,1)=tokens{1}{12};
     413        dresp(i).stddevci(2,1)=tokens{1}{13};
     414    else
     415        dresp(i).meanci  (1,1)=tokens{1}{ 2};
     416        dresp(i).meanci  (2,1)=tokens{1}{ 3};
     417        dresp(i).stddevci(1,1)=tokens{1}{ 4};
     418        dresp(i).stddevci(2,1)=tokens{1}{ 5};
     419    end
    360420end
    361421
     
    372432    [fline]=findline(fidi,'Probabilities for each response function');
    373433    if ~ischar(fline)
    374         return
     434        [fline]=findline(fidi,'Level mappings for each response function');
     435        if ~ischar(fline)
     436            return
     437        end
    375438    end
    376439end
     
    425488                    dresp(idresp).cdf(icdf,i)=tokens{1}{itoken};
    426489                end
    427             end;
     490            end
     491            fline=fgetl(fidi);
     492        end
     493    end
     494end
     495
     496display(sprintf('  Number of Dakota response functions=%d.',...
     497    length(dresp)));
     498
     499end
     500
     501%%  function to find and read the pdf's
     502
     503function [dresp]=pdfs_read(fidi,dresp,fline)
     504
     505if ~exist('fline','var') || isempty(fline) || ~ischar(fline)
     506    [fline]=findline(fidi,'Probability Density Function (PDF) histograms for each response function');
     507    if ~ischar(fline)
     508        return
     509    end
     510end
     511
     512display('Reading PDF''s for response functions:');
     513
     514while ischar(fline) && ~isempty(fline)
     515    fline=fgetl(fidi);
     516    if ~ischar(fline)
     517        break;
     518    end
     519
     520%  process header line of pdf
     521
     522    while ischar(fline) && ~isempty(fline)
     523        [ntokens,tokens]=fltokens(fline);
     524
     525%  find response function associated with pdf
     526
     527        idresp=0;
     528        for i=1:length(dresp)
     529            if strcmpi(tokens{1}{ 3},dresp(i).descriptor)
     530                idresp=i;
     531                break;
     532            end
     533        end
     534        if ~idresp
     535            idresp=length(dresp)+1;
     536            dresp(idresp).descriptor=tokens{1}{ 3};
     537            display(sprintf('  %s',dresp(idresp).descriptor));
     538        end
     539
     540%  skip column headings of pdf
     541
     542        fline=fgetl(fidi);
     543        fline=fgetl(fidi);
     544
     545%  read and add pdf table to response function
     546
     547        fline=fgetl(fidi);
     548        ipdf=0;
     549        while ischar(fline) && ~isempty(fline) && ...
     550              ~strncmpi(fline,'PDF for', 7)
     551            [ntokens,tokens]=fltokens(fline);
     552            ipdf=ipdf+1;
     553            dresp(idresp).pdf(ipdf,1:3)=NaN;
     554            for i=1:3
     555                dresp(idresp).pdf(ipdf,i)=tokens{1}{i};
     556            end
    428557            fline=fgetl(fidi);
    429558        end
Note: See TracChangeset for help on using the changeset viewer.