Changeset 11180


Ignore:
Timestamp:
01/23/12 15:06:57 (13 years ago)
Author:
Eric.Larour
Message:

Bug fix: fixing optimization interface to FLAIM optimization.

Location:
issm/trunk-jpl/src/m
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/flaim.m

    r10241 r11180  
    1515                solution           = modelfield('default','','marshall',false);
    1616                quality            = modelfield('default',0,'marshall',false);
     17                path_optimize      = modelfield('default',false,'marshall',false);
     18                opt_ndir           = modelfield('default',1,'marshall',false);
     19                opt_dist           = modelfield('default',25,'marshall',false);
     20                opt_niter          = modelfield('default',30000,'marshall',false);
    1721        end
    1822        methods
     
    6064
    6165                        disp(sprintf('\n      Input:'));
    62                         fielddisplay(obj,'targets'            ,'name of kml targets file');
    63                         fielddisplay(obj,'tracks'             ,'name of kml tracks file');
    64                         fielddisplay(obj,'flightreqs'         ,'structure of kml flight requirements');
    65                         fielddisplay(obj,'criterion'          ,'element or nodal criterion for flight path evaluation');
     66                        fielddisplay(obj,'targets'            ,'name of kml output targets file ');
     67                        fielddisplay(obj,'tracks'             ,'name of kml input tracks file ');
     68                        fielddisplay(obj,'flightreqs'         ,'structure of kml flight requirements (not used yet)');
     69                        fielddisplay(obj,'criterion'          ,'element or nodal criterion for flight path evaluation (metric)');
    6670
    6771                        disp(sprintf('\n      Arguments:'));
     
    6973                        fielddisplay(obj,'usevalueordering'   ,'flag to consider target values for flight path evaluation');
    7074                        fielddisplay(obj,'split_antimeridian' ,'flag to split polygons on the antimeridian');
     75                       
     76                        disp(sprintf('\n      Optimization:'));
     77                        fielddisplay(obj,'path_optimize'     ,'optimize? (default false)');
     78                        fielddisplay(obj,'opt_ndir'     ,{'number of directions to test when moving a point.  If this value = 1, a random direction is tested.',...
     79                                                                                          'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.',...
     80                                                                                          'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].'});
     81                        fielddisplay(obj,'opt_dist'     ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration');
     82                        fielddisplay(obj,'opt_niter'     ,{'number of iterations (default 30,000) to run for flightplan optimization',...
     83                                                                                           'i.e. the number of times to randomly select a point and move it.'});
    7184
    7285                        disp(sprintf('\n      Output:'));
  • issm/trunk-jpl/src/m/model/display/fielddisplay.m

    r9279 r11180  
    1313end %function
    1414
    15 function parsedisplay(offset,name,field,comment);
     15function parsedisplay(offset,name,field,comment); %{{{
    1616
    1717        %string
     
    7373
    7474        end
    75 end
     75end%}}}
    7676
    7777function struct_display(structure,offset) % {{{
     
    141141                disp(sprintf('%s%-23s: %-15s',offset,name,characterization));
    142142        else
    143                 disp(sprintf('%s%-23s: %-15s -- %s',offset,name,characterization,comment));
     143                if ischar(comment),
     144                        disp(sprintf('%s%-23s: %-15s -- %s',offset,name,characterization,comment));
     145                elseif iscell(comment),
     146                        disp(sprintf('%s%-23s: %-15s -- %s',offset,name,characterization,comment{1}));
     147                        for i=2:length(comment),
     148                                disp(sprintf('%s%-23s  %-15s    %s',offset,'','',comment{i}));
     149                        end
     150                else
     151                        error('fielddisplay error message: format for comment not supportet yet');
     152                end
    144153        end
    145154end% }}}
  • issm/trunk-jpl/src/m/solutions/flaim_sol.m

    r9895 r11180  
    108108FLAIM_DIR=flaimdir();
    109109%system([FLAIM_DIR '/clasp/swathModule/models/issm/issm.exe -kml ' fm_tracks ' -kml ' fm_targets ' -gridsatequator 200000 -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints -usevalueordering -split-antimeridian >& ' filelog]);
     110%$(MODELDIR)$(PATHSEP)$(MODELEXEC) -kml kml_inputs$(PATHSEP)$(KMLNAME) -gridsatequator 200000 \
     111%               -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints -usevalueordering \
     112%               -split-antimeridian -pathoptimize 1 25km 30000
    110113flaim_cmd=[FLAIM_DIR '/clasp/swathModule/models/issm/issm.exe -kml ' fm_tracks ' -kml ' fm_targets ' -gridsatequator ' int2str(md.flaim.gridsatequator) ' -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints'];
     114
    111115if (md.flaim.usevalueordering)
    112116        flaim_cmd=[flaim_cmd ' -usevalueordering'];
     
    115119        flaim_cmd=[flaim_cmd ' -split-antimeridian'];
    116120end
     121if (md.flaim.path_optimize)
     122        flaim_cmd=[flaim_cmd ' -pathoptimize ' num2str(md.flaim.opt_ndir) ' ' num2str(md.flaim.opt_dist) 'km ' num2str(md.flaim.opt_niter)];
     123end
     124
    117125flaim_cmd=[flaim_cmd ' >& ' filelog];
    118126system(flaim_cmd);
     
    137145if exist(filelog,'file')
    138146        [status,fline]=system(['grep -i quality ' filelog]);
     147
    139148        if ~isempty(fline)
    140149                strings=textscan(fline,'%s','delimiter',' =,','MultipleDelimsAsOne',1);
    141                 md.results.FlaimSolution.quality =sscanf(strings{1}{2},'%f');
     150                md.results.FlaimSolution.quality =sscanf(strings{1}{end},'%f');
    142151        else
    143152                warning('Could not find ''quality'' in the ''%s/%s'' flaim log file.',options.fmdir,filelog);
  • issm/trunk-jpl/src/m/utils/Shell/flaimdir.m

    r7683 r11180  
    55%      FLAIM_DIR=flaimdir()
    66
    7 FLAIM_DIR=[issmdir '/trunk/externalpackages/flaim/install'];
     7FLAIM_DIR=[issmtier '/externalpackages/flaim/install'];
Note: See TracChangeset for help on using the changeset viewer.