Changeset 24852


Ignore:
Timestamp:
05/13/20 14:38:42 (5 years ago)
Author:
Eric.Larour
Message:

CHG: introduced shp export routine, should be handled by meshes.

File:
1 edited

Legend:

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

    r24778 r24852  
    194194
    195195                end % }}}
     196                function export(self,varargin) % {{{
     197
     198                        options=pairoptions(varargin{:});
     199                        filename=getfieldvalue(options,'filename');
     200                        format=getfieldvalue(options,'format','shp');
     201                        geometry=getfieldvalue(options,'geometry','line');
     202
     203                        %prepare contours:
     204                        contours= struct([]);
     205                        if strcmpi(geometry,'point'),
     206                                for i=1:self.numberofvertices,
     207                                        contours(i).x = self.long(i);
     208                                        contours(i).y = self.lat(i);
     209                                        contours(i).id = i;
     210                                        contours(i).Geometry = 'Point';
     211                                end
     212                        elseif strcmpi(geometry,'line'),
     213                                counter=1;
     214                                for i=1:self.numberofelements,
     215                                        el=self.elements(i,:);
     216                                        %first line:
     217                                        contours(counter).x = [self.long(el(1)) self.long(el(2))];
     218                                        contours(counter).y = [self.lat(el(1)) self.lat(el(2))];
     219                                        contours(counter).Geometry = 'Line';
     220
     221                                        %second line:
     222                                        contours(counter+1).x = [self.long(el(2)) self.long(el(3))];
     223                                        contours(counter+1).y = [self.lat(el(2)) self.lat(el(3))];
     224                                        contours(counter+1).Geometry = 'Line';
     225
     226                                        %third line:
     227                                        contours(counter+2).x = [self.long(el(3)) self.long(el(1))];
     228                                        contours(counter+2).y = [self.lat(el(3)) self.lat(el(1))];
     229                                        contours(counter+2).Geometry = 'Line';
     230                                       
     231                                        %increase counter:
     232                                        counter=counter+3;
     233                                end
     234                        elseif strcmpi(geometry,'polygon'),
     235                                counter=1;
     236                                for i=1:self.numberofelements,
     237                                        el=self.elements(i,:);
     238                                        contours(i).x=[self.long(el(1)) self.long(el(2)) self.long(el(3)) self.long(el(1))];
     239                                        contours(i).y=[self.lat(el(1)) self.lat(el(2)) self.lat(el(3)) self.lat(el(1))];
     240                                        contours(i).Geometry = 'Polygon';
     241                                end
     242                        else
     243                                error(sprintf('mesh3dsurface ''export'' error message: geometry %s not supported yet (should be ''point'' or ''line''',geometry));
     244                        end
     245
     246                        %write file:
     247                        if strcmpi(format,'shp'),
     248                                shpwrite(contours,filename);
     249                        elseif strcmpi(format,'exp'),
     250                                expwrite(contours,filename);
     251                        else
     252                                error(sprintf('mesh3dsurface ''export'' error message: file format %s not supported yet',format));
     253                        end
     254
     255
     256
     257                end % }}}
    196258        end
    197259end
Note: See TracChangeset for help on using the changeset viewer.