<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ArcPy: Set Output Processing Extent (Bug!) in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584497#M45842</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I should mention that I'm using ArcGIS 10.2.2 with Python&amp;nbsp; 2.7.6&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter Wilson&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Aug 2015 17:22:12 GMT</pubDate>
    <dc:creator>PeterWilson</dc:creator>
    <dc:date>2015-08-03T17:22:12Z</dc:date>
    <item>
      <title>ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584496#M45841</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I need some assistance to figure out if the following is a bug, if so what work around can I use. I've written a Python Script I need to change the &lt;STRONG&gt;Processing Extent&lt;/STRONG&gt; for each feature layer being processed. I obtain the extent for each feature layer using the following Python code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14386213209819934 jive_text_macro" data-renderedposition="71_8_882_16" jivemacro_uid="_14386213209819934"&gt;&lt;P&gt;process_extent = arcpy.Describe(site_buffer).extent&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I print process_extent , the results are what I would expect:&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="120451" alt="process_extent.PNG" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/120451_process_extent.PNG" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;I then try to set the &lt;STRONG&gt;Processing Extent &lt;/STRONG&gt;using the &lt;STRONG&gt;process&lt;/STRONG&gt;&lt;STRONG&gt;_extent &lt;/STRONG&gt;as input based on the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14386220325568876 jive_text_macro" data-renderedposition="451_8_882_16" jivemacro_uid="_14386220325568876"&gt;&lt;P&gt;arcpy.env.extent = process_extent&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if I print arcpy.env.extent, the results are not what I would expect:&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="120452" alt="arcpyenvextent.PNG" class="image-2 jive-image" src="https://community.esri.com/legacyfs/online/120452_arcpyenvextent.PNG" style="height: auto;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 17:17:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584496#M45841</guid>
      <dc:creator>PeterWilson</dc:creator>
      <dc:date>2015-08-03T17:17:47Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584497#M45842</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I should mention that I'm using ArcGIS 10.2.2 with Python&amp;nbsp; 2.7.6&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter Wilson&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 17:22:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584497#M45842</guid>
      <dc:creator>PeterWilson</dc:creator>
      <dc:date>2015-08-03T17:22:12Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584498#M45843</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That indeed looks like a bug. I just did a test looping through all the featureclasses in a File Geodatabase with version 10.3 I have here and there is no difference between the extent read from the fc and after the extent is set to the env.extent. When the "1,#QNAN 1,#QNAN 1,#QNAN 1,#QNAN NaN NaN NaN NaN" occurs it is already in the input featureclass extent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you show the rest of the code to see if something else is happening with the extent?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 18:00:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584498#M45843</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2015-08-03T18:00:18Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584499#M45844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;From the 10.3 help (since I don't know if 10.2 is fixed)&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;A href="http://desktop.arcgis.com/en/desktop/latest/tools/environments/output-extent.htm"&gt;http://desktop.arcgis.com/en/desktop/latest/tools/environments/output-extent.htm&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;The extent entered is assumed to be in the coordinate system in which the input data is stored, even if the &lt;A class="xref" href="http://desktop.arcgis.com/en/desktop/latest/tools/environments/output-coordinate-system.htm"&gt;Output Coordinate System&lt;/A&gt; environment is set.&amp;nbsp; If the tool takes multiple input datasets, the first dataset defines the coordinate system of the extent&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So technically, it should be reset if you reset it each time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 18:47:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584499#M45844</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2015-08-03T18:47:17Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584500#M45845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Xander&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The full Python code is attached below:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="font-size: 10pt;"&gt;'''
