Hiển thị thông báo lỗi đã nêu cho người dùng trong cửa sổ Kết quả Geoprocessing ArcGIS?


13

Các câu lệnh in được nêu ra từ một ngoại lệ tùy chỉnh có thể được hiển thị trong cửa sổ Kết quả Geoprocessing không?

Tôi đã sửa đổi một tập lệnh mà tôi thấy có hai đầu vào từ người dùng, tìm tính năng được liên kết, sau đó phóng to tính năng. Công cụ hoạt động tốt. Tôi đang cố gắng làm cho nó thân thiện hơn với người dùng bằng cách tự động định dạng các đầu vào để có số lượng ký tự chính xác. Tôi đã thêm một hộp thông báo cho người dùng biết họ có quá nhiều ký tự trong hộp nhập không, nhưng tôi đã sử dụng easygui để tạo nó (thư viện Python cho GUI). Thay vào đó, tôi muốn sử dụng cửa sổ kết quả gp để hiển thị thông báo. Tôi nghĩ rằng tôi đã định dạng tăng và ngoại trừ các câu lệnh một cách chính xác nhưng công cụ chạy và tôi nhận được một kết quả hoàn thành và không phải là thông báo lỗi của tôi. Tôi đã thử sự giúp đỡ hấp dẫn từ esri và không nhận được kết quả mà tôi đang tìm kiếm.

class BadInputError(Exception):
    pass

# Import arcpy module
import arcpy, sys, string
from arcpy import env

try:
    def checkInput(inp):
        mNCount = len(inp)
        trigger = 0
        while trigger == 0:
            if  mNCount == 4:
                trigger = 1
            elif mNCount > 4:
                inp = ''
                trigger = -1
                raise BadInputError
            elif mNCount == 3:
                inp = '0' + inp
                trigger = 1
            elif mNCount == 2:
                inp = '00' + inp
                trigger = 1
            elif mNCount == 1:
                inp = '000' + inp
                trigger = 1
        return inp


    # Script arguments
    MapNumber = arcpy.GetParameterAsText(0)
    MapNumber = checkInput(MapNumber)
    ParcelNumber = arcpy.GetParameterAsText(1)
    ParcelNumber = checkInput(ParcelNumber)

    Expression = (""" "MAP" = '%s' AND "PARCEL" = '%s'""") %(MapNumber,ParcelNumber)

    # Local variables:
    GISData_GISDATA_CAD_PARCEL2009_WHOLE = "Database Connections\\GISUser.sde\\GISData.GISDATA.CAD_PARCEL2009_WHOLE"
    Output_Layer_Name = Expression
    Output_Layer = "ParcelSelection"

    # Process: Select Layer By Attribute
    arcpy.SelectLayerByAttribute_management("2009 Parcel Points", "NEW_SELECTION", Expression)

    # Zoom to Selected Features
    mxd = arcpy.mapping.MapDocument('CURRENT') 
    df = arcpy.mapping.ListDataFrames(mxd, "Layers") [0] 
    df.zoomToSelectedFeatures()
    df.scale = 8000
    arcpy.RefreshActiveView()

except BadInputError:
    print "Too many characters.  Run again"

except Exception, e:
    # If an error occurred, print line number and error message  
    import traceback, sys
    tb = sys.exc_info()[2]
    print "Line %i" % tb.tb_lineno
    print e.message

Câu trả lời:


13

Tôi nghĩ rằng bạn đang tìm kiếm arcpy.AddMessage .

Bốn chức năng ArcPy để viết tin nhắn như sau:

  • AddMessage ("tin nhắn") - Đối với tin nhắn thông tin chung (mức độ nghiêm trọng = 0).
  • AddWarning ("tin nhắn") - Để cảnh báo (mức độ nghiêm trọng = 1).
  • AddError ("tin nhắn") - Đối với các lỗi (mức độ nghiêm trọng = 2).
  • AddIDMessage (MessageType, MessageID, AddArgument1, AddArgument2) EDUsed cho cả lỗi và cảnh báo (đối số MessageType xác định mức độ nghiêm trọng).

1
Thế là xong. Cảm ơn. Tôi nghĩ rằng tôi sẽ sử dụng arcpy.AddError
joe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.