1

I want to calculate the OD Cost Matrix in ArcMap 10.3.1 using the ArcPy package. When running the arcpy.Solve_na, the Python console prints a lot of warning messages. After a while, ArcMap crashes, resulting in the need to close it. I have tried some methods, but they didn't work. Code, warning messages and methods are below:

Code

POI = r"...path\poi"
other_Pt = r"...path\poi"
# Local variables:
TP_pi1_Layer1 = "TP_pi1_Layer1"

# Process: Make Feature Layer
arcpy.MakeFeatureLayer_management(POI, TP_pi1_Layer1, Expression_mrt, "", "OBJECTID OBJECTID HIDDEN NONE;Shape Shape HIDDEN NONE;Name Name VISIBLE NONE;City City HIDDEN NONE;Town Town HIDDEN NONE;Level1 Level1 HIDDEN NONE;Level2 Level2 HIDDEN NONE;Level3 Level3 VISIBLE NONE;Id Id HIDDEN NONE")
    
# Local variables:
OD_Cost_Matrix = "OD Cost Matrix"
OD_Cost_Matrix__4_ = OD_Cost_Matrix
OD_Cost_Matrix__5_ = OD_Cost_Matrix__4_

# Process: Make OD Cost Matrix Layer
arcpy.MakeODCostMatrixLayer_na(NetworkDataset_ND, "OD Cost Matrix", "Length", "", "1", "", "ALLOW_UTURNS", "", "NO_HIERARCHY", "", "NO_LINES", "")

# Process: Add Locations
arcpy.AddLocations_na(OD_Cost_Matrix, "Origins", other_Pt, "", "200 Meters", "", "NetworkDataset_ND_Junctions NONE;Twn5000rc_polyline1 SHAPE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "NetworkDataset_ND_Junctions #;Twn5000rc_polyline1 #")

# Process: Add Locations
arcpy.AddLocations_na(OD_Cost_Matrix__4_, "Destinations", TP_pi1_Layer1, "Name Name #", "200 Meters", "", "NetworkDataset_ND_Junctions NONE;Twn5000rc_polyline1 SHAPE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "NetworkDataset_ND_Junctions #;Twn5000rc_polyline1 #")

# Process: Solve
arcpy.Solve_na(OD_Cost_Matrix__5_, "SKIP", "TERMINATE", "")

warning messages Those warning messages don't stop the code from running, but when the number of warning messages exceeds 30,000 lines, ArcMap crashes.

enter image description here

I tried those methods, but they didn't work.:

1.

arcpy.SetLogHistory(False)
import warnings
def handle_warning():
    pass

warnings.showwarning = handle_warning
import warnings
warnings.filterwarnings("ignore")
arcpy.SetSeverityLevel(1)
print("Severity is set to : {0}".format(arcpy.GetSeverityLevel()))
 
try:
    arcpy.Solve_na(OD_Cost_Matrix__5_, "SKIP", "TERMINATE", "")
except arcpy.ExecuteWarning:
    pass
except arcpy.ExecuteError:
    pass

Has anyone solved this problem?

2
  • 3
    You're using an ancient version of ArcMap with an archaic version of Python. Neither is supported. You are unlikely to find anyone here using nine year old software.
    – Vince
    Commented Nov 16, 2023 at 3:46
  • Yes... I understand that those are an archaic version. Unfortunately, I can't change it. Commented Nov 16, 2023 at 4:54

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.