<?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 Publishing a synchronous python script as a geoprocessing service in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/publishing-a-synchronous-python-script-as-a/m-p/22803#M781</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This might belong in the Server forums, but I thought I would try here first.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a python script that performs a basic Zonal Statistics as Table. I publish it as a GP service, however, when the tool is published as synchronous tool, it hangs, despite the fact the it successfully runs the tool (I can see the output on the server). When I run it asynchronously, it works fine. Any ideas?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
# ---------------------------------------------------------------------------
# Zonal stats with raster filter
# Benjamin P. Stewart, April 2012
# Purpose: Run a zonal stats calculation based on an input feature set
#&amp;nbsp;&amp;nbsp;&amp;nbsp; and a raster dataset chosen by a string input
# ---------------------------------------------------------------------------

# Import arcpy module
import arcpy
from arcpy.sa import *

# Check out any necessary licenses
spatialAnalystExists = arcpy.CheckOutExtension("spatial")
print(spatialAnalystExists)

arcpy.AddMessage("Spatial Analyst License is " + spatialAnalystExists)
arcpy.env.overwriteOutput = True

Feature_Set = arcpy.GetParameterAsText(0) #arcpy.FeatureSet(r"\\sdnarc\ArcData\SAWI\Tools\zonalStats.gdb\testPoly") #
#desc = arcpy.gp.describe(Feature_Set)
#for f in desc.fields:
#&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(f.Name)

arcpy.AddMessage(arcpy.env.scratchWorkspace)
&amp;nbsp;&amp;nbsp; 
if Feature_Set == '#' or not Feature_Set:
&amp;nbsp;&amp;nbsp;&amp;nbsp; Feature_Set = arcpy.FeatureSet(r"\\sdnarc\ArcData\SAWI\Tools\zonalStats.gdb\testPoly")

chosenFile = arcpy.GetParameterAsText(1)
if chosenFile == '#' or not chosenFile:
&amp;nbsp;&amp;nbsp;&amp;nbsp; chosenFile = "GDP"

#The input raster needs to be chosen based on a dropdown box and a dictionary
inputDict = {'Annual Precipitation':r'\\sdnarc\ArcData\SAWI\baseDataGanges\ANNPRCP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Annual Temperature':r'\\sdnarc\ArcData\SAWI\baseDataGanges\ANNTEMP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dominant Soil Type':r'\\sdnarc\ArcData\SAWI\baseDataGanges\DominantSoilType.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Droughts PE':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Droughts_PE.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods Freq':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_Freq.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods PE':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_PE.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods Risk':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_Risk.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GDP':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GDP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Irrigated Areas':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GIAM.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Rainfed Areas':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GMRCA.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'LC2009':r'\\sdnarc\ArcData\SAWI\baseDataGanges\LC2009.img'}

inputRaster = inputDict[chosenFile]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
#Currently, we'll just make one output file, but, really, this needs to be managed better
interimZonal = r"%s\interimZonal" % arcpy.env.scratchWorkspace # provide a default value if unspecified
arcpy.gp.addmessage("Processing %s as %s" % (chosenFile, inputRaster))

# Process: Zonal Statistics as Table
ext = arcpy.CheckExtension("spatial")
arcpy.AddMessage("Starting Zonal Stats: Spatial Analyst is %s" % str(ext))
result = ZonalStatisticsAsTable(Feature_Set, "testID", inputRaster, interimZonal, "DATA", "ALL")
arcpy.AddMessage("Successfully calculated zonal stats")

#Read results and push into record set
arcpy.SetParameter(2, arcpy.RecordSet(interimZonal))
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 May 2012 11:45:35 GMT</pubDate>
    <dc:creator>BenStewart</dc:creator>
    <dc:date>2012-05-18T11:45:35Z</dc:date>
    <item>
      <title>Publishing a synchronous python script as a geoprocessing service</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/publishing-a-synchronous-python-script-as-a/m-p/22803#M781</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This might belong in the Server forums, but I thought I would try here first.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a python script that performs a basic Zonal Statistics as Table. I publish it as a GP service, however, when the tool is published as synchronous tool, it hangs, despite the fact the it successfully runs the tool (I can see the output on the server). When I run it asynchronously, it works fine. Any ideas?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
