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. """
Add Comment