AnsweredAssumed Answered

Rounding up Scale to set intervals with Python

Question asked by LindsayRaabe on Aug 30, 2018
Latest reply on Aug 30, 2018 by Dan_Patterson

So I have a python script that sets a dataframe extent to the extent of a particular layer and currently the user would then set the scale to something neater (i.e. 1:4,387 would become 1:5,000). I have seen ways to round up to a set increment (i.e. every 1000) but I am more interested in getting it to round up to the next interval in a list of intervals (i.e. 5000, 7500, 10000, 12500, 20000, 25000, 30000, 40000...). Can anyone recommend a way to do this?

 

Demo code;

# input parameters;
Plantation = arcpy.GetParameter(0)

 

# variables;

mxd = mapping.MapDocument("CURRENT")

layers = mapping.ListLayers(mxd)

dflist = arcpy.mapping.ListDataFrames(mxd, "")

new_exp = "PLANTATION = '" + Plantation + "'"

 

for lyr in layers:

   if lyr.name == "Mapping Patch":

         lyr.definitionQuery = new_exp
         arcpy.AddMessage(lyr.name + " definition query updated")
         ext = lyr.getExtent() #gets the new extent of the Fertilser Plan
         dflist[0].extent = ext #applies the Fertiliser Plan extent to the dataframe

Outcomes