Created on Jul 16, 2015&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;Calculate the time to traverse a terrain based on&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;Toblers Hiking Function based on slope&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;@author: PeterW
'''
# import system modules and site packages
import os
import arcpy
from arcpy.sa import *
import time&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;def hms_string(sec_elapsed):
&amp;nbsp;&amp;nbsp;&amp;nbsp; h = int(sec_elapsed / (60 * 60))
&amp;nbsp;&amp;nbsp;&amp;nbsp; m = int((sec_elapsed % (60 * 60)) / 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp; s = sec_elapsed % 60
&amp;nbsp;&amp;nbsp;&amp;nbsp; return "{}h:{:&amp;gt;02}m:{:&amp;gt;05.2f}s".format(h, m, s)
# End hms_string&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;start_time = time.time()&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# set environment settings
arcpy.env.overwriteOutput = True&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# check out extensions
arcpy.CheckOutExtension("Spatial")&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# set input and output workspace
inws = r"F:\Projects\2015\G111741\Model01\Rasters"
fgdb = r"F:\Projects\2015\G111741\Model01\Model01.gdb"&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;arcpy.env.workspace = inws&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# calculate the slope in degrees
inras = "raw2"
out_measurement = "DEGREE"&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;slope_deg = Slope(inras, out_measurement)&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# spatial reference for output results
coordsys = arcpy.Describe(inras).spatialReference&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# set site locations and input Tobler Hiking Function Vertical Factor
sites = os.path.join(fgdb,"Schools_All2")
vertical_factor = arcpy.sa.VfTable(os.path.join(inws, "ToblerAway.txt")) &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# create output feature class to store walk time polylines for each site
walk_poly = os.path.join(fgdb, "walk_poly")&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;# check if walk_poly exists else create it from scratch
if arcpy.Exists(walk_poly):
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(walk_poly)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(fgdb, "walk_poly", "POLYLINE", "", "", "", coordsys, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Name", "TEXT", "", "", 25, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Contour", "SHORT", "", "", "", "", "", "", "")
else:
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(fgdb, "walk_poly", "POLYLINE", "", "", "", coordsys, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Name", "TEXT", "", "", 25, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Contour", "SHORT", "", "", "", "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
# walking distance\time (1km = 12min; 2km = 24min; 2.5km = 30min; 5km = 60min)
walk_int = [12, 24, 30, 60]&lt;/SPAN&gt;
&lt;SPAN style="font-size: 10pt;"&gt;with arcpy.da.SearchCursor(sites, ["NAME"]) as cursor: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site_name = row[0].replace(" ","_").replace("-","_").replace("(","").replace(")","") # remove non valid characters
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql_exp1 = "Name = '{}'".format(row[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site_lyr = site_name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MakeFeatureLayer_management(sites, site_lyr, sql_exp1) # create feature layer for each site
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site_buffer = os.path.join("in_memory", site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Buffer_analysis(site_lyr, site_buffer, "5 Kilometers") # create 5 kilometer buffer for each site
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; process_extent = arcpy.Describe(site_buffer).extent # set processing extent to 5 kilometer buffer of site
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.extent = process_extent # set processing extent to site buffer for each site location
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cost = PathDistance(site_lyr, slope_deg, "","","",inras, vertical_factor,"","")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ("Processing {} Cost Raster").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; costmin = Times(cost, 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ("Processing {} Cost per Minute Raster").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_name = "walk_cont" + "_" + str(count)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_cont = os.path.join("in_memory", walk_name) # save to in_memory
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ("Processing &amp;amp; Sorting {} Walk Contours").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContourList(costmin, walk_cont, walk_int)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_name2 = walk_name + "_" + "sorted"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_sorted = os.path.join("in_memory", walk_name2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Sort_management(walk_cont, walk_sorted, [["Contour", "ASCENDING"]],"")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_sorted, "Name", "TEXT", "", "", 50, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql_exp2 = "'{}'".format(row[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CalculateField_management(walk_sorted, "Name", sql_exp2, "PYTHON_9.3")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(walk_sorted,["SHAPE@", "Name", "Contour"]) as scur: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(walk_poly, ["SHAPE@", "Name", "Contour"]) as icur: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for srow in scur:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; icur.insertRow(srow)
print ("Completed Processing All Sites")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
# check in extensions
arcpy.CheckInExtension("Spatial")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
end_time = time.time()
print "It took {} to execute this".format(hms_string(end_time - start_time))&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:07:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584500#M45845</guid>
      <dc:creator>PeterWilson</dc:creator>
      <dc:date>2021-12-12T01:07:59Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584501#M45846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Dan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply, the coordinate systems are indeed the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 19:53:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584501#M45846</guid>
      <dc:creator>PeterWilson</dc:creator>
      <dc:date>2015-08-03T19:53:59Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584502#M45847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Xander&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I figured out a workaround using ArcPy.da.SearchCursor:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;'''
