Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Can someone help me fix some code that simply writes points into a featureclass? It used to work in the older gp. syntax, but I'm having difficulties rewriting it in arcpy for ArcGIS 10.0. In this example it was meant to create a 100m grid of points.

desc = arcpy.Describe("Grid_Extent")
Ext1 = str(desc.Extent)
Ext2 = Ext1.split(' ')
SXMin = int (float(Ext2[0]))
SXStart = int (float(Ext2[0]))
SYMin = int (float(Ext2[1])) 
SXMax = int (float(Ext2[2]))
SYMax = int (float(Ext2[3]))

XMin = SXMin
XMax = SXMax
YMin = SYMin
YMax = SYMax
print str(YMin) + "    " + str(YMax)
print str(XMin) + "    " + str(XMax)
while YMin < YMax:
  while XMin < XMax:
     cur = arcpy.InsertCursor("Grid_100")
     pnt = arcpy.Point()
     pnt.x = XMin
     pnt.y = YMin
     feat = cur.newRow()
     cur.insertRow(feat)
     XMin = XMin + 100
  XMin = SXStart
  YMin = YMin + 100
del cur
share|improve this question
add comment

1 Answer

up vote 7 down vote accepted

You are very close, just a few minor changes should make this work. First when setting the point object x and y, the code should be:

pnt.X = XMin
pnt.Y = YMin

Then you need to set the geometry of the feature object from the point:

feat = cur.newRow()
feat.shape = pnt
cur.insertRow(feat)
share|improve this answer
    
Thanks Jeremy, that drove me crazy for hours. If I could ask another question inside of this question... The point geometry does save into the featureclass now, however I had 2 items in that featureclass that are not getting populated. (They weren't shown above to keep the question simple) pnt.GRIDID = PNTNUM pnt.GRIDLINE = LINENUM any idea, or should I post this as a new question. Thanks! –  User Error May 2 '13 at 16:17
    
Should be setting the attributes on the feature, not the point object. Try something like this: feat.GRIDID = PNTNUM and feat.GRIDLINE = LINENUM. Do this before you insert the new row. –  JeremyFon May 2 '13 at 16:26
    
You beat me to it. feat.GRIDID and feat.GRIDLINE It works. Thanks again! –  User Error May 2 '13 at 16:27
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.