<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Binner.m</id>
	<title>Binner.m - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-pnb.eri.ucsb.edu/index.php?action=history&amp;feed=atom&amp;title=Binner.m"/>
	<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Binner.m&amp;action=history"/>
	<updated>2026-04-04T19:14:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki-pnb.eri.ucsb.edu/index.php?title=Binner.m&amp;diff=187&amp;oldid=prev</id>
		<title>128.111.101.185: Created page with '&lt;pre&gt; function binner() %created by Erik Stassinos %4/7/2010 %this is a binning script to cycle through each row and column %counts and outputs the number of bins it's made %loop…'</title>
		<link rel="alternate" type="text/html" href="https://wiki-pnb.eri.ucsb.edu/index.php?title=Binner.m&amp;diff=187&amp;oldid=prev"/>
		<updated>2010-08-03T00:04:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; function binner() %created by Erik Stassinos %4/7/2010 %this is a binning script to cycle through each row and column %counts and outputs the number of bins it&amp;#039;s made %loop…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function binner()&lt;br /&gt;
%created by Erik Stassinos&lt;br /&gt;
%4/7/2010&lt;br /&gt;
%this is a binning script to cycle through each row and column&lt;br /&gt;
%counts and outputs the number of bins it's made&lt;br /&gt;
%loops through depth data until in finds a depth value greater or equal to&lt;br /&gt;
%the bin end, since bin end is the binsize(1m) plus .5 it finds a value&lt;br /&gt;
%greater or equal to .5&lt;br /&gt;
%when it finds this depth value it sets the window min to start and window&lt;br /&gt;
%max to the counter&lt;br /&gt;
%then is loops from min to max windows and looks for trapflag(-9.9E35)&lt;br /&gt;
%n = window max - window min + 1 the it gets mean by if trapflag found mean&lt;br /&gt;
%= value at trapflag, if n = 0 set trapflag, mean = mean plus data at&lt;br /&gt;
%location, then mean = mean over n.&lt;br /&gt;
%then adds values to end of rows plus bin count and n value&lt;br /&gt;
%clear all&lt;br /&gt;
%latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% always finds a list file to open&lt;br /&gt;
%==============--------loading stuff-----=================&lt;br /&gt;
%upcast =0;&lt;br /&gt;
downcast =0;&lt;br /&gt;
error =0;&lt;br /&gt;
format short e&lt;br /&gt;
%cd(pb) %goes to correct dir&lt;br /&gt;
error =0;&lt;br /&gt;
testbin = fopen('list_ac9bmdz')&lt;br /&gt;
        if testbin ~= -1&lt;br /&gt;
            warning('A list file suggesting binning has already been done exhists')&lt;br /&gt;
            disp('Binned files should not be reprocessed.  If files are not binned but list is present, continue.')&lt;br /&gt;
            answer = input('do you want to continue anyways? y or n: ','s')&lt;br /&gt;
            if strncmp(answer,'n',1) == 1&lt;br /&gt;
                return&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
%id = fopen('list_ac9')&lt;br /&gt;
id = fopen('list_ac9mdz');&lt;br /&gt;
if id == -1&lt;br /&gt;
   % sprintf('running from dspike list, no movavg')&lt;br /&gt;
    error =1;&lt;br /&gt;
    id = fopen('list_ac9dz');&lt;br /&gt;
    if id == -1&lt;br /&gt;
    %    sprintf('running from recal list, no dspike');&lt;br /&gt;
        error =2;&lt;br /&gt;
        id = fopen('list_ac9')&lt;br /&gt;
        idtest = fgets(id);&lt;br /&gt;
        if id == -1 || idtest == -1&lt;br /&gt;
            id  = fopen('list_hs6_m');&lt;br /&gt;
            error = 3;&lt;br /&gt;
            if id == -1&lt;br /&gt;
                sprintf('Cannot find the list_ file, exiting')&lt;br /&gt;
                return&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
