POST
|
I could be wrong, and I'd be interested to know a model builder solution, but the only way I can think of to get a selection from a list is with ArcObjects. Once you have that selection, you could call the rest of your python script.
... View more
04-15-2011
10:37 AM
|
0
|
0
|
376
|
POST
|
I believe you need to use a cursor to pass the values one at a time. To read fields values, use SearchCursor. To write values, use UpdateCursor or InsertCursor. Make sure you take advantage of the sorting capabilities, especially for your ranking question. PS - there's a forum specifically for Python, where you'll probably get your questions answered faster.
... View more
04-15-2011
08:10 AM
|
0
|
0
|
266
|
POST
|
If you are asking how to make random points inside a polygon, I suggest downloading and using the Geospatial Modelling Environment (formerly called Hawth's Tools). It has the ability to generate random points inside a polygon.
... View more
04-13-2011
12:37 PM
|
0
|
0
|
145
|
POST
|
But you have an input feature layer (the end points of your polylines). If you don't have that, use the Line to Point script (not exactly sure what it's called - my ArcGIS is in the process of crashing) to get the end points. That gives you your input feature class, on which you use Near to get the ID and distance to the closest junction. Edit: it's the Feature Vertices to Points tool, Point Type = BOTH_ENDS
... View more
04-13-2011
11:44 AM
|
0
|
0
|
282
|
POST
|
It's not ideal, but as a quick fix you could make 2 copies of the layer, label one with a callout balloon with very small margins, and put another label with a circle background on top. I don't know if this would work with a lot of conflicting labels (ie. would both labels rotate the same?).
... View more
04-13-2011
08:13 AM
|
0
|
0
|
1494
|
POST
|
Before snapping, you could run the Near tool on the points to get the distance to the nearest line.
... View more
04-12-2011
12:33 PM
|
0
|
0
|
193
|
POST
|
This code finds all unique IDs in a feature class, and sticks them into a new table. import arcpy
input = "H:/GIS_Data/TEMP_GDB.gdb/feattoline" # feature class to iterate
gdb = "H:/GIS_Data/TEMP_GDB.gdb" #gdb or folder for your new table
table = "JunkTable"
tabpath = gdb + "/" + table
arcpy.CreateTable_management(gdb,table)
arcpy.AddField_management(tabpath,"ID","TEXT")
rows = arcpy.SearchCursor(input)
ids = []
for row in rows:
if row.FID_polyfc not in ids:
ids.append(row.FID_polyfc)
insrows = arcpy.InsertCursor(tabpath)
for id in ids:
insrow = insrows.newRow()
insrow.ID = id
insrows.insertRow(insrow)
del row
del rows
del insrow
del insrows PS - this is largely a community forum (ie. users answer questions on their own time), so don't be bitter if your question goes unanswered. Especially if it's not in the correct forum - this should be in 'Geoprocessing'.
... View more
04-12-2011
11:19 AM
|
1
|
0
|
2098
|
POST
|
Not sure what your question is - this sounds exactly like what Near is supposed to do.
... View more
04-12-2011
09:34 AM
|
0
|
0
|
282
|
POST
|
Sounds like something you'd want to automate using ArcObjects.
... View more
04-12-2011
07:23 AM
|
0
|
0
|
159
|
POST
|
Here's a standalone script that should do what you want (just change the path to your feature class): import arcpy
input = "H:/GIS_Data/TEMP_GDB.gdb/feattoline" # your feature class
fields = "OID A; Type A" # sort by OID, ascending, then Type, ascending
rows = arcpy.UpdateCursor(input,"","","",fields)
count = 0
for row in rows:
if count == 0:
curType = row.Type
count = count + 1
if row.Type != curType:
curType = row.Type
count = 1
row.Type_Num = count
rows.updateRow(row)
del row
del rows
... View more
04-11-2011
12:05 PM
|
0
|
0
|
394
|
POST
|
There's probably a one-liner function out there that tells you the last number in a list of numbers, but this works: import arcpy
input = "H:/GIS_Data/TEMP_GDB.gdb/feattoline" # your feature class
field = "OBJECTID A" # the name of the field, sorted ascending
rows = arcpy.SearchCursor(input,"","","",field)
for row in rows:
number = row.OBJECTID
This code simply sorts the values in the field "OBJECTID," assigns and overwrites that value to the variable "number" for each increasing value. Finally, you're left with the largest value of "OBJECTID." Then, make pStart = number.
... View more
04-11-2011
11:54 AM
|
0
|
0
|
264
|
POST
|
I usually use the approach of sorting by values, then comparing the previous value to the current value: rows = arcpy.UpdateCursor("Junk1.dbf","","","","ID A") # sort by ID, ascending order
#Create an empty list
myList = []
i = 0
for row in rows:
if i = 0: #first time around
value = row.ID
myList.append(value)
i += 1
if row.ID != value: #if a new ID
value = row.ID
myList.append(value)
i = 1
row.TEST = i
rows.updateRow(row)
... View more
04-11-2011
07:38 AM
|
0
|
0
|
1633
|
POST
|
This started off as being elegant... # Import arcpy module
import arcpy
# Parameters
input = "C:\\some feature class" #input feature class
near = "C:\\some other feature class" #near feature class
nearcount = "3" #number of nearest features
output = "C:\\output table" #output table
# Fun stuff
# Process: Generate Near Table
arcpy.GenerateNearTable_analysis(input, near, output, "", "NO_LOCATION", "NO_ANGLE", "ALL", nearcount)
# Process: Add Field
arcpy.AddField_management(output, "rank", "SHORT", "", "", "", "", "NON_NULLABLE", "NON_REQUIRED", "")
rows = arcpy.UpdateCursor(output,"","","","IN_FID A; NEAR_DIST A")
count = 0
for row in rows:
if count == 0:
curID = row.IN_FID
count = count + 1
if row.IN_FID != curID:
curID = row.IN_FID
count = 1
row.RANK = count
rows.updateRow(row)
del row
del rows
... View more
04-08-2011
12:05 PM
|
0
|
0
|
294
|
POST
|
I haven't tested this out, but the Raster Calculator help says the syntax is RasterCalculator(...) not RasterCalculator_sa (which is tricky - bad ESRI).
... View more
04-08-2011
11:44 AM
|
0
|
0
|
832
|
POST
|
Cool. Change it to: end = datetime.today() ...or possibly datetime.datetime.today()
... View more
04-07-2011
03:22 PM
|
0
|
0
|
769
|
Title | Kudos | Posted |
---|---|---|
1 | 08-30-2013 02:22 PM | |
1 | 04-12-2011 11:19 AM | |
1 | 09-17-2021 09:43 AM | |
1 | 04-04-2012 12:05 PM | |
2 | 07-16-2020 11:31 AM |
Online Status |
Offline
|
Date Last Visited |
07-15-2023
12:11 AM
|