TQL Examples

From Tygron Support wiki
Revision as of 13:24, 28 February 2023 by Frank@tygron.nl (talk | contribs) (Created page with "==Examples for common use-cases== A number of use-cases come up frequently across various projects. Queries of the following forms often provide a firm basis for using TQL to obtain required data. ====Function values (selecting)==== '''Parking requirements of social housing''' The parking demand is based on a function value of each function, and is defined as "parking places per m2". Parking demand is not based on the footprint of a building, but...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Examples for common use-cases

A number of use-cases come up frequently across various projects. Queries of the following forms often provide a firm basis for using TQL to obtain required data.

Function values (selecting)

Parking requirements of social housing

The parking demand is based on a function value of each function, and is defined as "parking places per m2". Parking demand is not based on the footprint of a building, but the size of a building. i.e. a building 4 floors high needs more parking than a building with the same footprint 2 floors high.

SELECT_FLOORSIZE_WHERE_CATEGORY_IS_SOCIAL_AND_CATEGORYMULT_IS_PARKING_LOTS_DEMAND_PER_M2

  • SELECT_FLOORSIZE: What we are basically looking for is the floorsize of the building.
  • CATEGORY_IS_SOCIAL: We only want to look at buildings which are of the category social housing. For that, a category clause is added.
  • CATEGORYMULT_IS_PARKING_LOTS_DEMAND_PER_M2: Lastly, we are not looking directly for the floorsize, but for the parking demand as a result of that floorsize.

Function values (updating)

Traffic intensity on roads

The traffic intensity is a function value which affects calculations related to traffic. Some use-cases require these values to be updated dynamically. This can be done per neighborhood. (In this example, the neighborhood in question has the ID 1.)

UPDATE_BUILDING_TRAFFIC_FLOW_WHERE_CATEGORY_IS_ROAD_AND_NEIGHBORHOOD_IS_1

  • UPDATE_BUILDING: We're changing an attribute of a building.
  • TRAFFIC_FLOW: The attribute we are changing is the TRAFFIC_FLOW, which is the technical name of a function value.
  • CATEGORY_IS_ROAD: We only want to update this value on roads.
  • NEIGHBORHOOD_IS_1: We are updating only in this specific neighborhood. Nothing outside the neighborhood is updated by this statement.

Grid average

Quality of livability in a neighborhood

The livability overlay calculates, for each grid cell, the average livability. The best indication of how well a certain region performs in terms of livability would be to average these values out. That way, its possible to compare places which are not the same size. (In this example, the neighborhood in question has the ID 1, and the grid of livability has the ID 4.)

SELECT_GRIDAVG_WHERE_NEIGHBORHOOD_IS_1_AND_GRID_IS_4

For any given neighborhood, different points of a grid may score differently.

  • SELECT_GRIDAVG: We're looking for the average score across the entire neighborhood.
  • NEIGHBORHOOD_IS_1: We don't need the average of the entire map, but only of a specific neighborhood.
  • GRID_IS_4: We need to specify the grid we wish to use the values of.

Grid values

The area of open water which is flooded by more than 20 cm of water

The rainfall overlay calculates what amounts of water ends up where. The overlay's results are in meters. If we wish to provide some minimum value, it must be in meters as well. 20 cm is 0,2 meters. The project can also contain multiple types of water. All types of have one thing in common, namely that they all have the WATER attribute, which can be tested against. (In this example, the grid of inundation has the ID 4, and has its result type set to water stress.)

SELECT_LANDSIZE_WHERE_MINGRIDVALUE_IS_0.2_AND_GRID_IS_4_AND_TERRAIN_WITH_ATTRIBUTE_IS_WATER

  • SELECT_LANDSIZE: The end result must be some area; some amount of square meters.
  • MINGRIDVALUE_IS_0.2: We only want to count the area where the value calculated is at least 0.2 (meters).
  • GRID_IS_4: We need to specify the grid we wish to use the values of.
  • TERRAIN_WITH_ATTRIBUTE_IS_WATER: We are only looking for the water which ends up on water, identified by the "WATER" attribute.

Buffers

The amount of green in or near a neighborhood

Green buildings can be found by their green function value. The value is the amount of green in square meters, per square meter of building. Green can be in a neighborhood, but can also be within a certain range near a neighborhood (say, 20 meters) and still have an effective presence.

SELECT_LOTSIZE_WHERE_NEIGHBORHOOD_IS_1_AND_BUFFER_IS_20.0_AND_FUNCTIONMULT_IS_GREEN_M2

  • SELECT_LOTSIZE: The end result must be area taken up by buildings; some amount in square meters.
  • NEIGHBORHOOD_IS_1: We want the greenery in a particular neighborhood.
  • BUFFER_IS_20.0: We don't just want to look at buildings in the neighborhood itself, but also buildings within 20 meters of the neighborhood
  • FUNCTIONMULT_IS_GREEN_M2:The end result must be multiplied by the green value of the respective buildings found.