I am trying to find a method of generating geometry based off a single point feature and 4 of its attributes to create a crown spread based on distances in each of the 4 cardinal directions.
In QGIS there is a tool called "Geometry by Expression" where it is fairly simple to generate these points, buffer them and convex hull to generate a polygon of the coverage, however i cannot find any similar tools in ArcGIS Pro.
I understand this could probably be done using python, however my skills are limited with python scripting, and hoping there is an easier way. I would ultimately like to build this into model builder alongside some other processes
Any ideas would be greatly appreciated
Ah, the QGIS geometry generator. It really spoils you for using other tools, that's for sure. You might be able to do this in Pro, yes. I don't have Pro open to test this, but here's my idea:
I'm intrigued by this enough to boot into Windows, and will follow up with any results.
Bah! Looks like a no-go. The symbology panel keeps griping about inconsistent geometry logic and won't let me apply a bounding polygon to the layer. I can get the points to show up shifted in their cardinal directions, at least.
The closest I can get is to use the "circular sector" effect on 4 fill layers, then tie the cardinal directions to the radius value and set the angles appropriately. It doesn't look very good compared to what's possible elsewhere, though. Here it is, with different colors applied to make it easier to see the different sectors. Adding a negative buffer and positive offset helps make the wedges a bit smoother, but it's still a far cry from ideal.
Would it be worth submitting an ArcGIS Pro idea for this? At the very least, an idea would get Esri to confirm the functionality doesn't already exist in Pro.
For our notes, here is your related idea: generate geometry from expression
For anyone using Oracle, this is what it might look like using SDO_GEOMETRY (untested):
sdo_geometry('polygon(('||x1||' '||y1||', '||x2||' '||y2||', '||x3||' '||y3||', '||x4||' '||(y4)||', '||x1||' '||y1||'))',26917) as shape
I would think the same kind of thing could be done using SDE.ST_GEOMETRY SQL functions.
At least, that would generate the rectangle polygon. It doesn't help with the buffered points part.
https://desktop.arcgis.com/en/arcmap/latest/manage-data/using-sql-with-gdbs/st-buffer.htm
https://desktop.arcgis.com/en/arcmap/latest/manage-data/using-sql-with-gdbs/st-convexhull.htm
https://desktop.arcgis.com/en/arcmap/latest/manage-data/using-sql-with-gdbs/st-aggr-convexhull.htm
Have you tried using geoprocessing tools for this? Something like the following (untested):
There are likely some details I've overlooked. But maybe the general idea is useful.
Edit:
Why do you want convex hulls? Why not a minimum bounding circle? A minimum bounding circle might eliminate the need for the buffered points step.
Or, better still, could you generate a circle using the longest cardinal direction measurement, using the point geometry as the middle of the circle? (Maybe using a simple technique like the Buffer tool.)
If not, can you show us a screenshot of your data, demonstrating why the technique you described is better? (buffering the cardinal directions points and then doing a convex hull to make a polygon from them)