Changeset 19894


Ignore:
Timestamp:
12/15/15 17:03:43 (9 years ago)
Author:
Eric.Larour
Message:

CHG: new radaroverlay outer triangulation.

Location:
issm/trunk-jpl/src/m
Files:
1 added
6 edited

Legend:

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

    r19879 r19894  
    13521352
    13531353                end % }}}
    1354                 function savemodeljs(md,modelname,filename) % {{{
     1354                function savemodeljs(md,modelname,websiteroot) % {{{
    13551355
    13561356                        %the goal of this routine is to save the model as a javascript array that can be included in any html
     
    13581358
    13591359                        %disp:
    1360                         disp(['saving model ''' modelname ''' in file ' filename]);
     1360                        disp(['saving model ''' modelname ''' in file ' websiteroot '/js/' modelname '.js']);
    13611361
    13621362                        %open file for writing and declare the model:
    1363                         fid=fopen(filename,'w');
     1363                        fid=fopen([websiteroot '/js/' modelname '.js'],'w');
    13641364                        fprintf(fid,'var %s=new model();\n',modelname);
    13651365
     
    13711371
    13721372                                %Some properties do not need to be saved
    1373                                 if ismember(field,{'results' 'radaroverlay','cluster' }),
     1373                                if ismember(field,{'results','cluster' }),
    13741374                                        continue;
    13751375                                end
  • issm/trunk-jpl/src/m/classes/radaroverlay.js

    r19759 r19894  
    1111                console.log(sprintf('   radaroverlay parameters:'));
    1212
    13                 fielddisplay(this,'pwr','radar power image (matrix)');
    14                 fielddisplay(this,'x','corresponding x coordinates [m]');
    15                 fielddisplay(this,'y','corresponding y coordinates [m]');
     13                fielddisplay(this,'xlim','corresponding x boundaries[m]');
     14                fielddisplay(this,'ylim','corresponding y boundaries [m]');
     15                fielddisplay(this,'outerindex','outer triangulation between mesh and bounding box');
     16                fielddisplay(this,'outerx','outer triangulation x coordinate between mesh and bounding box');
     17                fielddisplay(this,'outery','outer triangulation y coordinate between mesh and bounding box');
    1618
    1719        }// }}}
    1820        //properties
    1921        // {{{
    20         this.pwr = NaN;
    21         this.x   = NaN;
    22         this.y   = NaN;
     22        this.xlim   = NaN;
     23        this.ylim   = NaN;
     24        this.outerindex   = NaN;
     25        this.outerx   = NaN;
     26        this.outery   = NaN;
    2327        this.setdefaultparameters();
    2428        //}}}
  • issm/trunk-jpl/src/m/classes/radaroverlay.m

    r19040 r19894  
    99                x   = NaN;
    1010                y   = NaN;
     11                outerindex = NaN;
     12                outerx = NaN;
     13                outery = NaN;
     14                outerheight = NaN;
    1115        end
    1216        methods
     
    2832                        fielddisplay(self,'x','corresponding x coordinates [m]');
    2933                        fielddisplay(self,'y','corresponding y coordinates [m]');
     34                        fielddisplay(self,'outerindex','outer triangulation corresponding to space between mesh and the bounding box');
     35                        fielddisplay(self,'outerx','outer x corresponding to space between mesh and the bounding box');
     36                        fielddisplay(self,'outery','outer y corresponding to space between mesh and the bounding box');
     37                        fielddisplay(self,'outerheight','outer height corresponding to space between mesh and the bounding box');
     38
     39                end % }}}
     40                function savemodeljs(self,fid,modelname) % {{{
     41               
     42                        if ~isnan(self.pwr),
     43                                writejs1Darray(fid,[modelname '.radaroverlay.xlim'],[min(self.x) max(self.x)]);
     44                                writejs1Darray(fid,[modelname '.radaroverlay.ylim'],[min(self.y) max(self.y)]);
     45                                writejs2Darray(fid,[modelname '.radaroverlay.outerindex'],self.outerindex);
     46                                writejs1Darray(fid,[modelname '.radaroverlay.outerx'],self.outerx);
     47                                writejs1Darray(fid,[modelname '.radaroverlay.outery'],self.outery);
     48                                writejs1Darray(fid,[modelname '.radaroverlay.outerheight'],self.outerheight)
     49                        end
    3050
    3151                end % }}}
  • issm/trunk-jpl/src/m/classes/timestepping.m

    r19879 r19894  
    9393                        writejsdouble(fid,[modelname '.timestepping.cfl_coefficient'],self.cfl_coefficient);
    9494                        writejsdouble(fid,[modelname '.timestepping.interp_forcings'],self.interp_forcings);
    95                         writejsdouble(fid,[modelname '.timestepping.in_years'],self.in_years);
    9695
    9796                end % }}}
  • issm/trunk-jpl/src/m/plot/radarpower.m

    r19876 r19894  
    104104
    105105                %Erase image or keep it?
    106                 if getfieldvalue(options,'keep_image',0),
    107                         system(['mv ./temp.tif ' getfieldvalue(options,'image_name','temp.tif')]);
    108                 else
     106                if ~getfieldvalue(options,'keep_image',0),
    109107                        system('rm -rf ./temp.tif');
    110108                end
    111 
    112109        elseif md.mesh.epsg==3031,
    113110                if ~exist(options,'geotiff_name'),
     
    140137                %Erase image
    141138                system('rm -rf ./temp.tif');
     139                %Erase image or keep it?
     140                if ~getfieldvalue(options,'keep_image',0),
     141                        system('rm -rf ./temp.tif');
     142                end
     143
    142144
    143145        else
     
    170172        md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
    171173end
     174
     175%Was a triangulation requested for the area of the image that is not covered by the mesh?
     176if getfieldvalue(options,'outertriangulation','yes'),
     177
     178        %create expfile that is a box controlled by xlim and ylim, with a hole defined by the mesh outer segments.
     179        box.name='';
     180       
     181        %box:
     182        box.x=[xlim(1) xlim(2) xlim(2) xlim(1) xlim(1)];
     183        box.y=[ylim(1) ylim(1) ylim(2) ylim(2) ylim(1)];
     184        box.density=1;
     185
     186        %inner hole from mesh segments:
     187        box(2).x=[md.mesh.x(md.mesh.segments(:,1)); md.mesh.x(md.mesh.segments(end,2))];
     188        box(2).x=[box(2).x; box(2).x(1)];
     189        box(2).y=[md.mesh.y(md.mesh.segments(:,1)); md.mesh.y(md.mesh.segments(end,2))];
     190        box(2).y=[box(2).y; box(2).y(1)];
     191
     192        box(2).x=flipud(box(2).x);
     193        box(2).y=flipud(box(2).y);
     194
     195        %write contour to file
     196        expwrite(box,'./outertriangulation.exp');
     197
     198        %mesh:
     199        maxarea=max(GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y));
     200        outermd=triangle(model(),'./outertriangulation.exp',maxarea);
     201       
     202        %save the triangulation:
     203        md.radaroverlay.outerindex=outermd.mesh.elements;
     204        md.radaroverlay.outerx=outermd.mesh.x;
     205        md.radaroverlay.outery=outermd.mesh.y;
     206
     207end
  • issm/trunk-jpl/src/m/plot/slider.js

    r19840 r19894  
    1414        endmessage=options.getfieldvalue('endmessage',message);
    1515        color=options.getfieldvalue('color','#bbbbbb');
     16        precision=options.getfieldvalue('precision',3);
    1617
    1718        $('<div id="slider_'+slidername+'"></div>').appendTo('#sliders');
     
    4849function moveSlide(event,ui,info,middlemessage){
    4950        var val=ui.value;
    50         info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
     51        info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
    5152}
    5253
    5354function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage){
    5455        var val=ui.value;
    55         info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
     56        info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
    5657        functionvalue(val);
    57         info.text(endmessage[0]+val.toPrecision(3).toString()+endmessage[1]);
     58        info.text(endmessage[0]+val.toPrecision(precision).toString()+endmessage[1]);
    5859}
Note: See TracChangeset for help on using the changeset viewer.