Created on Aug 3, 2015
Calculate the time to traverse
a terrain based on Toblers Hiking
Function based on slope
@author: PeterW
'''
# import system modules and site packages
import os
import time
import arcpy
from arcpy.sa import *
from difflib import Match
# process time Function
def hms_string(sec_elapsed):
&amp;nbsp;&amp;nbsp;&amp;nbsp; h = int(sec_elapsed / (60 * 60))
&amp;nbsp;&amp;nbsp;&amp;nbsp; m = int((sec_elapsed % (60 * 60)) / 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp; s = sec_elapsed % 60
&amp;nbsp;&amp;nbsp;&amp;nbsp; return "{}h:{:&amp;gt;02}m:{:&amp;gt;05.2f}s".format(h, m, s)
# processing start time
start_time = time.time()
# set environment settings
arcpy.env.overwriteOutput = True
# check out extensions 
arcpy.CheckOutExtension("Spatial")
# set input and output workspace
inws = r"F:\Projects\2015\G111741\Model01\Rasters"
fgdb = r"F:\Projects\2015\G111741\Model01\Model01.gdb"
# calculate the slope in degrees
inras = os.path.join(inws, "raw2")
out_measurement = "DEGREE"
slope_deg = Slope(inras, out_measurement)
# spatial reference for output results
coordsys = arcpy.Describe(inras).spatialReference
# set site locations and input Toblers Hiking Function Vertical factor
sites = os.path.join(fgdb, "Schools_All")
sites_buffer = os.path.join(fgdb, "Schools_Buffer")
vertical_factor = arcpy.sa.VfTable(os.path.join(inws, "ToblerAway.txt")) &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
# create output feature class to store walk time polylines for each site_buffer
walk_poly = os.path.join(fgdb, "walk_poly")
# check if walk_poly exists else create it from scratch
if arcpy.Exists(walk_poly):
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(walk_poly)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(fgdb, "walk_poly", "POLYLINE", "", "", "", coordsys, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Name", "TEXT", "", "", 25, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Contour", "SHORT", "", "", "", "", "", "", "")
else:
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(fgdb, "walk_poly", "POLYLINE", "", "", "", coordsys, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Name", "TEXT", "", "", 25, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_poly, "Contour", "SHORT", "", "", "", "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
# walk distance\time (1km = 12min; 2km = 24min; 2.5km = 30min; 5km = 60min)
walk_int = [12, 24, 30, 60]
# create 5km buffers for each site to be used as processing extent
sites_buffer = os.path.join("in_memory", "sites_buffer")
arcpy.Buffer_analysis(sites, sites_buffer, "5 Kilometers")
with arcpy.da.SearchCursor(sites_buffer, ["OBJECTID", "NAME", "SHAPE@"]) as scur1: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row1 in scur1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(sites, ["OBJECTID", "NAME", "SHAPE@"]) as scur2: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row2 in scur2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row1[1] == row2[1]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # processing start time
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start_time = time.time()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; process_extent = row1[2].extent
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.extent = process_extent
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site_name = row2[1].replace(" ","_").replace("-","_").replace("(","").replace(")","")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql_exp1 = "Name = '{}'".format(row2[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site_lyr = site_name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MakeFeatureLayer_management(sites, site_lyr, sql_exp1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cost = PathDistance(site_lyr, slope_deg, "", "", "", inras, vertical_factor, "","")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Processing {} Cost Raster").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; costmin = Times(cost, 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Processing {} Cost per Minute Raster").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_name = "walk_cont" + "_" + str(count)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_cont = os.path.join("in_memory", walk_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Processing &amp;amp; Sorting {} Walk Contours").format(site_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContourList(costmin, walk_cont, walk_int)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_name2 = walk_name + "_" + "sorted"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; walk_sorted = os.path.join("in_memory", walk_name2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Sort_management(walk_cont, walk_sorted, [["Contour", "ASCENDING"]], "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(walk_sorted, "Name", "TEXT", "", "", 50, "", "", "", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql_exp2 = "'{}'".format(row2[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CalculateField_management(walk_sorted, "Name", sql_exp2, "PYTHON_9.3")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(walk_sorted, ["SHAPE@", "Name", "Contour"]) as scur: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(walk_poly, ["SHAPE@", "Name", "Contour"]) as icur: &lt;A href="mailto:#@UndefinedVariable" rel="nofollow noopener noreferrer" target="_blank"&gt;#@UndefinedVariable&lt;/A&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for srow in scur:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; icur.insertRow(srow)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Processing end time
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_time = time.time()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "It took {} to execute {}".format(hms_string(end_time - start_time),site_name)
print ("Completed Processing All Sites")
# check in extensions 
arcpy.CheckInExtension("Spatial")
# processing end time
end_time = time.time()
print "It took {} to execute this".format(hms_string(end_time - start_time))&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:08:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584502#M45847</guid>
      <dc:creator>PeterWilson</dc:creator>
      <dc:date>2021-12-12T01:08:02Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584503#M45848</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Glad you resolved your problem. For speed considerations you may want to consider creating two dictionaries rather than using a nested cursor. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 02:23:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584503#M45848</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2015-08-04T02:23:11Z</dc:date>
    </item>
    <item>
      <title>Re: ArcPy: Set Output Processing Extent (Bug!)</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584504#M45849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Peter,&lt;/P&gt;&lt;P&gt;Your code really helped me with a problem I was having! For anyone that can't be bothered to do a CTRL + F, look for Lines 66 &amp;amp; 67.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2016 18:47:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-set-output-processing-extent-bug/m-p/584504#M45849</guid>
      <dc:creator>JohnWall</dc:creator>
      <dc:date>2016-09-02T18:47:51Z</dc:date>
    </item>
  </channel>
</rss>

