*2D-gridgeneratie

Genereren van een vierkant grid binnen een polygoon

Het genereren van een 2D grid is voorlopig alleen mogelijk via een rechthoekig grid. Hiervoor is het het eenvoudigst om de functie generate_within_polygon te gebruiken. Met deze functie kan een grid met gekozen afmetingen en rotatie binnen een opgegeven polygoon (of meerdere polygonen) worden gegenereerd. Zie de docstring van de functie voor meer informatie. De optie van het toevoegen van een rotatie gaat niet samen met het verfijnen van een grid.

def generate_within_polygon(self, polygon, cellsize, rotation=0): """ Function to generate a grid within a polygon. It uses the function 'generate_grid' but automatically detects the extent. Parameters ---------- polygon : (list of) shapely.geometry.Polygon or a shapely.geometry.MultiPolygon Polygon or Polygons within which the grid is generated cellsize : int, float Cell size of the rectangular grid to be generated rotation : int, float Rotation of the grid in degrees carthesian, default 0. Does not work together with grid refinement. """

Verfijnen van een grid

Het is mogelijk het grid lokaal binnen een gegeven polygoon een aantal stappen te verfijnen. Zo kan een 40x40 grid lokaal verfijnd worden naar een 20x20 grid, 10x10 grid, etc.

Merk op dat de gridverfijning alleen kan worden toegepast bij een vierkant of rechthoekig grid zonder rotatie.

De werkwijze is momenteel dat het grid eerst geclipt wordt, bij het genereren - en vervolgens pas verfijnd wordt. Met de aanwezige routines is het mogelijk dit andersom te doen, maar dit is momenteel niet geïmplementeerd.

De code-documentatie van de functie refine in de class Rectangular biedt meer informatie over de wijze waarop het grid kan worden verfijnd.

def refine(self, polygon, level, cellsize, keep_grid=False, dflowfm_path=None):     """     Method to refine the grid a number of steps (level) within a given polygon.     Both for the level and polygon a list of values can be provided so that the     refinement is applied to multiple locations. The fucntion uses the dfm.exe     to refine the grid, for which an ascii grid is generated with a refinement     factor. For this, the cellsize needs to be known. This is the original cell     size, so a 40 m generated grid should provide a cellsize of 40 m, als if     you plan to scale down to 10 m cells. If you choose cells of 60 x 40 m,     specify 20 m as cell size, the common denominator.     Parameters     ----------     polygon : (list of) Polygon(s)         Polygon in which to refine.     level : (list of) int(s)         Number of times to split each cell within the         polygon in quarters 40 -> 20 -> 10.     cellsize : int, float         Cell size with which the original grid was generated.     keep_grid : bool         Whether to keep the grid that is used for refinement.         This option can be used for debugging.     dflowfm_path : str         Path to the Dflow-FM executable. This argument can be specified if         the exe can not be found from the environmental variables.     """

 

 

Â