Home > utilities > read_fvcom_mesh.m

read_fvcom_mesh

PURPOSE ^

Read fvcom mesh file into Matlab mesh object

SYNOPSIS ^

function [Mobj] = read_fvcom_mesh(gridfile)

DESCRIPTION ^

 Read fvcom mesh file into Matlab mesh object  

 [Mobj] = function read_fvcom_mesh(gridfile)

 DESCRIPTION:
    Read FVCOM Grid file (connectivity + nodes)
    Store in a matlab mesh object 

 INPUT [keyword pairs]:  
   'gridfile'  = fvcom mesh file

 OUTPUT:
    Mobj = matlab structure containing mesh data

 EXAMPLE USAGE
    Mobj = read_fvcom_mesh('tst_grd.dat')

 Author(s):  
    Geoff Cowles (University of Massachusetts Dartmouth)

 Revision history
   
==============================================================================

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [Mobj] = read_fvcom_mesh(gridfile) 
0002 
0003 % Read fvcom mesh file into Matlab mesh object
0004 %
0005 % [Mobj] = function read_fvcom_mesh(gridfile)
0006 %
0007 % DESCRIPTION:
0008 %    Read FVCOM Grid file (connectivity + nodes)
0009 %    Store in a matlab mesh object
0010 %
0011 % INPUT [keyword pairs]:
0012 %   'gridfile'  = fvcom mesh file
0013 %
0014 % OUTPUT:
0015 %    Mobj = matlab structure containing mesh data
0016 %
0017 % EXAMPLE USAGE
0018 %    Mobj = read_fvcom_mesh('tst_grd.dat')
0019 %
0020 % Author(s):
0021 %    Geoff Cowles (University of Massachusetts Dartmouth)
0022 %
0023 % Revision history
0024 %
0025 %==============================================================================
0026 
0027 subname = 'read_fvcom_mesh';
0028 fprintf('\n')
0029 fprintf(['begin : ' subname '\n'])
0030 
0031 
0032 %------------------------------------------------------------------------------
0033 % Create a blank mesh object
0034 %------------------------------------------------------------------------------
0035 Mobj = make_blank_mesh();
0036 coordinate = 'cartesian';
0037 have_bath = false;
0038 have_xy = true;
0039 have_lonlat = false;
0040 
0041 
0042 %------------------------------------------------------------------------------
0043 % Read the mesh from the fvcom grid file
0044 %------------------------------------------------------------------------------
0045 
0046 
0047 fid = fopen(gridfile,'r');
0048 if(fid  < 0)
0049     error(['file: ' gridfile ' does not exist']);
0050 end;
0051 
0052 %----------------------------------------------------
0053 % read in the fvcom connectivity and vertices
0054 %----------------------------------------------------
0055 C = textscan(fid, '%s %s %s %d', 1); nVerts = C{4};
0056 C = textscan(fid, '%s %s %s %d', 1); nElems = C{4};
0057 tri = zeros(nElems,3); 
0058 x   = zeros(nVerts,1);
0059 y   = zeros(nVerts,1);
0060 h   = zeros(nVerts,1);
0061 lon = zeros(nVerts,1);
0062 lat = zeros(nVerts,1);
0063 ts  = zeros(nVerts,1);
0064 
0065 fprintf('reading mesh file\n');
0066 fprintf('# nodes %d\n',nVerts);
0067 fprintf('# elems %d\n',nElems);
0068 for i=1:nElems
0069   C = textscan(fid,' %d %d %d %d %d\n',1);
0070   tri(i,1) = C{2};  tri(i,2) = C{3}; tri(i,3) = C{4};
0071 end;
0072 for i=1:nVerts 
0073   C = textscan(fid, '%d %f %f %f', 1);
0074   x(i) = C{2};
0075   y(i) = C{3};
0076 end;
0077 fprintf('mesh read in\n');
0078 fclose(fid);
0079 
0080 %------------------------------------------------------------------------------
0081 % Transfer to Mesh structure
0082 %------------------------------------------------------------------------------
0083 
0084 Mobj.nVerts  = nVerts;
0085 Mobj.nElems  = nElems;
0086 Mobj.nativeCoords = coordinate;
0087 
0088 if(have_lonlat)
0089     Mobj.have_lonlat  = have_lonlat;
0090 end;
0091 if(have_xy)
0092     Mobj.have_xy      = have_xy;
0093 end;
0094 if(have_bath)
0095     Mobj.have_bath    = have_bath;
0096 end;
0097 Mobj.x            = x;
0098 Mobj.y            = y;
0099 Mobj.ts           = ts;
0100 Mobj.lon          = lon;
0101 Mobj.lat          = lat;
0102 Mobj.h            = h;
0103 Mobj.tri          = tri;
0104 
0105 
0106 fprintf(['end   : ' subname '\n'])
0107 
0108

Generated on Tue 18-Dec-2012 12:37:31 by m2html © 2005