Changeset 18558


Ignore:
Timestamp:
10/01/14 10:30:08 (10 years ago)
Author:
Mathieu Morlighem
Message:

NEW: removed md.mesh.hemisphere and replaced by md.mesh.epsg which gives the EPSG code for the projection that is being used

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

Legend:

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

    r17931 r18558  
    88                x                           = NaN;
    99                y                           = NaN;
    10                 elements                    = NaN
     10                elements                    = NaN;
    1111                numberofelements            = 0;
    1212                numberofvertices            = 0;
    1313                numberofedges               = 0;
    1414
    15                 lat                         = NaN
    16                 long                        = NaN
    17                 hemisphere                  = NaN
     15                lat                         = NaN;
     16                long                        = NaN;
     17                epsg                        = 0;
    1818
    19                 vertexonboundary            = NaN
     19                vertexonboundary            = NaN;
    2020
    21                 edges                       = NaN
    22                 segments                    = NaN
    23                 segmentmarkers              = NaN
    24                 vertexconnectivity          = NaN
    25                 elementconnectivity         = NaN
     21                edges                       = NaN;
     22                segments                    = NaN;
     23                segmentmarkers              = NaN;
     24                vertexconnectivity          = NaN;
     25                elementconnectivity         = NaN;
    2626                average_vertex_connectivity = 0;
    2727
    28                 extractedvertices           = NaN
    29                 extractedelements           = NaN
     28                extractedvertices           = NaN;
     29                extractedelements           = NaN;
     30        end
     31        methods (Static)
     32                function self = loadself(self) % {{{
     33                        % This function is directly called by matlab when a model selfect is
     34                        % loaded. Update old properties here
     35
     36                        %2014 Oct. 1st
     37                        if isstruct(self),
     38                                oldself=self;
     39                                %Assign property values from struct
     40                                self=structtoself(mesh2d(),oldself)
     41                                if isfield(oldself,'hemisphere'),
     42                                        disp('md.mesh.hemisphere has been automatically converted to EPSG code');
     43                                        if strcmpi(oldself.hemisphere,'n'),
     44                                                self.epsg=3413;
     45                                        else
     46                                                self.epsg=3031;
     47                                        end
     48                                end
     49                        end
     50
     51                end% }}}
    3052        end
    3153        methods
     
    102124                        fielddisplay(obj,'lat','vertices latitude [degrees]');
    103125                        fielddisplay(obj,'long','vertices longitude [degrees]');
    104                         fielddisplay(obj,'hemisphere','Indicate hemisphere ''n'' or ''s'' ');
     126                        fielddisplay(obj,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
    105127                end % }}}
    106         function createxml(obj,fid) % {{{
    107             fprintf(fid, '<!-- 2D tria Mesh (horizontal) -->\n');
    108            
    109             %elements and vertices
    110             fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Elements and vertices">','<section name="mesh" />');
    111             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','     <section name="mesh" />','     <help> number of elements </help>','  </parameter>');
    112             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','     <section name="mesh" />','     <help> number of vertices </help>','  </parameter>');
    113             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','     <section name="mesh" />','     <help> vertex indices of the mesh elements </help>','  </parameter>');
    114             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    115             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    116             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(obj.edges),'" default="',convert2str(obj.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
    117             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
    118             fprintf(fid,'%s\n%s\n','</frame>');
    119      
    120             % properties
    121             fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
    122             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
    123             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(obj.segments),'" default="',convert2str(obj.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
    124             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
    125             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
    126             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
    127             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    128             fprintf(fid,'%s\n%s\n','</frame>');
    129            
    130             %extracted model
    131             fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Extracted Model">','<section name="mesh" />');
    132             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh" />','     <help> vertices extracted from the model </help>','  </parameter>');
    133             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh" />','     <help> elements extracted from the model </help>','  </parameter>');
    134             fprintf(fid,'%s\n%s\n','</frame>');
    135            
    136             %projection
    137             fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Projection">','<section name="mesh" />');
    138             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
    139             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
    140             % choice (hemisphere) 'n' or 's'
    141             fprintf(fid,'%s\n%s\n%s\n','  <parameter key ="hemisphere" type="alternative" optional="false">','     <section name="mesh" />','     <help> Indicate hemisphere ''n'' or ''s'' </help>');
    142             fprintf(fid,'%s\n','       <option value="n" type="string" default="true"> </option>');
    143             fprintf(fid,'%s\n','       <option value="s" type="string" default="false"> </option>');
    144             fprintf(fid,'%s\n','  </parameter>');
    145             fprintf(fid,'%s\n%s\n','</frame>');
    146        
    147         end % }}}
     128                function createxml(obj,fid) % {{{
     129                        fprintf(fid, '<!-- 2D tria Mesh (horizontal) -->\n');
     130
     131                        %elements and vertices
     132                        fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Elements and vertices">','<section name="mesh" />');
     133                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','     <section name="mesh" />','     <help> number of elements </help>','  </parameter>');
     134                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','     <section name="mesh" />','     <help> number of vertices </help>','  </parameter>');
     135                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','     <section name="mesh" />','     <help> vertex indices of the mesh elements </help>','  </parameter>');
     136                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     137                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     138                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(obj.edges),'" default="',convert2str(obj.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
     139                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
     140                        fprintf(fid,'%s\n%s\n','</frame>');
     141
     142                        % properties
     143                        fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
     144                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
     145                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(obj.segments),'" default="',convert2str(obj.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
     146                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
     147                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
     148                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
     149                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     150                        fprintf(fid,'%s\n%s\n','</frame>');
     151
     152                        %extracted model
     153                        fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Extracted Model">','<section name="mesh" />');
     154                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh" />','     <help> vertices extracted from the model </help>','  </parameter>');
     155                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh" />','     <help> elements extracted from the model </help>','  </parameter>');
     156                        fprintf(fid,'%s\n%s\n','</frame>');
     157
     158                        %projection
     159                        fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Projection">','<section name="mesh" />');
     160                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
     161                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
     162                        % choice (epsg) 'n' or 's'
     163                        fprintf(fid,'%s\n%s\n%s\n','  <parameter key ="epsg" type="alternative" optional="false">','     <section name="mesh" />','     <help> Indicate epsg ''n'' or ''s'' </help>');
     164                        fprintf(fid,'%s\n','       <option value="n" type="string" default="true"> </option>');
     165                        fprintf(fid,'%s\n','       <option value="s" type="string" default="false"> </option>');
     166                        fprintf(fid,'%s\n','  </parameter>');
     167                        fprintf(fid,'%s\n%s\n','</frame>');
     168
     169                end % }}}
    148170                function marshall(obj,md,fid) % {{{
    149171                        WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype(obj)]),'format','Integer');
  • issm/trunk-jpl/src/m/classes/mesh2d.py

    r17700 r18558  
    2424                self.lat                         = float('NaN');
    2525                self.long                        = float('NaN');
    26                 self.hemisphere                  = float('NaN');
     26                self.epsg                        = 0;
    2727
    2828                self.vertexonboundary            = float('NaN');
     
    6868                string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]"))
    6969                string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]"))
    70                 string="%s\n%s"%(string,fielddisplay(self,"hemisphere","Indicate hemisphere 'n' or 's'"))
     70                string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)"))
    7171                return string
    7272                #}}}
  • issm/trunk-jpl/src/m/classes/mesh2dvertical.m

    r17931 r18558  
    88                x                           = NaN;
    99                y                           = NaN;
    10                 elements                    = NaN
     10                elements                    = NaN;
    1111                numberofelements            = 0;
    1212                numberofvertices            = 0;
    1313                numberofedges               = 0;
    1414
    15                 lat                         = NaN
    16                 long                        = NaN
    17                 hemisphere                  = NaN
    18 
    19                 vertexonboundary            = NaN
    20                 vertexonbase                 = NaN
    21                 vertexonsurface             = NaN
    22 
    23                 edges                       = NaN
    24                 segments                    = NaN
    25                 segmentmarkers              = NaN
    26                 vertexconnectivity          = NaN
    27                 elementconnectivity         = NaN
     15                lat                         = NaN;
     16                long                        = NaN;
     17                epsg                        = NaN;
     18
     19                vertexonboundary            = NaN;
     20                vertexonbase                = NaN;
     21                vertexonsurface             = NaN;
     22
     23                edges                       = NaN;
     24                segments                    = NaN;
     25                segmentmarkers              = NaN;
     26                vertexconnectivity          = NaN;
     27                elementconnectivity         = NaN;
    2828                average_vertex_connectivity = 0;
    2929        end
     30        methods (Static)
     31                function self = loadself(self) % {{{
     32                        % This function is directly called by matlab when a model selfect is
     33                        % loaded. Update old properties here
     34
     35                        %2014 Oct. 1st
     36                        if isstruct(self),
     37                                oldself=self;
     38                                %Assign property values from struct
     39                                self=structtoself(mesh2dvertical(),oldself)
     40                                if isfield(oldself,'hemisphere'),
     41                                        disp('md.mesh.hemisphere has been automatically converted to EPSG code');
     42                                        if strcmpi(oldself.hemisphere,'n'),
     43                                                self.epsg=3413;
     44                                        else
     45                                                self.epsg=3031;
     46                                        end
     47                                end
     48                        end
     49
     50                end% }}}
     51        end
    3052        methods
    31                 function createxml(obj,fid) % {{{
    32             fprintf(fid, '<!-- 2d Mesh (Vertical) -->\n');
    33            
    34             %elements and vertices
    35             fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices">','       <section name="mesh" />');
    36             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
    37             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
    38             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
    39             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    40             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    41             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(obj.edges),'" default="',convert2str(obj.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
    42             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
    43             fprintf(fid,'%s\n%s\n','       </frame>');
    44      
    45             % properties
    46             fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
    47             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
    48             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh" />','     <help> vertices on the bed of the domain flag list </help>','  </parameter>');           
    49             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(obj.segments),'" default="',convert2str(obj.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
    50             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
    51             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
    52             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
    53             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    54             fprintf(fid,'%s\n%s\n','</frame>');
    55 
    56             %projection
    57             fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Projection">','<section name="mesh" />');
    58             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
    59             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
    60             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="hemisphere" type="',class(obj.hemisphere),'" default="',convert2str(obj.hemisphere),'">','     <section name="mesh" />','     <help> Indicate hemisphere ''n'' or ''s'' </help>','  </parameter>');
    61             fprintf(fid,'%s\n%s\n','</frame>');
    62        
    63         end % }}}
     53                function createxml(obj,fid) % {{{
     54                        fprintf(fid, '<!-- 2d Mesh (Vertical) -->\n');
     55
     56                        %elements and vertices
     57                        fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices">','       <section name="mesh" />');
     58                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
     59                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
     60                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
     61                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     62                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     63                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(obj.edges),'" default="',convert2str(obj.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
     64                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
     65                        fprintf(fid,'%s\n%s\n','       </frame>');
     66
     67                        % properties
     68                        fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
     69                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
     70                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh" />','     <help> vertices on the bed of the domain flag list </help>','  </parameter>');           
     71                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(obj.segments),'" default="',convert2str(obj.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
     72                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
     73                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
     74                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
     75                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     76                        fprintf(fid,'%s\n%s\n','</frame>');
     77
     78                        %projection
     79                        fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Projection">','<section name="mesh" />');
     80                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
     81                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
     82                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(obj.epsg),'" default="',convert2str(obj.epsg),'">','     <section name="mesh" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
     83                        fprintf(fid,'%s\n%s\n','</frame>');
     84
     85                end % }}}
    6486                function obj = mesh2dvertical(varargin) % {{{
    6587                        switch nargin
     
    134156                        fielddisplay(obj,'lat','vertices latitude [degrees]');
    135157                        fielddisplay(obj,'long','vertices longitude [degrees]');
    136                         fielddisplay(obj,'hemisphere','Indicate hemisphere ''n'' or ''s'' ');
     158                        fielddisplay(obj,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
    137159                end % }}}
    138160                function marshall(obj,md,fid) % {{{
  • issm/trunk-jpl/src/m/classes/mesh3dprisms.m

    r18077 r18558  
    88                x                           = NaN;
    99                y                           = NaN;
    10                 z                           = NaN
    11                 elements                    = NaN
     10                z                           = NaN;
     11                elements                    = NaN;
    1212                numberoflayers              = 0;
    1313                numberofelements            = 0;
    1414                numberofvertices            = 0;
    1515
    16                 lat                         = NaN
    17                 long                        = NaN
    18                 hemisphere                  = NaN
    19 
    20                 vertexonbase                 = NaN
    21                 vertexonsurface             = NaN
    22                 lowerelements               = NaN
    23                 lowervertex                 = NaN
    24                 upperelements               = NaN
    25                 uppervertex                 = NaN
    26                 vertexonboundary            = NaN
    27 
    28                 vertexconnectivity          = NaN
    29                 elementconnectivity         = NaN
     16                lat                         = NaN;
     17                long                        = NaN;
     18                epsg                        = 0;
     19
     20                vertexonbase                = NaN;
     21                vertexonsurface             = NaN;
     22                lowerelements               = NaN;
     23                lowervertex                 = NaN;
     24                upperelements               = NaN;
     25                uppervertex                 = NaN;
     26                vertexonboundary            = NaN;
     27
     28                vertexconnectivity          = NaN;
     29                elementconnectivity         = NaN;
    3030                average_vertex_connectivity = 0;
    3131
    32                 x2d                         = NaN
    33                 y2d                         = NaN
    34                 elements2d                  = NaN
     32                x2d                         = NaN;
     33                y2d                         = NaN;
     34                elements2d                  = NaN;
    3535                numberofvertices2d          = 0;
    3636                numberofelements2d          = 0;
    3737
    38                 extractedvertices           = NaN
    39                 extractedelements           = NaN
     38                extractedvertices           = NaN;
     39                extractedelements           = NaN;
     40        end
     41        methods (Static)
     42                function self = loadself(self) % {{{
     43                        % This function is directly called by matlab when a model selfect is
     44                        % loaded. Update old properties here
     45
     46                        %2014 Oct. 1st
     47                        if isstruct(self),
     48                                oldself=self;
     49                                %Assign property values from struct
     50                                self=structtoself(mesh3dprisms(),oldself)
     51                                if isfield(oldself,'hemisphere'),
     52                                        disp('md.mesh.hemisphere has been automatically converted to EPSG code');
     53                                        if strcmpi(oldself.hemisphere,'n'),
     54                                                self.epsg=3413;
     55                                        else
     56                                                self.epsg=3031;
     57                                        end
     58                                end
     59                        end
     60
     61                end% }}}
    4062        end
    4163        methods
    42            function createxml(obj,fid) % {{{
    43             fprintf(fid, '<!-- 3D prism Mesh -->\n');
    44            
    45             % Elements and verticies of the original 2d mesh
    46             fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
    47             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(obj.numberofelements2d),'" default="',convert2str(obj.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
    48             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(obj.numberofvertices2d),'" default="',convert2str(obj.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
    49             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(obj.elements2d),'" default="',convert2str(obj.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
    50             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(obj.x2d),'" default="',convert2str(obj.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    51             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(obj.y2d),'" default="',convert2str(obj.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    52             fprintf(fid,'%s\n%s\n','       </frame>');
    53            
    54             % Elements and vertices of the extruded 3d mesh
    55             fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
    56             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
    57             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
    58             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
    59             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    60             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    61             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
    62             fprintf(fid,'%s\n%s\n','       </frame>');
    63      
    64             % properties
    65             fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
    66             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(obj.numberoflayers),'" default="',convert2str(obj.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
    67             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
    68             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(obj.elementontbase),'" default="',convert2str(obj.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
    69             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(obj.vertexonsurface),'" default="',convert2str(obj.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
    70             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(obj.elementontsurface),'" default="',convert2str(obj.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
    71             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(obj.uppervertex),'" default="',convert2str(obj.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
    72             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(obj.upperelements),'" default="',convert2str(obj.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
    73             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(obj.lowervertex),'" default="',convert2str(obj.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
    74             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(obj.lowerelements),'" default="',convert2str(obj.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
    75             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
    76             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
    77             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    78             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    79             fprintf(fid,'%s\n%s\n','</frame>');
    80            
    81             % Extracted model
    82             fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />');
    83             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
    84             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
    85             fprintf(fid,'%s\n%s\n','</frame>');
    86            
    87             % Projection
    88             fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />');
    89             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
    90             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
    91             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="hemisphere" type="',class(obj.hemisphere),'" default="',convert2str(obj.hemisphere),'">','     <section name="mesh3dprisms" />','     <help> Indicate hemisphere ''n'' or ''s'' </help>','  </parameter>');
    92             fprintf(fid,'%s\n%s\n','</frame>');
    93        
    94         end % }}}cd
     64                function createxml(obj,fid) % {{{
     65                        fprintf(fid, '<!-- 3D prism Mesh -->\n');
     66
     67                        % Elements and verticies of the original 2d mesh
     68                        fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
     69                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(obj.numberofelements2d),'" default="',convert2str(obj.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
     70                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(obj.numberofvertices2d),'" default="',convert2str(obj.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
     71                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(obj.elements2d),'" default="',convert2str(obj.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
     72                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(obj.x2d),'" default="',convert2str(obj.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     73                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(obj.y2d),'" default="',convert2str(obj.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     74                        fprintf(fid,'%s\n%s\n','       </frame>');
     75
     76                        % Elements and vertices of the extruded 3d mesh
     77                        fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
     78                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
     79                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
     80                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
     81                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     82                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     83                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
     84                        fprintf(fid,'%s\n%s\n','       </frame>');
     85
     86                        % properties
     87                        fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
     88                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(obj.numberoflayers),'" default="',convert2str(obj.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
     89                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
     90                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(obj.elementontbase),'" default="',convert2str(obj.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
     91                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(obj.vertexonsurface),'" default="',convert2str(obj.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
     92                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(obj.elementontsurface),'" default="',convert2str(obj.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
     93                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(obj.uppervertex),'" default="',convert2str(obj.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
     94                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(obj.upperelements),'" default="',convert2str(obj.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
     95                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(obj.lowervertex),'" default="',convert2str(obj.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
     96                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(obj.lowerelements),'" default="',convert2str(obj.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
     97                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
     98                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
     99                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     100                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     101                        fprintf(fid,'%s\n%s\n','</frame>');
     102
     103                        % Extracted model
     104                        fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />');
     105                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
     106                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
     107                        fprintf(fid,'%s\n%s\n','</frame>');
     108
     109                        % Projection
     110                        fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />');
     111                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
     112                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
     113                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(obj.epsg),'" default="',convert2str(obj.epsg),'">','     <section name="mesh3dprisms" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
     114                        fprintf(fid,'%s\n%s\n','</frame>');
     115
     116                end % }}}cd
    95117                function self = mesh3dprisms(varargin) % {{{
    96118                        switch nargin
     
    133155                        md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
    134156                        md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
    135                         %no checks for numberofedges lat long and hemisphere
    136157                        md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    137158                        md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
     
    179200                        fielddisplay(obj,'lat','vertices latitude [degrees]');
    180201                        fielddisplay(obj,'long','vertices longitude [degrees]');
    181                         fielddisplay(obj,'hemisphere','Indicate hemisphere ''n'' or ''s'' ');
     202                        fielddisplay(obj,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
    182203                end % }}}
    183204                function marshall(obj,md,fid) % {{{
  • issm/trunk-jpl/src/m/classes/mesh3dprisms.py

    r18077 r18558  
    2525                self.lat                         = float('NaN');
    2626                self.long                        = float('NaN');
    27                 self.hemisphere                  = float('NaN');
     27                self.epsg                        = 0;
    2828
    29                 self.vertexonbase                 = float('NaN');
     29                self.vertexonbase                = float('NaN');
    3030                self.vertexonsurface             = float('NaN');
    3131                self.lowerelements               = float('NaN');
     
    9090                string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]"))
    9191                string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]"))
    92                 string="%s\n%s"%(string,fielddisplay(self,"hemisphere","Indicate hemisphere 'n' or 's'"))
     92                string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)"))
    9393                return string
    9494                #}}}
     
    116116                md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
    117117                md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
    118                 #no checks for numberofedges lat long and hemisphere
    119118                md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1])
    120119                md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])
  • issm/trunk-jpl/src/m/classes/mesh3dtetras.m

    r17931 r18558  
    88                x                           = NaN;
    99                y                           = NaN;
    10                 z                           = NaN
    11                 elements                    = NaN
     10                z                           = NaN;
     11                elements                    = NaN;
    1212                numberoflayers              = 0;
    1313                numberofelements            = 0;
    1414                numberofvertices            = 0;
    1515
    16                 lat                         = NaN
    17                 long                        = NaN
    18                 hemisphere                  = NaN
    19 
    20                 vertexonbase                 = NaN
    21                 vertexonsurface             = NaN
    22                 lowerelements               = NaN
    23                 lowervertex                 = NaN
    24                 upperelements               = NaN
    25                 uppervertex                 = NaN
    26                 vertexonboundary            = NaN
    27 
    28                 vertexconnectivity          = NaN
    29                 elementconnectivity         = NaN
     16                lat                         = NaN;
     17                long                        = NaN;
     18                epsg                        = 0;
     19
     20                vertexonbase                = NaN;
     21                vertexonsurface             = NaN;
     22                lowerelements               = NaN;
     23                lowervertex                 = NaN;
     24                upperelements               = NaN;
     25                uppervertex                 = NaN;
     26                vertexonboundary            = NaN;
     27
     28                vertexconnectivity          = NaN;
     29                elementconnectivity         = NaN;
    3030                average_vertex_connectivity = 0;
    3131
    32                 x2d                         = NaN
    33                 y2d                         = NaN
    34                 elements2d                  = NaN
     32                x2d                         = NaN;
     33                y2d                         = NaN;
     34                elements2d                  = NaN;
    3535                numberofvertices2d          = 0;
    3636                numberofelements2d          = 0;
    3737
    38                 extractedvertices           = NaN
    39                 extractedelements           = NaN
     38                extractedvertices           = NaN;
     39                extractedelements           = NaN;
     40        end
     41        methods (Static)
     42                function self = loadself(self) % {{{
     43                        % This function is directly called by matlab when a model selfect is
     44                        % loaded. Update old properties here
     45
     46                        %2014 Oct. 1st
     47                        if isstruct(self),
     48                                oldself=self;
     49                                %Assign property values from struct
     50                                self=structtoself(mesh3dtetras(),oldself)
     51                                if isfield(oldself,'hemisphere'),
     52                                        disp('md.mesh.hemisphere has been automatically converted to EPSG code');
     53                                        if strcmpi(oldself.hemisphere,'n'),
     54                                                self.epsg=3413;
     55                                        else
     56                                                self.epsg=3031;
     57                                        end
     58                                end
     59                        end
     60
     61                end% }}}
    4062        end
    4163        methods
    42         function createxml(obj,fid) % {{{
    43             fprintf(fid, '<!-- 3D Tetra Mesh -->\n');
    44            
    45             % Elements and verticies of the original 2d mesh
    46             fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
    47             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(obj.numberofelements2d),'" default="',convert2str(obj.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
    48             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(obj.numberofvertices2d),'" default="',convert2str(obj.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
    49             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(obj.elements2d),'" default="',convert2str(obj.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
    50             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(obj.x2d),'" default="',convert2str(obj.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    51             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(obj.y2d),'" default="',convert2str(obj.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    52             fprintf(fid,'%s\n%s\n','       </frame>');
    53            
    54             % Elements and vertices of the extruded 3d mesh
    55             fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
    56             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
    57             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
    58             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
    59             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
    60             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
    61             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
    62             fprintf(fid,'%s\n%s\n','       </frame>');
    63      
    64             % properties
    65             fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
    66             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(obj.numberoflayers),'" default="',convert2str(obj.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
    67             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
    68             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(obj.elementontbase),'" default="',convert2str(obj.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
    69             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(obj.vertexonsurface),'" default="',convert2str(obj.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
    70             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(obj.elementontsurface),'" default="',convert2str(obj.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
    71             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(obj.uppervertex),'" default="',convert2str(obj.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
    72             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(obj.upperelements),'" default="',convert2str(obj.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
    73             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(obj.lowervertex),'" default="',convert2str(obj.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
    74             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(obj.lowerelements),'" default="',convert2str(obj.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
    75             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
    76             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
    77             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    78             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
    79             fprintf(fid,'%s\n%s\n','</frame>');
    80            
    81             % Extracted model
    82             fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />');
    83             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
    84             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
    85             fprintf(fid,'%s\n%s\n','</frame>');
    86            
    87             % Projection
    88             fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />');
    89             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
    90             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
    91             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="hemisphere" type="',class(obj.hemisphere),'" default="',convert2str(obj.hemisphere),'">','     <section name="mesh3dprisms" />','     <help> Indicate hemisphere ''n'' or ''s'' </help>','  </parameter>');
    92             fprintf(fid,'%s\n%s\n','</frame>');
    93        
    94         end % }}}cd
     64                function createxml(obj,fid) % {{{
     65                        fprintf(fid, '<!-- 3D Tetra Mesh -->\n');
     66
     67                        % Elements and verticies of the original 2d mesh
     68                        fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
     69                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(obj.numberofelements2d),'" default="',convert2str(obj.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
     70                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(obj.numberofvertices2d),'" default="',convert2str(obj.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
     71                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(obj.elements2d),'" default="',convert2str(obj.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
     72                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(obj.x2d),'" default="',convert2str(obj.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     73                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(obj.y2d),'" default="',convert2str(obj.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     74                        fprintf(fid,'%s\n%s\n','       </frame>');
     75
     76                        % Elements and vertices of the extruded 3d mesh
     77                        fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
     78                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
     79                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
     80                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
     81                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
     82                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
     83                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
     84                        fprintf(fid,'%s\n%s\n','       </frame>');
     85
     86                        % properties
     87                        fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
     88                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(obj.numberoflayers),'" default="',convert2str(obj.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
     89                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(obj.vertexonbase),'" default="',convert2str(obj.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
     90                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(obj.elementontbase),'" default="',convert2str(obj.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
     91                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(obj.vertexonsurface),'" default="',convert2str(obj.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
     92                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(obj.elementontsurface),'" default="',convert2str(obj.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
     93                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(obj.uppervertex),'" default="',convert2str(obj.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
     94                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(obj.upperelements),'" default="',convert2str(obj.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
     95                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(obj.lowervertex),'" default="',convert2str(obj.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
     96                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(obj.lowerelements),'" default="',convert2str(obj.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
     97                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
     98                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
     99                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     100                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
     101                        fprintf(fid,'%s\n%s\n','</frame>');
     102
     103                        % Extracted model
     104                        fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />');
     105                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
     106                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
     107                        fprintf(fid,'%s\n%s\n','</frame>');
     108
     109                        % Projection
     110                        fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />');
     111                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
     112                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
     113                        fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(obj.epsg),'" default="',convert2str(obj.epsg),'">','     <section name="mesh3dprisms" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
     114                        fprintf(fid,'%s\n%s\n','</frame>');
     115
     116                end % }}}cd
    95117                function self = mesh3dtetras(varargin) % {{{
    96118                        switch nargin
     
    133155                        md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
    134156                        md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
    135                         %no checks for numberofedges lat long and hemisphere
    136157                        md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    137158                        md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]);
     
    179200                        fielddisplay(obj,'lat','vertices latitude [degrees]');
    180201                        fielddisplay(obj,'long','vertices longitude [degrees]');
    181                         fielddisplay(obj,'hemisphere','Indicate hemisphere ''n'' or ''s'' ');
     202                        fielddisplay(obj,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
    182203                end % }}}
    183204                function marshall(obj,md,fid) % {{{
  • issm/trunk-jpl/src/m/classes/model.m

    r18538 r18558  
    660660                        md.mesh.lat                         = mesh2d.lat;
    661661                        md.mesh.long                        = mesh2d.long;
    662                         md.mesh.hemisphere                  = mesh2d.hemisphere;
     662                        md.mesh.epsg                        = mesh2d.epsg;
    663663
    664664                        md.mesh.vertexonboundary            = mesh2d.vertexonboundary;
     
    973973                        if isfield(structmd,'extractedelements'), md.mesh.extractedelements=structmd.extractedelements; end
    974974                        if isfield(structmd,'nodeonboundary'), md.mesh.vertexonboundary=structmd.nodeonboundary; end
    975                         if isfield(structmd,'hemisphere'), md.mesh.hemisphere=structmd.hemisphere; end
    976975                        if isfield(structmd,'lat'), md.mesh.lat=structmd.lat; end
    977976                        if isfield(structmd,'long'), md.mesh.long=structmd.long; end
  • issm/trunk-jpl/src/m/classes/model.py

    r18216 r18558  
    517517                md.mesh.lat                         = mesh2d.lat
    518518                md.mesh.long                        = mesh2d.long
    519                 md.mesh.hemisphere                  = mesh2d.hemisphere
     519                md.mesh.epsg                        = mesh2d.epsg
    520520
    521521                md.mesh.vertexonboundary            = mesh2d.vertexonboundary
  • issm/trunk-jpl/src/m/plot/applyoptions.m

    r17708 r18558  
    66%
    77%   See also: PLOTMODEL, PARSE_OPTIONS
    8 
    9 %some defaults
    10 if isfield(md.mesh,'hemisphere'),
    11         if strcmpi(md.mesh.hemisphere,'n'), options=addfielddefault(options,'hemisphere','n');
    12         elseif strcmpi(md.mesh.hemisphere,'s'), options=addfielddefault(options,'hemisphere','s');
    13         end
    14 end
    158
    169%fontsize
     
    365358        axis equal off
    366359        %box off
    367         if strcmpi(md.mesh.hemisphere,'n') | strcmpi(md.mesh.hemisphere,'north'),
     360        if md.mesh.epsg==3413,
    368361                A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp');
    369362                [A.x A.y]=ll2xy(A.x,A.y,+1,45,70);
    370363                A.x = A.x(1:30:end);
    371364                A.y = A.y(1:30:end);
    372         elseif strcmpi(md.mesh.hemisphere,'s') | strcmpi(md.mesh.hemisphere,'south'),
     365        elseif md.mesh.epsg==3031,
    373366                A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp');
    374367        else
    375                 error('applyoptions error message: hemisphere not defined');
     368                error('applyoptions error message: md.mesh.epsg not defined');
    376369        end
    377370        offset=3*10^4;
  • issm/trunk-jpl/src/m/plot/applyoptions.py

    r18012 r18558  
    2424                See also: PLOTMODEL, PARSE_OPTIONS
    2525        '''
    26 
    27         #some defaults (this seems to be adding a field that already exists...)
    28         #if not isnan(md.mesh.hemisphere):
    29         #       options.addfielddefault('hemisphere',md.mesh.hemisphere)
    3026
    3127        # get handle to current figure and axes instance
  • issm/trunk-jpl/src/m/plot/googlemaps.m

    r18551 r18558  
    2222        end
    2323end
     24
     25if md.mesh.epsg==0,
     26        error('md.mesh.epsg not defined');
     27end
    2428if nargin==1,
    2529        %Get xlim and ylim (used to extract Google maps image)
    2630        xlim=getfieldvalue(options,'xlim',[min(md.mesh.x) max(md.mesh.x)]);
    2731        ylim=getfieldvalue(options,'ylim',[min(md.mesh.y) max(md.mesh.y)]);
    28         if strcmpi(md.mesh.hemisphere,'n'),
     32        if md.mesh.epsg==3413,
    2933                [latlist lonlist]= xy2ll(...
    3034                        [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
    3135                        [linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
    3236                        +1,45,70);
    33         elseif strcmpi(md.mesh.hemisphere,'s'),
     37        elseif md.mesh.epsg==3031,
    3438                [latlist lonlist]= xy2ll(...
    3539                        [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
     
    3741                        -1,0,71);
    3842        else
    39                 error('field hemisphere should either be ''n'' or ''s''');
     43                error('EPSG code not supported yet');
    4044        end
    4145
     
    5054%Get region specific projection parameters
    5155EPSGgoogle = 'EPSG:3785';   % Mercator       http://www.spatialreference.org/ref/epsg/3785/
    52 if strcmpi(md.mesh.hemisphere,'n'),
    53         EPSGlocal = 'EPSG:3413'; % UPS Greenland  http://www.spatialreference.org/ref/epsg/3413/
    54 elseif strcmpi(md.mesh.hemisphere,'s'),
    55         EPSGlocal = 'EPSG:3031'; % UPS Antarctica http://www.spatialreference.org/ref/epsg/3031/
    56 elseif strcmpi(md.mesh.hemisphere,'UTM18N'),
    57         EPSGlocal = 'EPSG:32218'; % UTM 18 N Patagonia
    58 else
    59         error('field hemisphere should either be ''n'' or ''s''');
    60 end
     56EPSGlocal  = ['EPSG:' md.mesh.epsg]
    6157
    6258%Find optimal zoom
     
    132128        [gX gY]=meshgrid(ulx:ulx+size(final,2)-1,uly:-1:uly-size(final,1)+1);
    133129        [LAT LON]=pixelstolatlon(gX,gY, zoom);
    134         if strcmpi(md.mesh.hemisphere,'n'),
     130        if md.mesh.epsg==3413,
    135131                [X Y]=ll2xy(LAT,LON,+1,45,70);
    136         elseif strcmpi(md.mesh.hemisphere,'s'),
     132        elseif md.mesh.epsg==3031,
    137133                [X Y]=ll2xy(LAT,LON,-1,0,71);
    138134        else
    139                 error('field hemisphere should either be ''n'' or ''s''');
     135                error('EPSG code not supported yet');
    140136        end
    141137        md.radaroverlay.pwr=final;
     
    155151        [gX gY]=meshgrid(ulx:ulx+size(final,2)-1,uly:-1:uly-size(final,1)+1);
    156152        [LAT LON]=pixelstolatlon(gX,gY, zoom);
    157         if strcmpi(md.mesh.hemisphere,'n'),
     153        if md.mesh.epsg==3413,
    158154                [X Y]=ll2xy(LAT,LON,+1,45,70);
    159         elseif strcmpi(md.mesh.hemisphere,'s'),
     155        elseif md.mesh.epsg==3031,
    160156                [X Y]=ll2xy(LAT,LON,-1,0,71);
    161157        else
    162                 error('field hemisphere should either be ''n'' or ''s''');
     158                error('EPSG code not supported yet');
    163159        end
    164160        md.radaroverlay.pwr=final;
  • issm/trunk-jpl/src/m/plot/latlonoverlay.m

    r14259 r18558  
    6666        latitudes =lat*ones(size(longitudes));
    6767
    68         if strcmpi(md.mesh.hemisphere,'n'),
     68        if md.mesh.epsg==3413,
    6969                if lat<0, continue; end
    7070                [x,y]=ll2xy(latitudes,longitudes,+1,45,70);
    71         elseif strcmpi(md.mesh.hemisphere,'s'),
     71        elseif md.mesh.epsg==3031,
    7272                if lat>0, continue; end
    7373                [x,y]=ll2xy(latitudes,longitudes,-1, 0,71);
    74         else error('field hemisphere should either be ''n'' or ''s'''); end
     74        else error('field md.mesh.epsg not supported yet'); end
    7575
    7676        pos=find(x<=xlimits(2) & x>=xlimits(1) & y<=ylimits(2) & y>=ylimits(1));
     
    105105for lon=-180:lonstep:180
    106106
    107         if strcmpi(md.mesh.hemisphere,'n'),
     107        if md.mesh.epsg==3413,
    108108                latitudes =0:resolution:90;
    109109                longitudes=lon*ones(size(latitudes));
    110110                [x,y]=ll2xy(latitudes,longitudes,+1,45,70);
    111         elseif strcmpi(md.mesh.hemisphere,'s'),
     111        elseif md.mesh.epsg==3031,
    112112                latitudes =-90:resolution:0;
    113113                longitudes=lon*ones(size(latitudes));
    114114                [x,y]=ll2xy(latitudes,longitudes,-1, 0,71);
    115115        else
    116                 error('field hemisphere should either be ''n'' or ''s''');
     116                error('field md.mesh.epsg not supported yet');
    117117        end
    118118
  • issm/trunk-jpl/src/m/plot/plot_googlemaps.m

    r18551 r18558  
    2525        xlim=getfieldvalue(options,'xlim',[min(x) max(x)]);
    2626        ylim=getfieldvalue(options,'ylim',[min(y) max(y)]);
    27         if strcmpi(md.mesh.hemisphere,'n'),
     27        if md.mesh.epsg==3413,
    2828                [latlist lonlist]= xy2ll(...
    2929                        [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
    3030                        [linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
    3131                        +1,45,70);
    32         elseif strcmpi(md.mesh.hemisphere,'s'),
     32        elseif md.mesh.epsg==3031,
    3333                [latlist lonlist]= xy2ll(...
    3434                        [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
     
    3838                latlist = md.mesh.lat; %That might work?
    3939                lonlist = md.mesh.long;
    40                 error('field hemisphere should either be ''n'' or ''s''');
     40                error('EPSG code not supported yet');
    4141        end
    4242
  • issm/trunk-jpl/src/m/plot/plotdoc.m

    r18141 r18558  
    5757disp('       ''axis'': same as standard matlab option (''equal'',''off'',''equal on'',...)');
    5858disp('       ''basin'': zoom on a given basin (''pineislandglacier'',''ronneiceshelf'', use isbasin to identify a basin');
    59 disp('                 ''hemisphere'': specify +1 or -1');
    6059disp('                 ''basindeltax'': in m');
    6160disp('                 ''showbasins'': write lables for every existing basin name around the center of the plot');
     
    109108disp('       ''contrast'': (default 1) coefficient to add contrast to the radar amplitude image used in overlays');
    110109disp('       ''highres'': resolution of overlayed radar amplitude image (default is 0, high resolution is 1).');
    111 disp('       ''hem'': specify hemisphere ''n'' or ''s'' (default is ''s'').');
    112110disp('       ''alpha'': transparency coefficient (the higher, the more transparent). Default is 1.5');
    113111disp('       ''scaling'': scaling factor used by quiver plots. Default is 0.4');
  • issm/trunk-jpl/src/m/plot/radarpower.m

    r17224 r18558  
    3636%figure out if we should go look for Greenland or Antarctica geotiff, or if user provided one.
    3737if ~exist(options,'overlay_image'),
    38         if strcmpi(md.mesh.hemisphere,'n'),
     38        if md.mesh.epsg==3413,
    3939                %if ~exist(['/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg']),
    4040                %       error(['radarpower error message: file ' '/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg not found.']);
     
    106106                system('rm -rf ./temp.tif');
    107107
    108         elseif strcmpi(md.mesh.hemisphere,'s'),
     108        elseif md.mesh.epsg==3031,
    109109                if ~exist(options,'geotiff_name'),
    110110                        if highres,
     
    138138
    139139        else
    140                 error('field hemisphere should either be ''n'' or ''s''');
     140                error('EPSG code not supported yet (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
    141141        end
    142142else
  • issm/trunk-jpl/src/m/plot/showregion.m

    r15917 r18558  
    1515axis equal off
    1616%box off
    17 if strcmpi(md.mesh.hemisphere,'n') | strcmpi(md.mesh.hemisphere,'north'),
     17if md.mesh.epsg==3413,
    1818        A=expread(['/u/astrid-r1b/ModelData/Exp/Greenland.exp']);
    19 elseif strcmpi(md.mesh.hemisphere,'s') | strcmpi(md.mesh.hemisphere,'south'),
     19elseif md.mesh.epsg==3031,
    2020        A=expread(['/u/astrid-r1b/ModelData/Exp/Antarctica.exp']);
    2121else
    22         error('applyoptions error message: hemisphere not defined');
     22        error('md.mesh.epsg not supported yet');
    2323end
    2424
Note: See TracChangeset for help on using the changeset viewer.