Changes between Version 1 and Version 2 of UgCellArrays

11/09/06 14:26:54 (13 years ago)



  • UgCellArrays

    v1 v2  
    1313The data set will consist of a grid of cells.  The index array for the grid will dimensioned to the number of cells.  The data set will also consist of a collection of nodes, defined by their spatial location.  The data set will also contain a collection of edges.  Edges are defined by two nodes.  Edges must have a direction associated with them, so it is necessary to define an edge independent of the two different cells which it may be part of.     
     15I find it interesting that there is enough information specified in the grid and edge arrays to define the connectivity of the irregular grid.  But it all makes no sense without data which needs to be pointed to by indices of the grid.  So there must be locations for the nodes, longitude and latitude.  A variable which is specified at the nodes will be dimensioned by the number of nodes, like the zeta variable below.  Edge variables are not defined at the center of an edge.  They are defined for the whole line segment and you would expect them to be objects like normal fluxes, Uf and Ftemp below.  If you want to locate a variable like flux at a point, I think you are not thinking about flux anymore.  To have any transport a flux must be applied to a length or area, not a single point.
     16A useful auxilliary array might be provided, length_edges.  But of course it could have been derived from lon, lat and edge indices.
     17 * length_edge(iedge) = sqrt( (lon(edge(iedge,1))-lon(edge(iedge,2)))^2^ + (lat(edge(iedge,1))-lat(edge(iedge,2)))^2^ )   (ok lon2meters etc..)
     20netcdf tri_grid {
     22        nodes = 300 ;
     23        cells = 570 ;
     24        faces = 570 ;
     25        edges = 870 ;
     26        cell_length = 7 ;
     27        two = 2 ;
     28        time = UNLIMITED ; // ( not many, currently)
     31        int grid(cells, cell_length) ;
     32                grid:cell_type = "tri_face_edged"
     33                grid:dims=[ nodes, nodes, nodes, faces, edges, edges, edges ];
     34                grid:standard_name= "Cell_Connectivity_Indices"
     35        int edge(edges,two)
     36                edge:dims= [ nodes, nodes ];
     37                edge:standard_name="Edge_Connectivity_Indices"
     38       float lon(nodes)
     39             lon:standard_name="longitude";
     40       float lat(nodes)
     41             lat:standard_name="latitude";
     42       float length_edge(edges)
     43             units="m"
     44             standard_name="length_edge"
     45       float zeta(nodes)
     46             zeta:standard_name="sea_surface_height";
     47       float temp(faces)
     48             temp:standard_name="temperature";
     49             temp:units="degrees centigrade"
     50       float Uf(edges)
     51             Uf:standard_name="Normal_Velocity";
     52             Uf:units="m/s"
     53       float Ftemp(edges)
     54             Ftemp:standard_name="Normal_heat_flux";
     55             Ftemp:units="Calories m/s"