ref: ArcPy.mp Get Selected Features Extent
ref: Python/ArcPy classes/Geometry
# Set the path to your project file (.aprx)
project_file = r"Map 1.3 Heritage.aprx"
# Reference the project
aprx = arcpy.mp.ArcGISProject(project_file)
# get the sitebuffer layer
m = aprx.listMaps()[0]
lyr = m.listLayers()[3]
# selete the features
with arcpy.da.SearchCursor(lyr, "SHAPE@", "distance = 500") as cur:
fullExtent = reduce(arcpy.Geometry.union, [row[0] for row in cur]).extent
# get the Map element of the layout
lyt = aprx.listLayouts()[0]
mf = lyt.listElements()[-1]
# set the extent to the selected features' extent
mf.camera.setExtent(fullExtent)
# export to PDF
lyt.exportToPDF(lyt.name)
del aprx
Some methods...
The reduce
function in Python, which is part of the functools
module, is used to iteratively apply a function to the elements of an iterable in a cumulative way. It returns a single accumulated result.
Here's a simple example using the reduce
function to find the product of all elements in a list:
from functools import reduce
# Define a function to multiply two numbers
def multiply(x, y):
return x * y
# Create a list of numbers
numbers = [1, 2, 3, 4, 5]
# Use reduce to find the product of all numbers in the list
product = reduce(multiply, numbers)
print("Product of the numbers:", product)
In this example, the reduce
function applies the multiply
function cumulatively to the elements of the numbers
list. The result will be the product of all the numbers in the list.