<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Python script to create a point WITH attributes values in Transportation Questions</title>
    <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566851#M1869</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Open an Insert Cursor on your existing feature class&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create a new row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create a point object at the intended location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pass the point object to the shape field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;calculate the attribute fields to the values you fancy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;add the row to the table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;repeat as needed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatly,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Lines and polygons can be built as arrays of points,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and then the array can be passed to the shape field,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then calculate the attributes as above,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Jun 2013 11:43:44 GMT</pubDate>
    <dc:creator>markdenil</dc:creator>
    <dc:date>2013-06-07T11:43:44Z</dc:date>
    <item>
      <title>Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566850#M1868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: vicroads&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have coded up a Python script that determines the coordinates of where I need to create a new (calibration)point, but I can't work out how to add it to a feature class WITH other attributes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can create a pointGeometry and add it to a new feature class, as shown here...&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/PointGeometry/018z00000039000000/"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#/PointGeometry/018z00000039000000/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...thus creating points but with no attributes to show what road each point belongs to. But I need to append it to the existing point feature class, or at least add the new points to a new feature class with the desired attribute information.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be greatly appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Brett.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;GIS platform: ArcGIS 10.1&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jun 2013 06:44:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566850#M1868</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2013-06-07T06:44:16Z</dc:date>
    </item>
    <item>
      <title>Re: Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566851#M1869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Open an Insert Cursor on your existing feature class&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create a new row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create a point object at the intended location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pass the point object to the shape field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;calculate the attribute fields to the values you fancy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;add the row to the table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;repeat as needed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatly,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Lines and polygons can be built as arrays of points,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and then the array can be passed to the shape field,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then calculate the attributes as above,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jun 2013 11:43:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566851#M1869</guid>
      <dc:creator>markdenil</dc:creator>
      <dc:date>2013-06-07T11:43:44Z</dc:date>
    </item>
    <item>
      <title>Re: Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566852#M1870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: Caleb1987&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mark has a good suggestion with using an insert cursor...However, I would like to mention an alternative since I have two versions of the code posted below.&amp;nbsp; The version shown here (dictionary/create csv/make XY event table) is much faster than the other version which creates point geometry objects with the same attributes in a dictionary and passes them in a new feature class with an insert cursor.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is just a simple tool I wrote to get the start and end points of lines and I add a few attributes.&amp;nbsp; I add the XY data and the attributes to a dictionary then write those values out to a csv. Each csv is then made into an XY event table then convert both to feature classes.&amp;nbsp; Finally, it will merge the start and end points at the end to create the output feature class.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, os, sys, traceback
from os import path as p
from datetime import datetime as d
startTime = d.now()
arcpy.env.overwriteOutput = True
arcpy.env.qualifiedFieldNames = False

