POST
|
Hi All, I have a list called 'badItems' that I want to remove/delete, the second position within the tuple, if it is the same as my variable 'OBJ'. It will always be the second position but anywhere in the list. badItems = [(2, 1), (2, 271), (2, 272), (2, 273), (2, 277)] OBJ = 1 return badItems = [(2, 271), (2, 272), (2, 273), (2, 277)] or like this: badItems = (1, 2), (1, 4), (1, 273), (1, 533), (1, 805), (1, 1107), (1, 1108), (1, 1451), (1, 1452), (1, 1827), (1, 1828)] OBJ = 273 return badItems = [(1, 2), (1, 4), (1, 533), (1, 805), (1, 1107), (1, 1108), (1, 1451), (1, 1452), (1, 1827), (1, 1828)] This is what I have so far, cheers: for row in tempDict.values(): #print "row " + str(row) #print "tempDictValues " + str(tempDict) obj = row[0] if obj not in tempDict: obj += 1 try: badItems = [item for item in dissolvedBadList if item[0] == obj] #badItems =[(1,2),(1,4),(1,273)] print "badItems " + str(badItems) for badRow in badItems: #badRow = (1,2) inFid = badRow[0] #inFid = 1 nearFid = badRow[1] #nearFid = 2 print "nearFid " + str(nearFid) tempDict.pop(nearFid) dissolvedBadList.remove(obj) #this does not work except: pass
... View more
05-15-2019
02:14 AM
|
0
|
1
|
444
|
POST
|
Awesome thanks, I haven't seen a search cursor used in that way before. I would assume the Dissolve FC could be used directly into the Search Cursor instead of using the Copy Features. Thus eliminating an extra step?
... View more
03-13-2019
11:21 PM
|
0
|
1
|
1098
|
POST
|
Thanks. I will look into this, it will take some time to get my head around this code
... View more
03-13-2019
11:10 PM
|
0
|
0
|
1098
|
POST
|
The end goal is to run the script faster that it currently is. The order needs to be maintained such as, if you don't buffer the selected line\s (multipart) the convex hull will fail on a single line. Yes the goal would be to use arcpy geometry methods, but I am unaware of the syntax/code for arcpy geometry methods to do a dissolve, do you have an example of this?
... View more
03-13-2019
10:35 PM
|
0
|
2
|
1098
|
POST
|
Hi, Back story, this code is part of a much larger script which loops a few thousand times and takes a few days to finish I'm currently going through the code and trying to it speed up where possible. Can the following code be speed up? I know arcpy.da curses are fast but can they be used here? Edit: This is using ArcGIS 10.3.1 and can't be transferred to ArcPro # select Lines whereClauseSort = """{} IN (1,2,3) AND {} = 'Pass' """.format('Sorting', 'Group2') selectionLineFC = r"in_memory\line" arcpy.Select_analysis(selectionFC, selectionLineFC, whereClauseSort) # Dissolve selected lines Dissolve1 = r"in_memory\Dissolve1" arcpy.Dissolve_management( selectionLineFC, Dissolve1, "Angle;BEARING", "Sorting COUNT;Seam First", "MULTI_PART", "DISSOLVE_LINES") # add attributes arcpy.AddField_management( Dissolve1, "Length", "LONG", "", "", "", "Length", "NULLABLE", "NON_REQUIRED") arcpy.CalculateField_management( Dissolve1, "Length", "round(!shape.length@meters!,10)", "PYTHON_9.3", "") # Sort Dissolve selected lines sort = r"in_memory\Sort1" arcpy.Sort_management( 'Dissolve1', sort, 'Length DESCENDING;Angle ASCENDING;COUNT_Sorting ASCENDING', 'UR') # Select first record sort2 = r"in_memory\Sort2" sel = arcpy.Select_analysis(sort, sort2, 'OID = 1') # Buffer first record convexHullBuff = r"in_memory\convexHullBuff" convexHullbuff = arcpy.Buffer_analysis( sel, convexHullBuff, '200 Meters', 'FULL', 'ROUND', 'NONE', '#', 'PLANAR') # CONVEX_HULL of Buffered first record ConvexHull = r"in_memory\ConvexHull" convexHull = arcpy.MinimumBoundingGeometry_management( convexHullbuff, ConvexHull, "CONVEX_HULL", 'NONE', '#', 'NO_MBG_FIELDS')
... View more
03-13-2019
09:30 PM
|
0
|
7
|
1233
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|