Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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