h1=0;&lt;br /&gt;
while feof(id) ~=1 %used when making new list_ac9&lt;br /&gt;
    tu = fgets(id);&lt;br /&gt;
    h1 = h1+1;%counts number of files in list file&lt;br /&gt;
end&lt;br /&gt;
frewind(id);&lt;br /&gt;
&lt;br /&gt;
for i = 1:h1%&lt;br /&gt;
    %%%%%initialize%%%%%&lt;br /&gt;
    upcast=0;&lt;br /&gt;
    clear h matrix m1 start start_init first bin_end;&lt;br /&gt;
    winmin =0;&lt;br /&gt;
    winmax =0;&lt;br /&gt;
    dflag=0;&lt;br /&gt;
    %error =0;&lt;br /&gt;
    bin_end =0;&lt;br /&gt;
    n=0;&lt;br /&gt;
    themean=0;&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    r = fgets(id);&lt;br /&gt;
    length(r);&lt;br /&gt;
    t = textscan(r,'%s');&lt;br /&gt;
    p = char(t{1,:}) %converts filenam%properly&lt;br /&gt;
    %p = 'mdza110211x.lcd.1'&lt;br /&gt;
    %p = p;&lt;br /&gt;
    if error ~= 3  &lt;br /&gt;
       oneortwo = p(1,13:17);&lt;br /&gt;
       % oneortwo = p(1,12:16); &amp;lt;&amp;lt;===for testing with other format&lt;br /&gt;
    end&lt;br /&gt;
    if error ==3&lt;br /&gt;
        oneortwo = p(1,(11:15));&lt;br /&gt;
    end&lt;br /&gt;
    if strncmp(oneortwo,'lcd.1',5) ==1&lt;br /&gt;
        downcast =1;&lt;br /&gt;
        if error == 1&lt;br /&gt;
            m1 = strrep(p,'.lcd.1','.lcd');&lt;br /&gt;
            m1 = strcat('desp1',m1);&lt;br /&gt;
            %mat1 = load(m1,'.ASC');&lt;br /&gt;
        end&lt;br /&gt;
        if error == 2&lt;br /&gt;
            desp('why here');&lt;br /&gt;
            m1 = strrep(p,'z','');&lt;br /&gt;
            m1 = strrep(m1,'.lcd','.zcal');&lt;br /&gt;
        end&lt;br /&gt;
        if error == 3&lt;br /&gt;
            m1 = strcat('mova',p);&lt;br /&gt;
        end&lt;br /&gt;
       if error == 0&lt;br /&gt;
           m1 = strcat('mova',p);&lt;br /&gt;
       end&lt;br /&gt;
 &lt;br /&gt;
       mat1 = load(m1,'.ASC');&lt;br /&gt;
       matrix = mat1;   &lt;br /&gt;
    end&lt;br /&gt;
    if strncmp(oneortwo,'lcd.2',5) ==1&lt;br /&gt;
        upcast =1;&lt;br /&gt;
        if error == 1&lt;br /&gt;
            m1 = strrep(p,'.lcd.2','.lcd');&lt;br /&gt;
            m1 = strcat('desp2',m1);&lt;br /&gt;
           % mat1 = load(m1,'.ASC');&lt;br /&gt;
        end&lt;br /&gt;
        if error ==2&lt;br /&gt;
            m1 = strrep(p,'z','');&lt;br /&gt;
            m1 = strrep(m1,'.lcd','.zcal');&lt;br /&gt;
        end&lt;br /&gt;
        if error == 3&lt;br /&gt;
            m1 = strcat('mova',p);&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        pis = p;&lt;br /&gt;
        if error ==0&lt;br /&gt;
        m1 = strcat('mova',p);&lt;br /&gt;
        end&lt;br /&gt;
        mat1 = load(m1,'.ASC');&lt;br /&gt;
        matrix = mat1;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if upcast ==1%---------important flips if it's an upcast matrix&lt;br /&gt;
        matrix = flipud(matrix);&lt;br /&gt;
    end&lt;br /&gt;
    %=========----------end loading stuff-----==================&lt;br /&gt;
    &lt;br /&gt;
    %initializing stuff again&lt;br /&gt;
    %setting bin dimensions&lt;br /&gt;
    binsize =1; %aka &amp;quot;the bin&amp;quot; %changed from 1&lt;br /&gt;
    bin_number =0;&lt;br /&gt;
    delta =0;&lt;br /&gt;
    winmax =0;&lt;br /&gt;
    winmin =0;&lt;br /&gt;
    %start_init =1; %initial start position is row 1&lt;br /&gt;
    bincol_ac9 = 22;&lt;br /&gt;
    bincol_hs6 =2;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    if error ==3&lt;br /&gt;
        bincol = bincol_hs6;&lt;br /&gt;
    else&lt;br /&gt;
        bincol = bincol_ac9;&lt;br /&gt;
    end&lt;br /&gt;
    start_init = matrix(1,bincol);&lt;br /&gt;
    if start_init &amp;gt; 1&lt;br /&gt;
        start_init = floor(start_init);&lt;br /&gt;
    end&lt;br /&gt;
    if start_init &amp;lt; 1&lt;br /&gt;
        start_init = abs(start_init);&lt;br /&gt;
        start_init =  ceil(start_init);&lt;br /&gt;
    end&lt;br /&gt;
    start = start_init; %initial setting for start is the first row&lt;br /&gt;
    q = 1;&lt;br /&gt;
    first  = 0;&lt;br /&gt;
    tflag =0;&lt;br /&gt;
    meanmat =[];&lt;br /&gt;
    interv =0;&lt;br /&gt;
    &lt;br /&gt;
    %=================start of major loop==============================&lt;br /&gt;
    %==================================================================&lt;br /&gt;
    &lt;br /&gt;
    while q &amp;lt;= length(matrix(:,1))% test for small amount&lt;br /&gt;
        %if downcast ==1&lt;br /&gt;
        if start_init &amp;lt;= start &amp;amp;&amp;amp; start &amp;lt;= length(matrix(:,1))&lt;br /&gt;
            %============internal original&amp;quot;downcast&amp;quot;=======&lt;br /&gt;
            if q ==1 %for first time around&lt;br /&gt;
                bin_end = binsize +.5;&lt;br /&gt;
                first = bin_end;&lt;br /&gt;
                bin_number =0;&lt;br /&gt;
            else&lt;br /&gt;
                first = bin_end;&lt;br /&gt;
            end&lt;br /&gt;
            if q ~= 1&lt;br /&gt;
                bin_end = first + 1;%bin_end;%binsize;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            %===============&lt;br /&gt;
            for h = start:length(matrix(:,bincol)) %length of column 22&lt;br /&gt;
                dflag =0;&lt;br /&gt;
                delta = abs(matrix(h,bincol)); %delta value is absolute of depth value&lt;br /&gt;
                if delta &amp;gt;= bin_end&lt;br /&gt;
                    winmax = h - 1;&lt;br /&gt;
                    winmin = start;&lt;br /&gt;
                    dflag =1;&lt;br /&gt;
                    interv = interv +1;&lt;br /&gt;
                    break&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            %=============&lt;br /&gt;
            themean =0;&lt;br /&gt;
            winmax;&lt;br /&gt;
            winmin;&lt;br /&gt;
            n = winmax - winmin +1;&lt;br /&gt;
            for c = 1:length(matrix(1,:))&lt;br /&gt;
                for r = winmin:winmax &lt;br /&gt;
                    if matrix(r,c) &amp;lt; -8.9E35&lt;br /&gt;
                        tflag =1;&lt;br /&gt;
                    end&lt;br /&gt;
                    format long e&lt;br /&gt;
                    themean = themean + matrix(r,c);&lt;br /&gt;
                end&lt;br /&gt;
                if n ==0&lt;br /&gt;
                    format short e&lt;br /&gt;
                    themean = -9.9E35;&lt;br /&gt;
                else&lt;br /&gt;
                    if tflag ==1&lt;br /&gt;
                        format short e&lt;br /&gt;
                        themean = -9.9E35;&lt;br /&gt;
                    %end&lt;br /&gt;
                    else&lt;br /&gt;
                  themean = themean/n;&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                &lt;br /&gt;
                %counts how many times the mean is taken, should be 95 per row&lt;br /&gt;
                meanmat(interv,c) = themean; % write compact mean matrix.&lt;br /&gt;
                &lt;br /&gt;
                if c == length(matrix(1,:))&lt;br /&gt;
                    meanmat(interv,c+1) = interv;&lt;br /&gt;
                    meanmat(interv,c+2) = n;&lt;br /&gt;
                    &lt;br /&gt;
                end&lt;br /&gt;
                % if meancount == length(matrix(1,:)) %if it's done all 95 columns increase counter and write&lt;br /&gt;
                %row = row +1&lt;br /&gt;
                %end&lt;br /&gt;
                themean =0; %resets at end of loop&lt;br /&gt;
                tflag =0;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            %==============end internal &amp;quot;downcast&amp;quot;==========&lt;br /&gt;
            q = q+1; %update counter for size of matrix&lt;br /&gt;
            start = h;&lt;br /&gt;
            bin_number = bin_number + binsize;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %==============================================================&lt;br /&gt;
    %===============end of major loop==============================&lt;br /&gt;
    if upcast ==1&lt;br /&gt;
       % meanmat = flipud(meanmat);&lt;br /&gt;
    end&lt;br /&gt;
    dlmwrite(strcat('binmat',p),meanmat,'delimiter',' ','precision',6); %puts binner in name and writes new mean matrix&lt;br /&gt;
   &lt;br /&gt;
    %=========================================================================&lt;br /&gt;
    %=========================================================================&lt;br /&gt;
    &lt;br /&gt;
    %-------------------for writing%file------------------------------------&lt;br /&gt;
    fflag=0;&lt;br /&gt;
    ogfile = fopen(p);&lt;br /&gt;
    if error == 0&lt;br /&gt;
        file = strrep(p,'mdz','bmdz');&lt;br /&gt;
    end&lt;br /&gt;
    if error ==1&lt;br /&gt;
       file = strcat('b',p);&lt;br /&gt;
    end&lt;br /&gt;
    if error ==3&lt;br /&gt;
        file  = strcat('b',p);&lt;br /&gt;
    end&lt;br /&gt;
    nfile1 = fopen(file,'r+');&lt;br /&gt;
    if nfile1 == -1 %if this is the first time&lt;br /&gt;
        fflag = 1; %if does not exist&lt;br /&gt;
        nfile1 = fopen(file,'w+');&lt;br /&gt;
    end&lt;br /&gt;
    %------------writes down to derived parameters&lt;br /&gt;
    ogline = 0; %trip into loop&lt;br /&gt;
    %if fflag ==1&lt;br /&gt;
    frewind(ogfile);&lt;br /&gt;
    while strncmp(ogline,'&amp;lt;data&amp;gt;',6) ~=1&lt;br /&gt;
        datloc = ftell(nfile1);&lt;br /&gt;
        ogline = fgets(ogfile);&lt;br /&gt;
        fwrite(nfile1,ogline);&lt;br /&gt;
        derivedloc = ftell(nfile1);&lt;br /&gt;
        &lt;br /&gt;
    end&lt;br /&gt;
    %------------end&lt;br /&gt;
    %------------insert bin parameters-----&lt;br /&gt;
    fseek(nfile1,datloc,-1);&lt;br /&gt;
    fprintf(nfile1,'%s\n','bin#_1.0_1depth')&lt;br /&gt;
    fprintf(nfile1,'%s\n','pts/bin')&lt;br /&gt;
    fprintf(nfile1,'%s\n','&amp;lt;data&amp;gt;')&lt;br /&gt;
    datainsert = ftell(nfile1);&lt;br /&gt;
    %==============part that actually writes matrix to lcd file=============&lt;br /&gt;
    &lt;br /&gt;
    min = fopen(strcat('binmat',p));&lt;br /&gt;
    %   minup = fopen(strcat('desp2m',p));&lt;br /&gt;
    %working with new file&lt;br /&gt;
    if fflag ==1&lt;br /&gt;
        fseek(nfile1,datainsert,-1);&lt;br /&gt;
        for o= 1:length(meanmat(:,1))%totalptsdn&lt;br /&gt;
            ln = fgets(min);&lt;br /&gt;
            fprintf(nfile1,ln);&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    %-----------notes filters that have already been used&lt;br /&gt;
    frewind(ogfile); %makers sure it will catch the filters_used in ogfile&lt;br /&gt;
    %frewind(nfile1)&lt;br /&gt;
    &lt;br /&gt;
    while feof(ogfile)~=1&lt;br /&gt;
        loc1 = ftell(ogfile);&lt;br /&gt;
        lnprev = fgets(ogfile);&lt;br /&gt;
        if strncmp(lnprev,'&amp;lt;filters_used&amp;gt;',14) == 1 %tests for filters used location&lt;br /&gt;
            fprintf(nfile1,'&amp;lt;filters_used&amp;gt;\n'); %writes filters used in same loc in new file&lt;br /&gt;
            fil = 0;% trip into loop&lt;br /&gt;
            count =0;&lt;br /&gt;
            while feof(ogfile) ~=1 %makes variable to hold each filter&lt;br /&gt;
                count = count +1;&lt;br /&gt;
                fil = fgets(ogfile);&lt;br /&gt;
                fwrite(nfile1,fil);&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    %-----------end notes&lt;br /&gt;
    %adds bin function to filters&lt;br /&gt;
    fprintf(nfile1,'%s', 'binner ');&lt;br /&gt;
    fprintf(nfile1,'%s','1 ');&lt;br /&gt;
    fprintf(nfile1,'%s',' ');&lt;br /&gt;
    fprintf(nfile1,'%s\n',p);&lt;br /&gt;
    if error ~=3&lt;br /&gt;
        demfile = strrep(p,'mdz','bmdz');&lt;br /&gt;
    end&lt;br /&gt;
    if error ==3&lt;br /&gt;
        demfile = file;&lt;br /&gt;
    end&lt;br /&gt;
    deemmer(demfile);&lt;br /&gt;
    &lt;br /&gt;
    %makes new list&lt;br /&gt;
    %frewind(id)&lt;br /&gt;
    % for po=1:h1 %-1&lt;br /&gt;
    % %h = h+2;&lt;br /&gt;
    %     r = po%-1;&lt;br /&gt;
    %     ac9 = fgets(id);&lt;br /&gt;
    %    t =  textscan(ac9,'%s');&lt;br /&gt;
    %       newlst = char(t{1,:});&lt;br /&gt;
    if error ~=3&lt;br /&gt;
        newlst(i,:) = strrep(p,'mdz','bmdz'); %%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    end&lt;br /&gt;
    if error ==3&lt;br /&gt;
        newlst(i,:) = strrep(p,'m','bm')&lt;br /&gt;
    end&lt;br /&gt;
    clear themean&lt;br /&gt;
    clear n&lt;br /&gt;
    clear tflag&lt;br /&gt;
    clear demfile nfile1 loc1 matrix tflag interv tflag r winmax winmin c&lt;br /&gt;
    clear meanmat start delta bin_end q ln datloc ogline fflag h bin_number &lt;br /&gt;
    clear start_init  &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if error ~= 3&lt;br /&gt;
    dlmwrite('list_ac9bmdz',newlst,'');&lt;br /&gt;
end&lt;br /&gt;
if error ==3&lt;br /&gt;
    dlmwrite('list_hs6_bm',newlst,'');&lt;br /&gt;
end&lt;br /&gt;
disp('done with binner')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[[binner]]&amp;lt;big&amp;gt;&lt;/div&gt;</summary>
		<author><name>128.111.101.185</name></author>
		
	</entry>
</feed>