Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

Version 1 Next »

De koppeling tussen het 1D en 2D mesh gaat via de 1D2D links. Deze verbindingen zijn vergelijkbaar met de ‘normale’ flowlinks tussen 1D-rekenpunten en 2D-rekenpunten: de volledige stromingsvergelijking met momentum worden opgelost. De link wordt dus niet gesimuleerd met een overlaatvergelijking, zoals dit bij SOBEK gebeurde. Dit is overigens in D-Hydro wel mogelijk door een landboundary de specificeren die de 1D2D-link kruist.

Het genereren van de linkjes met D-Hydamo gaat met de functies generate_1d_to_2d en generate_2d_to_1d. De eerste probeert vanuit elk 1D rekenpunt een koppeling met een 2D cell te leggen, de tweede omgekeerd.

De functie generate_1d_to_2d biedt de mogelijkheid om linkjes te genereren met een maximale lengte, en op specifieke takken. De codedocumentatie ligt toe hoe de functie te gebruiken.

def generate_1d_to_2d(self, max_distance=np.inf, branchid=None):
    """
    Generate 1d2d links from 1d nodes. Each 1d node is connected to
    the nearest 2d cell. A maximum distance can be specified to remove links
    that are too long. Also the branchid can be specified, if you only want
    to generate links from certain 1d branches.

    Parameters
    ----------
    max_distance : int, float
        The maximum length of a link. All longer links are removed.
    branchid : str or list
        ID's of branches for which the connection from 1d to 2d is made.
    """

De functie generate_2d_to_1d biedt de mogelijkheid om van 2D naar 1D te genereren. Hierin wordt onderscheidt gemaakt tussen links tussen:

  1. overlappende cellen. Het 1d en 2d mesh kruisen elkaar, vaak in het geval van kleine watergangen. Per 2d cel wordt een link gelegd naar de 1d cel(len) die het kruist.

  2. niet overlappende cellen. De meshes liggen naast elkaar, vaak in het geval van grotere watergangen en riviertakken. In dit geval kan niet op basis van overlap een link worden gelegd, dus wordt er gezocht naar de dichtstbijzijnde 1d cel, vanuit 2d. In tegenstelling tot de 1d-naar-2d optie wordt er dus wel links en rechts een verbinding gelegd. Om te zorgen dat alleen cellen direct naast de watergang een verbinding krijgen worden alle verbindingen die een andere 2d-cel kruisen verwijderd.

De codedocumentatie biedt meer informatie over het gebruik van de functie.

def generate_2d_to_1d(self, max_distance=np.inf, intersecting=True, branchid=None):
    """
    Generate 1d2d links from 2d cells. A maximum distance can be specified
    to remove links that are too long. Also a branchid can be specified to only
    generate links to certain branches.
    
    In case of a 1D and 2D grid that is on top of each other the user might want
    to generate links only for intersecting cells, where in case of non-overlapping meshes
    the use might want to use the shortest distance. This behaviour can be specified with
    the option intersecting:
    1. intersecting = True: each 2d cell crossing a 1d branch segment is connected to
        the nearest 1d cell.
    2. intersecting = False: each 2d cell is connected to the nearest 1d cell,
        If the link crosses another cell it is removed.
    In case of option 2. setting a max distance will speed up the the process a bit.

    Parameters
    ----------
    max_distance : int, float
        Maximum allowed length for a link
    intersecting : bool
        Make connections for intersecting 1d and 2d cells or based on
        nearest neighbours
    branchid : str or list of str
        Generate only to specified 1d branches
    """

  • No labels