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.
Code Block |
---|
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.
Code Block |
---|
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.
""" |