# ---------------------------------------------------------------------------
# Zonal stats with raster filter
# Benjamin P. Stewart, April 2012
# Purpose: Run a zonal stats calculation based on an input feature set
#&amp;nbsp;&amp;nbsp;&amp;nbsp; and a raster dataset chosen by a string input
# ---------------------------------------------------------------------------

# Import arcpy module
import arcpy
from arcpy.sa import *

# Check out any necessary licenses
spatialAnalystExists = arcpy.CheckOutExtension("spatial")
print(spatialAnalystExists)

arcpy.AddMessage("Spatial Analyst License is " + spatialAnalystExists)
arcpy.env.overwriteOutput = True

Feature_Set = arcpy.GetParameterAsText(0) #arcpy.FeatureSet(r"\\sdnarc\ArcData\SAWI\Tools\zonalStats.gdb\testPoly") #
#desc = arcpy.gp.describe(Feature_Set)
#for f in desc.fields:
#&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(f.Name)

arcpy.AddMessage(arcpy.env.scratchWorkspace)
&amp;nbsp;&amp;nbsp; 
if Feature_Set == '#' or not Feature_Set:
&amp;nbsp;&amp;nbsp;&amp;nbsp; Feature_Set = arcpy.FeatureSet(r"\\sdnarc\ArcData\SAWI\Tools\zonalStats.gdb\testPoly")

chosenFile = arcpy.GetParameterAsText(1)
if chosenFile == '#' or not chosenFile:
&amp;nbsp;&amp;nbsp;&amp;nbsp; chosenFile = "GDP"

#The input raster needs to be chosen based on a dropdown box and a dictionary
inputDict = {'Annual Precipitation':r'\\sdnarc\ArcData\SAWI\baseDataGanges\ANNPRCP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Annual Temperature':r'\\sdnarc\ArcData\SAWI\baseDataGanges\ANNTEMP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dominant Soil Type':r'\\sdnarc\ArcData\SAWI\baseDataGanges\DominantSoilType.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Droughts PE':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Droughts_PE.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods Freq':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_Freq.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods PE':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_PE.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Floods Risk':r'\\sdnarc\ArcData\SAWI\baseDataGanges\Floods_Risk.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GDP':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GDP.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Irrigated Areas':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GIAM.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Rainfed Areas':r'\\sdnarc\ArcData\SAWI\baseDataGanges\GMRCA.img',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'LC2009':r'\\sdnarc\ArcData\SAWI\baseDataGanges\LC2009.img'}

inputRaster = inputDict[chosenFile]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
#Currently, we'll just make one output file, but, really, this needs to be managed better
interimZonal = r"%s\interimZonal" % arcpy.env.scratchWorkspace # provide a default value if unspecified
arcpy.gp.addmessage("Processing %s as %s" % (chosenFile, inputRaster))

# Process: Zonal Statistics as Table
ext = arcpy.CheckExtension("spatial")
arcpy.AddMessage("Starting Zonal Stats: Spatial Analyst is %s" % str(ext))
result = ZonalStatisticsAsTable(Feature_Set, "testID", inputRaster, interimZonal, "DATA", "ALL")
arcpy.AddMessage("Successfully calculated zonal stats")

#Read results and push into record set
arcpy.SetParameter(2, arcpy.RecordSet(interimZonal))
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2012 11:45:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/publishing-a-synchronous-python-script-as-a/m-p/22803#M781</guid>
      <dc:creator>BenStewart</dc:creator>
      <dc:date>2012-05-18T11:45:35Z</dc:date>
    </item>
  </channel>
</rss>