def GetStartAndEndOfLine(lines, out_fc, join_field):
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get geometry objects
&amp;nbsp;&amp;nbsp;&amp;nbsp; coords = {}
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(lines, [join_field, 'SHAPE@', 'SHAPE@LENGTH', 'OID@']) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_x = float(str(row[1].firstPoint).split(' ')[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_y = float(str(row[1].firstPoint).split(' ')[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_x = float(str(row[1].lastPoint).split(' ')[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_y = float(str(row[1].lastPoint).split(' ')[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; coords[ID] = [st_x, st_y, end_x, end_y, row[2], row[0],row[3]]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID += 1

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Must create temp csv's for XY Event layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp = os.getcwd()
&amp;nbsp;&amp;nbsp;&amp;nbsp; csv_start = p.join(tmp,'temp_start_coords.csv')
&amp;nbsp;&amp;nbsp;&amp;nbsp; csv_end = p.join(tmp,'temp_end_coords.csv')
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create Start Csv
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(csv_start, 'w') as f:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write('Line_ID,X_Coord,Y_Coord,Length,%s,JOIN_FID,Type\n' %join_field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in coords.iteritems():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(','.join(str(i) for i in [k,v[0],v[1],v[4],v[5],v[6],'Start']) +'\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create End Csv
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(csv_end, 'w') as f:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write('Line_ID,X_Coord,Y_Coord,Length,%s,JOIN_FID,Type\n' %join_field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in coords.iteritems():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(','.join(str(i) for i in [k,v[2],v[3],v[4],v[5],v[6],'End']) +'\n')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get Spatial Reference info
&amp;nbsp;&amp;nbsp;&amp;nbsp; SR = arcpy.Describe(lines).spatialReference
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Make_XY event layers
&amp;nbsp;&amp;nbsp;&amp;nbsp; start_xy = arcpy.MakeXYEventLayer_management(csv_start, 'X_Coord', 'Y_Coord', 'Start_xy_lyr', SR)
&amp;nbsp;&amp;nbsp;&amp;nbsp; end_xy = arcpy.MakeXYEventLayer_management(csv_end, 'X_Coord', 'Y_Coord', 'End_xy_lyr', SR)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create output
&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(out_fc):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management([start_xy, end_xy], out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Clean up
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(csv_start)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(csv_end)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Created "%s"' %p.basename(out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('Created "%s"' %p.basename(out_fc))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if __name__ == '__main__':

&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Script tool params
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Will try as a script tool first
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = arcpy.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; points = arcpy.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = arcpy.GetParameterAsText(2)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetStartAndEndOfLine(lines, points, field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('ERROR')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.GetMessages(2)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if not a script tool will go to stand alone
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Stand alone testing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = r'C:\Testing\test2.gdb\roads'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; points = r'C:\Testing\test2.gdb\Roads_Points2'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = 'NAME1'
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetStartAndEndOfLine(lines, points, field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '(Elapsed time: %s)' %(str(d.now() - startTime)[:-3])

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This had a completion time of (Elapsed time: 0:00:02.570)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And here is the version that is more along the lines of what Mark was talking about with using an insert cursor.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, os, sys, traceback
from os import path as p
from datetime import datetime as d
startTime = d.now()
arcpy.env.overwriteOutput = True
arcpy.env.qualifiedFieldNames = False

def AddFields(in_fc, field, f_type, length=''):
&amp;nbsp;&amp;nbsp;&amp;nbsp; # dictionary to get correct input for add field tool
&amp;nbsp;&amp;nbsp;&amp;nbsp; type_dict = {'String': 'TEXT','SmallInteger':'SHORT',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Integer':'LONG','Single':'FLOAT','Double':'DOUBLE'}
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; add_fields = {'Line_ID':'LONG','X_Coord':'DOUBLE','Y_Coord':'DOUBLE',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Length':'DOUBLE','JOIN_FID':'LONG',field:type_dict[f_type]}
&amp;nbsp;&amp;nbsp;&amp;nbsp; for f,t in add_fields.iteritems():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(in_fc, f, t, field_length=length)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(in_fc, 'Type', 'TEXT', field_length=5)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
def GetStartAndEndOfLine(lines, out_fc, join_field):
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get geometry objects
&amp;nbsp;&amp;nbsp;&amp;nbsp; coords = {}
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(lines, [join_field, 'SHAPE@', 'SHAPE@LENGTH', 'OID@','SHAPE@XY']) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_x = float(str(row[1].firstPoint).split(' ')[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_y = float(str(row[1].firstPoint).split(' ')[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_x = float(str(row[1].lastPoint).split(' ')[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_y = float(str(row[1].lastPoint).split(' ')[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_XY = row[1].firstPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end_XY = row[1].lastPoint
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; coords[ID] = [st_x, st_y, end_x, end_y, row[2], row[0],row[3],st_XY,end_XY]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID += 1

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Must create temp csv's for XY Event layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp = 'in_memory'
&amp;nbsp;&amp;nbsp;&amp;nbsp; start = p.join(tmp,'temp_start')
&amp;nbsp;&amp;nbsp;&amp;nbsp; end = p.join(tmp,'temp_end')

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get Spatial Reference info
&amp;nbsp;&amp;nbsp;&amp;nbsp; SR = arcpy.Describe(lines).spatialReference
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get field type
&amp;nbsp;&amp;nbsp;&amp;nbsp; field_type = [f.type for f in arcpy.ListFields(lines) if f.name == join_field][0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; if field_type == 'String':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field_length = [f.length for f in arcpy.ListFields(lines) if f.name == join_field][0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field_length = ''
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create new FC
&amp;nbsp;&amp;nbsp;&amp;nbsp; for tmp_fc in [start, end]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(tmp,p.basename(tmp_fc),'POINT','','','',SR)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddFields(tmp_fc, join_field, field_type, field_length)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Insert new rows
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in_fields = ['Line_ID','X_Coord','Y_Coord','Length',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; join_field,'JOIN_FID','Type','SHAPE@XY']
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(tmp_fc, in_fields) as rows:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in sorted(coords.iteritems()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if tmp_fc == start:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.insertRow((k,v[0],v[1],v[4],v[5],v[6],'Start',v[7]))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.insertRow((k,v[2],v[3],v[4],v[5],v[6],'End',v[8]))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create output
&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(out_fc):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management([start, end], out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Created "%s"' %p.basename(out_fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('Created "%s"' %p.basename(out_fc))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if __name__ == '__main__':

&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Script tool params
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = arcpy.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; points = arcpy.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = arcpy.GetParameterAsText(2)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetStartAndEndOfLine(lines, points, field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '(Elapsed time: %s)' %(str(d.now() - startTime)[:-3])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('ERROR')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.GetMessages(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Stand alone testing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = r'C:\Testing\test2.gdb\roads'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; points = r'C:\Testing\test2.gdb\Roads_Points'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = 'NAME1'
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetStartAndEndOfLine(lines, points, field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '(Elapsed time: %s)' %(str(d.now() - startTime)[:-3])

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This was marginally slower though @ (Elapsed time: 0:00:06.740)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:25:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566852#M1870</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T00:25:14Z</dc:date>
    </item>
    <item>
      <title>Re: Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566853#M1871</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I know this is an old thread but i was hoping you could answer, in the&amp;nbsp; code above, specifically&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; background-color: #f6f6f6;"&gt;for k,v in sorted(coords.iteritems()):&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; background-color: #f6f6f6;"&gt;What does the k represent?&amp;nbsp; I can see the V's are parts of the coords array but i can't figure out what k refers to.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; background-color: #f6f6f6;"&gt;thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Aug 2015 17:26:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566853#M1871</guid>
      <dc:creator>NicholasReseburg1</dc:creator>
      <dc:date>2015-08-14T17:26:04Z</dc:date>
    </item>
    <item>
      <title>Re: Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566854#M1872</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When in doubt, 'print' to find out:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;gt;&amp;gt;&amp;gt; coords = {}
... coords[1] = ['blah1','blah2']
... coords[2] = ['blah3','blah4']
... for k,v in coords.iteritems():
...&amp;nbsp;&amp;nbsp;&amp;nbsp; print (k,v)
...&amp;nbsp;&amp;nbsp; 
(1, ['blah1', 'blah2'])
(2, ['blah3', 'blah4'])&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;k,v is code for key, value.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 00:25:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566854#M1872</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-12T00:25:17Z</dc:date>
    </item>
    <item>
      <title>Re: Python script to create a point WITH attributes values</title>
      <link>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566855#M1873</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks darren!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jan 2016 22:39:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/python-script-to-create-a-point-with-attributes/m-p/566855#M1873</guid>
      <dc:creator>NicholasReseburg1</dc:creator>
      <dc:date>2016-01-27T22:39:39Z</dc:date>
    </item>
  </channel>
</rss>

