Changeset 18558
- Timestamp:
- 10/01/14 10:30:08 (11 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 16 edited
-
classes/mesh2d.m (modified) (2 diffs)
-
classes/mesh2d.py (modified) (2 diffs)
-
classes/mesh2dvertical.m (modified) (2 diffs)
-
classes/mesh3dprisms.m (modified) (3 diffs)
-
classes/mesh3dprisms.py (modified) (3 diffs)
-
classes/mesh3dtetras.m (modified) (3 diffs)
-
classes/model.m (modified) (2 diffs)
-
classes/model.py (modified) (1 diff)
-
plot/applyoptions.m (modified) (2 diffs)
-
plot/applyoptions.py (modified) (1 diff)
-
plot/googlemaps.m (modified) (5 diffs)
-
plot/latlonoverlay.m (modified) (2 diffs)
-
plot/plot_googlemaps.m (modified) (2 diffs)
-
plot/plotdoc.m (modified) (2 diffs)
-
plot/radarpower.m (modified) (3 diffs)
-
plot/showregion.m (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/mesh2d.m
r17931 r18558 8 8 x = NaN; 9 9 y = NaN; 10 elements = NaN 10 elements = NaN; 11 11 numberofelements = 0; 12 12 numberofvertices = 0; 13 13 numberofedges = 0; 14 14 15 lat = NaN 16 long = NaN 17 hemisphere = NaN15 lat = NaN; 16 long = NaN; 17 epsg = 0; 18 18 19 vertexonboundary = NaN 19 vertexonboundary = NaN; 20 20 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; 26 26 average_vertex_connectivity = 0; 27 27 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% }}} 30 52 end 31 53 methods … … 102 124 fielddisplay(obj,'lat','vertices latitude [degrees]'); 103 125 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)'); 105 127 end % }}} 106 function createxml(obj,fid) % {{{107 fprintf(fid, '<!-- 2D tria Mesh (horizontal) -->\n');108 109 %elements and vertices110 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 % properties121 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 model131 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 %projection137 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 % }}} 148 170 function marshall(obj,md,fid) % {{{ 149 171 WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype(obj)]),'format','Integer'); -
issm/trunk-jpl/src/m/classes/mesh2d.py
r17700 r18558 24 24 self.lat = float('NaN'); 25 25 self.long = float('NaN'); 26 self. hemisphere = float('NaN');26 self.epsg = 0; 27 27 28 28 self.vertexonboundary = float('NaN'); … … 68 68 string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]")) 69 69 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)")) 71 71 return string 72 72 #}}} -
issm/trunk-jpl/src/m/classes/mesh2dvertical.m
r17931 r18558 8 8 x = NaN; 9 9 y = NaN; 10 elements = NaN 10 elements = NaN; 11 11 numberofelements = 0; 12 12 numberofvertices = 0; 13 13 numberofedges = 0; 14 14 15 lat = NaN 16 long = NaN 17 hemisphere = NaN18 19 vertexonboundary = NaN 20 vertexonbase = NaN21 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; 28 28 average_vertex_connectivity = 0; 29 29 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 30 52 methods 31 function createxml(obj,fid) % {{{32 fprintf(fid, '<!-- 2d Mesh (Vertical) -->\n');33 34 %elements and vertices35 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 % properties46 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 %projection57 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 % }}} 64 86 function obj = mesh2dvertical(varargin) % {{{ 65 87 switch nargin … … 134 156 fielddisplay(obj,'lat','vertices latitude [degrees]'); 135 157 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)'); 137 159 end % }}} 138 160 function marshall(obj,md,fid) % {{{ -
issm/trunk-jpl/src/m/classes/mesh3dprisms.m
r18077 r18558 8 8 x = NaN; 9 9 y = NaN; 10 z = NaN 11 elements = NaN 10 z = NaN; 11 elements = NaN; 12 12 numberoflayers = 0; 13 13 numberofelements = 0; 14 14 numberofvertices = 0; 15 15 16 lat = NaN 17 long = NaN 18 hemisphere = NaN19 20 vertexonbase = NaN21 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; 30 30 average_vertex_connectivity = 0; 31 31 32 x2d = NaN 33 y2d = NaN 34 elements2d = NaN 32 x2d = NaN; 33 y2d = NaN; 34 elements2d = NaN; 35 35 numberofvertices2d = 0; 36 36 numberofelements2d = 0; 37 37 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% }}} 40 62 end 41 63 methods 42 function createxml(obj,fid) % {{{43 fprintf(fid, '<!-- 3D prism Mesh -->\n');44 45 % Elements and verticies of the original 2d mesh46 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 mesh55 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 % properties65 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 model82 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 % Projection88 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 % }}}cd64 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 95 117 function self = mesh3dprisms(varargin) % {{{ 96 118 switch nargin … … 133 155 md = checkfield(md,'fieldname','mesh.numberofelements','>',0); 134 156 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0); 135 %no checks for numberofedges lat long and hemisphere136 157 md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices 1],'values',[0 1]); 137 158 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]); … … 179 200 fielddisplay(obj,'lat','vertices latitude [degrees]'); 180 201 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)'); 182 203 end % }}} 183 204 function marshall(obj,md,fid) % {{{ -
issm/trunk-jpl/src/m/classes/mesh3dprisms.py
r18077 r18558 25 25 self.lat = float('NaN'); 26 26 self.long = float('NaN'); 27 self. hemisphere = float('NaN');27 self.epsg = 0; 28 28 29 self.vertexonbase = float('NaN');29 self.vertexonbase = float('NaN'); 30 30 self.vertexonsurface = float('NaN'); 31 31 self.lowerelements = float('NaN'); … … 90 90 string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]")) 91 91 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)")) 93 93 return string 94 94 #}}} … … 116 116 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 117 117 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 118 #no checks for numberofedges lat long and hemisphere119 118 md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1]) 120 119 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) -
issm/trunk-jpl/src/m/classes/mesh3dtetras.m
r17931 r18558 8 8 x = NaN; 9 9 y = NaN; 10 z = NaN 11 elements = NaN 10 z = NaN; 11 elements = NaN; 12 12 numberoflayers = 0; 13 13 numberofelements = 0; 14 14 numberofvertices = 0; 15 15 16 lat = NaN 17 long = NaN 18 hemisphere = NaN19 20 vertexonbase = NaN21 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; 30 30 average_vertex_connectivity = 0; 31 31 32 x2d = NaN 33 y2d = NaN 34 elements2d = NaN 32 x2d = NaN; 33 y2d = NaN; 34 elements2d = NaN; 35 35 numberofvertices2d = 0; 36 36 numberofelements2d = 0; 37 37 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% }}} 40 62 end 41 63 methods 42 function createxml(obj,fid) % {{{43 fprintf(fid, '<!-- 3D Tetra Mesh -->\n');44 45 % Elements and verticies of the original 2d mesh46 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 mesh55 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 % properties65 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 model82 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 % Projection88 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 % }}}cd64 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 95 117 function self = mesh3dtetras(varargin) % {{{ 96 118 switch nargin … … 133 155 md = checkfield(md,'fieldname','mesh.numberofelements','>',0); 134 156 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0); 135 %no checks for numberofedges lat long and hemisphere136 157 md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices 1],'values',[0 1]); 137 158 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]); … … 179 200 fielddisplay(obj,'lat','vertices latitude [degrees]'); 180 201 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)'); 182 203 end % }}} 183 204 function marshall(obj,md,fid) % {{{ -
issm/trunk-jpl/src/m/classes/model.m
r18538 r18558 660 660 md.mesh.lat = mesh2d.lat; 661 661 md.mesh.long = mesh2d.long; 662 md.mesh. hemisphere = mesh2d.hemisphere;662 md.mesh.epsg = mesh2d.epsg; 663 663 664 664 md.mesh.vertexonboundary = mesh2d.vertexonboundary; … … 973 973 if isfield(structmd,'extractedelements'), md.mesh.extractedelements=structmd.extractedelements; end 974 974 if isfield(structmd,'nodeonboundary'), md.mesh.vertexonboundary=structmd.nodeonboundary; end 975 if isfield(structmd,'hemisphere'), md.mesh.hemisphere=structmd.hemisphere; end976 975 if isfield(structmd,'lat'), md.mesh.lat=structmd.lat; end 977 976 if isfield(structmd,'long'), md.mesh.long=structmd.long; end -
issm/trunk-jpl/src/m/classes/model.py
r18216 r18558 517 517 md.mesh.lat = mesh2d.lat 518 518 md.mesh.long = mesh2d.long 519 md.mesh. hemisphere = mesh2d.hemisphere519 md.mesh.epsg = mesh2d.epsg 520 520 521 521 md.mesh.vertexonboundary = mesh2d.vertexonboundary -
issm/trunk-jpl/src/m/plot/applyoptions.m
r17708 r18558 6 6 % 7 7 % See also: PLOTMODEL, PARSE_OPTIONS 8 9 %some defaults10 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 end14 end15 8 16 9 %fontsize … … 365 358 axis equal off 366 359 %box off 367 if strcmpi(md.mesh.hemisphere,'n') | strcmpi(md.mesh.hemisphere,'north'),360 if md.mesh.epsg==3413, 368 361 A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp'); 369 362 [A.x A.y]=ll2xy(A.x,A.y,+1,45,70); 370 363 A.x = A.x(1:30:end); 371 364 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, 373 366 A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp'); 374 367 else 375 error('applyoptions error message: hemispherenot defined');368 error('applyoptions error message: md.mesh.epsg not defined'); 376 369 end 377 370 offset=3*10^4; -
issm/trunk-jpl/src/m/plot/applyoptions.py
r18012 r18558 24 24 See also: PLOTMODEL, PARSE_OPTIONS 25 25 ''' 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)30 26 31 27 # get handle to current figure and axes instance -
issm/trunk-jpl/src/m/plot/googlemaps.m
r18551 r18558 22 22 end 23 23 end 24 25 if md.mesh.epsg==0, 26 error('md.mesh.epsg not defined'); 27 end 24 28 if nargin==1, 25 29 %Get xlim and ylim (used to extract Google maps image) 26 30 xlim=getfieldvalue(options,'xlim',[min(md.mesh.x) max(md.mesh.x)]); 27 31 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, 29 33 [latlist lonlist]= xy2ll(... 30 34 [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],... 31 35 [linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],... 32 36 +1,45,70); 33 elseif strcmpi(md.mesh.hemisphere,'s'),37 elseif md.mesh.epsg==3031, 34 38 [latlist lonlist]= xy2ll(... 35 39 [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],... … … 37 41 -1,0,71); 38 42 else 39 error(' field hemisphere should either be ''n'' or ''s''');43 error('EPSG code not supported yet'); 40 44 end 41 45 … … 50 54 %Get region specific projection parameters 51 55 EPSGgoogle = '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 56 EPSGlocal = ['EPSG:' md.mesh.epsg] 61 57 62 58 %Find optimal zoom … … 132 128 [gX gY]=meshgrid(ulx:ulx+size(final,2)-1,uly:-1:uly-size(final,1)+1); 133 129 [LAT LON]=pixelstolatlon(gX,gY, zoom); 134 if strcmpi(md.mesh.hemisphere,'n'),130 if md.mesh.epsg==3413, 135 131 [X Y]=ll2xy(LAT,LON,+1,45,70); 136 elseif strcmpi(md.mesh.hemisphere,'s'),132 elseif md.mesh.epsg==3031, 137 133 [X Y]=ll2xy(LAT,LON,-1,0,71); 138 134 else 139 error(' field hemisphere should either be ''n'' or ''s''');135 error('EPSG code not supported yet'); 140 136 end 141 137 md.radaroverlay.pwr=final; … … 155 151 [gX gY]=meshgrid(ulx:ulx+size(final,2)-1,uly:-1:uly-size(final,1)+1); 156 152 [LAT LON]=pixelstolatlon(gX,gY, zoom); 157 if strcmpi(md.mesh.hemisphere,'n'),153 if md.mesh.epsg==3413, 158 154 [X Y]=ll2xy(LAT,LON,+1,45,70); 159 elseif strcmpi(md.mesh.hemisphere,'s'),155 elseif md.mesh.epsg==3031, 160 156 [X Y]=ll2xy(LAT,LON,-1,0,71); 161 157 else 162 error(' field hemisphere should either be ''n'' or ''s''');158 error('EPSG code not supported yet'); 163 159 end 164 160 md.radaroverlay.pwr=final; -
issm/trunk-jpl/src/m/plot/latlonoverlay.m
r14259 r18558 66 66 latitudes =lat*ones(size(longitudes)); 67 67 68 if strcmpi(md.mesh.hemisphere,'n'),68 if md.mesh.epsg==3413, 69 69 if lat<0, continue; end 70 70 [x,y]=ll2xy(latitudes,longitudes,+1,45,70); 71 elseif strcmpi(md.mesh.hemisphere,'s'),71 elseif md.mesh.epsg==3031, 72 72 if lat>0, continue; end 73 73 [x,y]=ll2xy(latitudes,longitudes,-1, 0,71); 74 else error('field hemisphere should either be ''n'' or ''s'''); end74 else error('field md.mesh.epsg not supported yet'); end 75 75 76 76 pos=find(x<=xlimits(2) & x>=xlimits(1) & y<=ylimits(2) & y>=ylimits(1)); … … 105 105 for lon=-180:lonstep:180 106 106 107 if strcmpi(md.mesh.hemisphere,'n'),107 if md.mesh.epsg==3413, 108 108 latitudes =0:resolution:90; 109 109 longitudes=lon*ones(size(latitudes)); 110 110 [x,y]=ll2xy(latitudes,longitudes,+1,45,70); 111 elseif strcmpi(md.mesh.hemisphere,'s'),111 elseif md.mesh.epsg==3031, 112 112 latitudes =-90:resolution:0; 113 113 longitudes=lon*ones(size(latitudes)); 114 114 [x,y]=ll2xy(latitudes,longitudes,-1, 0,71); 115 115 else 116 error('field hemisphere should either be ''n'' or ''s''');116 error('field md.mesh.epsg not supported yet'); 117 117 end 118 118 -
issm/trunk-jpl/src/m/plot/plot_googlemaps.m
r18551 r18558 25 25 xlim=getfieldvalue(options,'xlim',[min(x) max(x)]); 26 26 ylim=getfieldvalue(options,'ylim',[min(y) max(y)]); 27 if strcmpi(md.mesh.hemisphere,'n'),27 if md.mesh.epsg==3413, 28 28 [latlist lonlist]= xy2ll(... 29 29 [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],... 30 30 [linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],... 31 31 +1,45,70); 32 elseif strcmpi(md.mesh.hemisphere,'s'),32 elseif md.mesh.epsg==3031, 33 33 [latlist lonlist]= xy2ll(... 34 34 [linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],... … … 38 38 latlist = md.mesh.lat; %That might work? 39 39 lonlist = md.mesh.long; 40 error(' field hemisphere should either be ''n'' or ''s''');40 error('EPSG code not supported yet'); 41 41 end 42 42 -
issm/trunk-jpl/src/m/plot/plotdoc.m
r18141 r18558 57 57 disp(' ''axis'': same as standard matlab option (''equal'',''off'',''equal on'',...)'); 58 58 disp(' ''basin'': zoom on a given basin (''pineislandglacier'',''ronneiceshelf'', use isbasin to identify a basin'); 59 disp(' ''hemisphere'': specify +1 or -1');60 59 disp(' ''basindeltax'': in m'); 61 60 disp(' ''showbasins'': write lables for every existing basin name around the center of the plot'); … … 109 108 disp(' ''contrast'': (default 1) coefficient to add contrast to the radar amplitude image used in overlays'); 110 109 disp(' ''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'').');112 110 disp(' ''alpha'': transparency coefficient (the higher, the more transparent). Default is 1.5'); 113 111 disp(' ''scaling'': scaling factor used by quiver plots. Default is 0.4'); -
issm/trunk-jpl/src/m/plot/radarpower.m
r17224 r18558 36 36 %figure out if we should go look for Greenland or Antarctica geotiff, or if user provided one. 37 37 if ~exist(options,'overlay_image'), 38 if strcmpi(md.mesh.hemisphere,'n'),38 if md.mesh.epsg==3413, 39 39 %if ~exist(['/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg']), 40 40 % error(['radarpower error message: file ' '/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg not found.']); … … 106 106 system('rm -rf ./temp.tif'); 107 107 108 elseif strcmpi(md.mesh.hemisphere,'s'),108 elseif md.mesh.epsg==3031, 109 109 if ~exist(options,'geotiff_name'), 110 110 if highres, … … 138 138 139 139 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)'); 141 141 end 142 142 else -
issm/trunk-jpl/src/m/plot/showregion.m
r15917 r18558 15 15 axis equal off 16 16 %box off 17 if strcmpi(md.mesh.hemisphere,'n') | strcmpi(md.mesh.hemisphere,'north'),17 if md.mesh.epsg==3413, 18 18 A=expread(['/u/astrid-r1b/ModelData/Exp/Greenland.exp']); 19 elseif strcmpi(md.mesh.hemisphere,'s') | strcmpi(md.mesh.hemisphere,'south'),19 elseif md.mesh.epsg==3031, 20 20 A=expread(['/u/astrid-r1b/ModelData/Exp/Antarctica.exp']); 21 21 else 22 error(' applyoptions error message: hemisphere not defined');22 error('md.mesh.epsg not supported yet'); 23 23 end 24 24
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/trac/issm/chrome/common/trac_banner.png)