Проблема в работе сервиса геопроцессинга на основе скрипта Python

0 голосов
спросил 25 Май от berdichevskiyva (140 баллов) в категории Программные продукты Esri
редактировать 27 Май от berdichevskiyva

Добрый день, коллеги.

Написан скрипт Python для получения значения по входным параметрам (x,y,id). Скрипт отлично работает в arcmap, но не работает при его публикации, как сервис геопроцессинга. (версия 10.3)

Скрипт:

import arcpy
from arcpy import env
env.workspace = r"D:\Linrefservice\Def\deffects.gdb"

scratchtable = "D:\Linrefservice\Def\deffects.gdb\\testTable"
table11 = "input"

RoutesWork = "ROUTES_DEF"
table11_Layer = "table11_Layer"

y = arcpy.GetParameterAsText(0)
if y == '#' or not y:
   y = "59,90270918" # provide a default value if unspecified
x = arcpy.GetParameterAsText(1)

if x == '#' or not x:
   x = "30,525767" # provide a default value if unspecified


RID = arcpy.GetParameterAsText(2)
    
x = x.replace(',', '.')
y = y.replace(',', '.')
new = "RoutesWorkTest"
new2 = "RoutesWorkTest2"
# Local variables:


# Process: Вычислить поле
arcpy.CalculateField_management(table11, "x", x, "PYTHON", "")

# Process: Вычислить поле (2)
arcpy.CalculateField_management(table11, "y", y, "PYTHON", "")

# Process: Вычислить поле (3)
arcpy.CalculateField_management(table11, "RID", RID, "PYTHON", "")


arcpy.MakeXYEventLayer_management(table11, "x", "y", table11_Layer, "", "")
arcpy.env.overwriteOutput = True

arcpy.MakeFeatureLayer_management(RoutesWork, new)
arcpy.CalculateField_management(new, "ROUTE_ID", RID, "PYTHON", "")
arcpy.MakeFeatureLayer_management(new, new2, "ROUTE_ID = RouteId")


#arcpy.CopyFeatures_management(table11_Layer, "points")

#arcpy.DefineProjection_management("points", "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")


#arcpy.LocateFeaturesAlongRoutes_lr("points", RoutesWork, "Route_ID", "400 meters", scratchtable , "RID POINT measure", "FIRST", "DISTANCE", "ZERO", "FIELDS", "M_DIRECTON")

arcpy.LocateFeaturesAlongRoutes_lr(table11_Layer, new2, "ROUTE_ID", "400 meters", scratchtable , "RID POINT measure", "FIRST", "DISTANCE", "ZERO", "FIELDS", "M_DIRECTON")
#arcpy.CalculateField_management(scratchtable, "measure", "round(!measure! , 0)" , "PYTHON_9.3", "")

value = []
rows = arcpy.SearchCursor(scratchtable)

for row in rows:
    value.append(row.measure)
    
del rows


print value


arcpy.SetParameter(3, value)

При проведении анализа перед публикацией выдает 2 предупреждения:

VB в скрипте нет, поэтому игнорирую предупреждения, как и написано в справке arcgis. Сервис публикуется успешно, но при выполнении опубликованного инструмента выполнение не удается:

Подскажите пожалуйста, в чем может быть проблема?

1 Ответ

0 голосов
ответил 28 Май от Grigoriy (122,040 баллов)

Ну для начала убедиться, что "D:\Linrefservice\Def\deffects.gdb" видна службе ArcGIS for Server.

А далее учите, как включить отладку:

https://desktop.arcgis.com/en/arcmap/latest/analyze/creating-tools/debugging-script-tools.htm

оставил комментарий 28 Май от berdichevskiyva (140 баллов)
Большое спасибо! открыл доступ службе и все заработало.
...