Cut by layer and append value

I want to cut a polygon with another polygon similar to this example in the intermediate tutorial

I have two questions
How can I do this using a pipeline rather than a wizard?


Once the cut has happened are the values of the cutting layer applied to the cut layer. EG in the above image does the line segment A get the value ‘green’ and does the line segment B get the value ‘blue’

Hi John,

I think the simplest way would be to go through the first few geoprocessing questions in the wizard, then use the pipeline it generates (you can use the CTRL+C menu to view the pipeline at any point in the wizard). That’s what I usually do.

One thing to note is that the layer_intersection expects a bookmark argument, so if you have multiple features in your other layer, but only want to cut against one of them, adding a bookmark filter can be handy.

With merging the attributes, the wizard should guide you through that. But you can also refer to the merge_attributes argument in riskscape function info layer_intersection for more info.


thanks Tim.
For posterity the pipeline ended up being

input(relation: 'Roads_geopackage', name: 'exposure') as exposures_input
 -> select({*})
 -> select({orig_geom: exposure.geom, exposure: layer_intersection(exposure, bookmark('Stop_Banks_merged'), {stb_height: 'stb_height'}, true)})
 -> unnest(exposure, 'segmentID') 
 -> select({{exposure.*, segmentID}})
 -> save('exposure-geoprocessed', format: 'geopackage')

where stb_height was the value I wanted appended to the clipped layer. After clipping the road segments that fell under the Stop_Banks_merged polygon get an integer and the segements that fell outside the Stop_Banks_merged polygon get NULL