You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Unstructured grid as a net

  • The unstructured grid is a set of net nodes (coordinates) and a set of net links connecting them.
  • Flow data is defined on net cells (naming might change). Cells have a (circum-)center (water level point). The entire cell is defined through its contour line (bounds: NetcellContour_x/y). The contour line contains the coordinates of surrounding net nodes for 2D cells and generated coordinates for 1D channels/manholes/etc.

    Examples

    UNSTRUC map file with 2D cells on local lon/lat-grid.

    netcdf test_map {
    dimensions:
            nNetNode = 178907 ;
            nNetLink = 363472 ;
            nNetLinkPts = 2 ;
            nNetCell = 184324 ;
            nNetCellMaxNode = 7 ;
            nNetCellContourPts = 99 ;
            nNetCellLink = 349141 ;
            nNetCellLinkPts = 2 ;
            time = UNLIMITED ; // (1 currently)
    variables:
            double NetNode_x(nNetNode) ;
                    NetNode_x:units = "degrees_east" ;
                    NetNode_x:standard_name = "longitude" ;
                    NetNode_x:long_name = "netnodal lon-coordinate" ;
            double NetNode_y(nNetNode) ;
                    NetNode_y:units = "degrees_north" ;
                    NetNode_y:standard_name = "latitude" ;
                    NetNode_y:long_name = "netnodal lat-coordinate" ;
            double NetNode_z(nNetNode) ;
            int NetLink(nNetLink, nNetLinkPts) ;
                    NetLink:standard_name = "netlink" ;
                    NetLink:long_name = "link between two netnodes" ;
            int NetLinkType(nNetLink) ;
                    NetLinkType:standard_name = "netlink_type" ;
                    NetLinkType:long_name = "type (1 or 2) of netlink" ;
            double time(time) ;
                    time:units = "seconds since 2010-01-01 00:00:00" ;
            double NetCell_xc(nNetCell) ;
                    NetCell_xc:units = "degrees_east" ;
                    NetCell_xc:standard_name = "longitude" ;
                    NetCell_xc:long_name = "Net cell circumcenter x" ;
                    NetCell_xc:bounds = "NetCellContour_x" ;
            double NetCell_yc(nNetCell) ;
                    NetCell_yc:units = "degrees_north" ;
                    NetCell_yc:standard_name = "latitude" ;
                    NetCell_yc:long_name = "Net cell circumcenter y" ;
                    NetCell_yc:bounds = "NetCellContour_y" ;
            double NetCellContour_x(nNetCell, nNetCellContourPts) ;
                    NetCellContour_x:units = "degrees_east" ;
                    NetCellContour_x:standard_name = "longitude" ;
                    NetCellContour_x:long_name = "List of x-points forming netcell" ;
            double NetCellContour_y(nNetCell, nNetCellContourPts) ;
                    NetCellContour_y:units = "degrees_north" ;
                    NetCellContour_y:standard_name = "latitude" ;
                    NetCellContour_y:long_name = "List of y-points forming netcell" ;
            int NetCellNode(nNetCell, nNetCellMaxNode) ;
                    NetCellNode:standard_name = "netcell_node" ;
                    NetCellNode:long_name = "Mapping from net cell to net nodes (first column is node count, will change)." ;
                    NetCellNode:netcell_coords = "NetCell_xc NetCell_yc" ;
            int NetCellLink(nNetCellLink, nNetCellLinkPts) ;
            double s1(time, nNetCell) ;
                    s1:cell_methods = "area: mean" ;
                    s1:coordinates = "NetCell_xc Netcell_yc" ;
                    s1:grid_mapping = "crs" ;
            double ucx(time, nNetCell) ;
                    ucx:cell_methods = "area: point" ;
                    ucx:coordinates = "NetCell_xc Netcell_yc" ;
                    ucx:grid_mapping = "crs" ;
            double ucy(time, nNetCell) ;
                    ucy:cell_methods = "area: point" ;
                    ucy:coordinates = "NetCell_xc Netcell_yc" ;
                    ucy:grid_mapping = "crs" ;
            int crs ;
                    crs:grid_mapping_name = "latitude_longitude" ;
                    crs:longitude_of_prime_meridian = 0.f ;
                    crs:semi_major_axis = 6378137.f ;
                    crs:inverse_flattening = 298.2572f ;
    
    // global attributes:
                    :institution = "Deltares" ;
                    :references = "http://www.deltares.nl" ;
                    :source = "UNSTRUC v1.0.11.10021:1007, model csmcourant" ;
                    :history = "Created on 2010-01-06T15:35:40+0100, UNSTRUC" ;
                    :Conventions = "CF-1.4:Deltares" ;
    data:
    
     NetNode_x = 10.7736671537707, 10.775, 10.7783013103449, 10.775, 10.775,
        10.80625, 10.7839111680939, 10.80625, 10.8375, 10.80625, 10.80625,
    // ...
     NetLink =
      80895, 80882,
      167568, 167573,
      108907, 109422,
    // ...
     NetLinkType = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    // ...
     time = 0.0300439515169901 ;
     NetCell_xc = 10.7743335768854, 10.7743335913705, 10.7906249344082,
    
     NetCellContour_x =
      10.7736671537707, 10.775, 10.775, _, _, _, _, _, // ...
      10.775, 10.7783013103449, 10.80625, 10.80625, 10.775, _, _, _, _, _, _, _,
    // ...
     NetCellNode =
      3, 1, 2, 5, _, _, _,
      3, 1, 5, 4, _, _, _,
      5, 2, 3, 6, 8, 5, _,
    // ...
     NetCellLink =
      1, 2,
      1, 3,
    // ...
     s1 =
      4.78405906502741e-001, 5.63697801327623e-001, 2.44636456454523e-001,
        7.54911502823542e-001, 2.32821367302938e-001, 1.96039340036838e-001,
        5.73297867243609e-001, 2.28008030376163e-001, 3.37509917682617e-001,
    // ...
    crs = 4326 ;
    
    
  • No labels