As @Babel has suggested, Raster calculator is the best tool.
For your case, there is also a useful (and relatively new) Raster boolean AND tool in the Processing Toolbox > Raster analysis group.
This is a small example, E100N90 is a background SRTM topo (sea level 0 m is set to nodata) and Rectangle is a hand-drawn reddish rectangle. You will notice ...
Add an aggregate function (sum for example) around your case/when expression
SUM(CASE WHEN b.distance = 50 THEN ST_Area(ST_Intersection(a.geometry, b.geometry)) END) AS distance50,
SUM(CASE WHEN b.distance = 20 THEN ST_Area(ST_Intersection(a.geometry, b.geometry)) END) AS distance20,
SUM(CASE WHEN b.distance = 5 THEN ST_Area(...
This is an approach to this problem using that strategy of the 'inner central horizontal edge'. In resume:
Create buffers of the polygons.
Intersection of buffers to get overlaping zones.
Extract intersection coords to create the new medium edge.
Clip buffers with lines and assign the parcel ID.
Here are the layers to try out.
Here is the code:
You are right to say that the obvious return type are Point and/or MultiPoint but if your ray is exactly parallel to one or more edges of your Shapely objects than the return type will be LineString or MultiLineString. It should never return Polygon or MultiPolygon.
Based on the comment/answer by @mikewatt, this is the code that works:
#mypoly = filepath to my polygon SHP
#mypts = filepath to my points SHP
#myoutput = filepath to save Thiessen polgons output
arcpy.env.extent = mypoly
arcpy.CreateThiessenPolygons_analysis(mypts, myoutput, fields_to_copy='ALL')
You want to use the Con (Conditional) tool, either standalone or within the Raster Calculator to put together a statement roughly like Con(elevation<1000 AND landuse==X, true_output, false output). There are a handful of different ways you can phrase the same query depending on which tool you use, so treat my syntax with a grain of salt. This Esri blog ...