<?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: cannot view the shapeFile generated from points in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1380829#M73462</link>
    <description>&lt;P&gt;There is no need to create a new class. Just a function would do. Shapefiles are obsolete with lots of limitations, use a featureclass in a filegeodatabase. Then you can have null geometry for example.&lt;/P&gt;&lt;P&gt;There are much easier ways of loading data that this painful way that is also very old.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here are 5 records of the in the PointFile&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;======================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;id, shapeId, x, y, z&lt;BR /&gt;1,1,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;BR /&gt;2,2,2197478.7284111492,1.5003076194199622E7,1570.29&lt;BR /&gt;3,3,2197459.2878189506,1.500307149703293E7,1570.29&lt;BR /&gt;4,4,2197446.2932236306,1.5003068357325058E7,1573.6321294959107&lt;BR /&gt;5,5,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here is the python program&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;===================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;arcpy&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;os&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;TextToShapefileConverter:&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;spatial_reference_id=&lt;SPAN&gt;26914&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory = input_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory = output_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id = spatial_reference_id&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference = arcpy.SpatialReference(&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;convert&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name):&lt;BR /&gt;input_text_file = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name)&lt;BR /&gt;output_shapefile_name = os.path.splitext(point_file_name)[&lt;SPAN&gt;0&lt;/SPAN&gt;] + &lt;SPAN&gt;'.shp'&lt;BR /&gt;&lt;/SPAN&gt;output_shapefile = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;&lt;SPAN&gt;"generating"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;"PolygonPointFile" &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;point_file_name:&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._create_polyline_shapefile(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file)&lt;BR /&gt;&lt;SPAN&gt;# self._create_polygon_shapefile(output_shapefile, input_text_file)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polyline_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"PairID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'PairID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;pair_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Check if a pair of points has been added&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;points&lt;BR /&gt;polyline = arcpy.Polyline(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polyline&lt;SPAN&gt;, &lt;/SPAN&gt;pair_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next pair&lt;BR /&gt;&lt;/SPAN&gt;pair_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polygon_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYGON"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"GroupID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'GroupID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;group_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;id&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;points[&lt;SPAN&gt;0&lt;/SPAN&gt;] != points[-&lt;SPAN&gt;1&lt;/SPAN&gt;]:&lt;BR /&gt;points.append(points[&lt;SPAN&gt;0&lt;/SPAN&gt;]) &lt;SPAN&gt;# Ensure the polygon is closed&lt;BR /&gt;&lt;/SPAN&gt;polygon = arcpy.Polygon(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polygon&lt;SPAN&gt;, &lt;/SPAN&gt;group_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next group&lt;BR /&gt;&lt;/SPAN&gt;group_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ == &lt;SPAN&gt;"__main__"&lt;/SPAN&gt;:&lt;BR /&gt;input_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder'&lt;BR /&gt;&lt;/SPAN&gt;output_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder\outPut'&lt;BR /&gt;&lt;/SPAN&gt;converter = TextToShapefileConverter(input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Process each file&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;filename &lt;SPAN&gt;in &lt;/SPAN&gt;os.listdir(input_directory):&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;filename.endswith(&lt;SPAN&gt;'.txt'&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;converter.convert(filename)&lt;/DIV&gt;&lt;/DIV&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 11 Feb 2024 11:22:56 GMT</pubDate>
    <dc:creator>KimOllivier</dc:creator>
    <dc:date>2024-02-11T11:22:56Z</dc:date>
    <item>
      <title>cannot view the shapeFile generated from points</title>
      <link>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1377816#M73459</link>
      <description>&lt;DIV&gt;&amp;nbsp;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to generate a shape file out of pointFile.&lt;/DIV&gt;&lt;DIV&gt;The pointFile has 5 records in it, each records is a point.&lt;/DIV&gt;&lt;DIV&gt;it has 5 columns for each records, id,ShapeID,x,y,z. id and shapeID doesn't mean anything.&lt;/DIV&gt;&lt;DIV&gt;All these points form a polygon as you can see, the first record is same as the last&lt;/DIV&gt;&lt;DIV&gt;record.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Program: I wrote a python program that will read the pointFile and outputs a shapeFile.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;There are two methods in it, 1) _create_polyline_shapefile 2) _create_polygon_shapefile&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;_create_polyline_shapefile will read the points and outputs a Line File.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;_create_polygon_shapefile will read the points and outputs a Polygon File.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;Problem: what we are facing is the output of _create_polyline_shapefile does not show graphics in ArcMap or ArcScene.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while the one created by first methods displays. The shape file can be viewed in ArcScene for 3dView or ArcMap for 2D view.&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;looking for a solution for this.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here are 5 records of the in the PointFile&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;======================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;id, shapeId, x, y, z&lt;BR /&gt;1,1,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;BR /&gt;2,2,2197478.7284111492,1.5003076194199622E7,1570.29&lt;BR /&gt;3,3,2197459.2878189506,1.500307149703293E7,1570.29&lt;BR /&gt;4,4,2197446.2932236306,1.5003068357325058E7,1573.6321294959107&lt;BR /&gt;5,5,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here is the python program&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;===================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;arcpy&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;os&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;TextToShapefileConverter:&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;spatial_reference_id=&lt;SPAN&gt;26914&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory = input_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory = output_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id = spatial_reference_id&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference = arcpy.SpatialReference(&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;convert&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name):&lt;BR /&gt;input_text_file = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name)&lt;BR /&gt;output_shapefile_name = os.path.splitext(point_file_name)[&lt;SPAN&gt;0&lt;/SPAN&gt;] + &lt;SPAN&gt;'.shp'&lt;BR /&gt;&lt;/SPAN&gt;output_shapefile = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;&lt;SPAN&gt;"generating"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;"PolygonPointFile" &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;point_file_name:&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._create_polyline_shapefile(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file)&lt;BR /&gt;&lt;SPAN&gt;# self._create_polygon_shapefile(output_shapefile, input_text_file)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polyline_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"PairID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'PairID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;pair_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Check if a pair of points has been added&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;points&lt;BR /&gt;polyline = arcpy.Polyline(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polyline&lt;SPAN&gt;, &lt;/SPAN&gt;pair_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next pair&lt;BR /&gt;&lt;/SPAN&gt;pair_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polygon_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYGON"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"GroupID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'GroupID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;group_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;id&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;points[&lt;SPAN&gt;0&lt;/SPAN&gt;] != points[-&lt;SPAN&gt;1&lt;/SPAN&gt;]:&lt;BR /&gt;points.append(points[&lt;SPAN&gt;0&lt;/SPAN&gt;]) &lt;SPAN&gt;# Ensure the polygon is closed&lt;BR /&gt;&lt;/SPAN&gt;polygon = arcpy.Polygon(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polygon&lt;SPAN&gt;, &lt;/SPAN&gt;group_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next group&lt;BR /&gt;&lt;/SPAN&gt;group_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ == &lt;SPAN&gt;"__main__"&lt;/SPAN&gt;:&lt;BR /&gt;input_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder'&lt;BR /&gt;&lt;/SPAN&gt;output_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder\outPut'&lt;BR /&gt;&lt;/SPAN&gt;converter = TextToShapefileConverter(input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Process each file&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;filename &lt;SPAN&gt;in &lt;/SPAN&gt;os.listdir(input_directory):&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;filename.endswith(&lt;SPAN&gt;'.txt'&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;converter.convert(filename)&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 02 Feb 2024 21:01:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1377816#M73459</guid>
      <dc:creator>mokamuralidhar</dc:creator>
      <dc:date>2024-02-02T21:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: cannot view the shapeFile generated from points</title>
      <link>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1379564#M73460</link>
      <description>&lt;P&gt;Looking at your Y values this is pretty much a straight line. You are probably breaking polygon rules with self intersections when you close the polygon.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Feb 2024 09:25:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1379564#M73460</guid>
      <dc:creator>Clubdebambos</dc:creator>
      <dc:date>2024-02-08T09:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: cannot view the shapeFile generated from points</title>
      <link>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1379787#M73461</link>
      <description>&lt;P&gt;Thanks for looking into this. This is actually a trapezoid. If you use the method&amp;nbsp;&lt;SPAN&gt;def _create_polyline_shapefile. It creates the line shape. The problem is actually when it is generated as a polygon shape, which is the other method "_create_polygon_shapefile". When we try to generate as a shape, it does not show the graphics.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Feb 2024 16:52:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1379787#M73461</guid>
      <dc:creator>mokamuralidhar</dc:creator>
      <dc:date>2024-02-08T16:52:37Z</dc:date>
    </item>
    <item>
      <title>Re: cannot view the shapeFile generated from points</title>
      <link>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1380829#M73462</link>
      <description>&lt;P&gt;There is no need to create a new class. Just a function would do. Shapefiles are obsolete with lots of limitations, use a featureclass in a filegeodatabase. Then you can have null geometry for example.&lt;/P&gt;&lt;P&gt;There are much easier ways of loading data that this painful way that is also very old.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here are 5 records of the in the PointFile&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;======================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;id, shapeId, x, y, z&lt;BR /&gt;1,1,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;BR /&gt;2,2,2197478.7284111492,1.5003076194199622E7,1570.29&lt;BR /&gt;3,3,2197459.2878189506,1.500307149703293E7,1570.29&lt;BR /&gt;4,4,2197446.2932236306,1.5003068357325058E7,1573.6321294959107&lt;BR /&gt;5,5,2197490.3821680555,1.5003079009938888E7,1573.2872741540364&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Here is the python program&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;===================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;arcpy&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;os&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;TextToShapefileConverter:&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;spatial_reference_id=&lt;SPAN&gt;26914&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory = input_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory = output_directory&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id = spatial_reference_id&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference = arcpy.SpatialReference(&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference_id)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;convert&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name):&lt;BR /&gt;input_text_file = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;point_file_name)&lt;BR /&gt;output_shapefile_name = os.path.splitext(point_file_name)[&lt;SPAN&gt;0&lt;/SPAN&gt;] + &lt;SPAN&gt;'.shp'&lt;BR /&gt;&lt;/SPAN&gt;output_shapefile = os.path.join(&lt;SPAN&gt;self&lt;/SPAN&gt;.output_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;&lt;SPAN&gt;"generating"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile_name&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;"PolygonPointFile" &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;point_file_name:&lt;BR /&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._create_polyline_shapefile(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file)&lt;BR /&gt;&lt;SPAN&gt;# self._create_polygon_shapefile(output_shapefile, input_text_file)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polyline_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"PairID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'PairID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;pair_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Check if a pair of points has been added&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;print &lt;/SPAN&gt;points&lt;BR /&gt;polyline = arcpy.Polyline(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polyline&lt;SPAN&gt;, &lt;/SPAN&gt;pair_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next pair&lt;BR /&gt;&lt;/SPAN&gt;pair_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_create_polygon_shapefile&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;input_text_file):&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;arcpy.CreateFeatureclass_management(&lt;BR /&gt;os.path.dirname(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;os.path.basename(output_shapefile)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;"POLYGON"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_z&lt;/SPAN&gt;=&lt;SPAN&gt;"ENABLED"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;has_m&lt;/SPAN&gt;=&lt;SPAN&gt;"DISABLED"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;=&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference)&lt;BR /&gt;arcpy.AddField_management(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"GroupID"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"LONG"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;cursor = arcpy.da.InsertCursor(output_shapefile&lt;SPAN&gt;, &lt;/SPAN&gt;[&lt;SPAN&gt;'SHAPE@'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'GroupID'&lt;/SPAN&gt;])&lt;BR /&gt;points = []&lt;BR /&gt;group_id = &lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;with &lt;/SPAN&gt;&lt;SPAN&gt;open&lt;/SPAN&gt;(input_text_file&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'r'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;(file) &lt;SPAN&gt;# Skip header&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;line &lt;SPAN&gt;in &lt;/SPAN&gt;file:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;line.strip():&lt;BR /&gt;id&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;x&lt;SPAN&gt;, &lt;/SPAN&gt;y&lt;SPAN&gt;, &lt;/SPAN&gt;z = line.split(&lt;SPAN&gt;','&lt;/SPAN&gt;)&lt;BR /&gt;point = arcpy.Point(&lt;SPAN&gt;float&lt;/SPAN&gt;(x)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(y)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;float&lt;/SPAN&gt;(z))&lt;BR /&gt;points.append(point)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(points) == &lt;SPAN&gt;5&lt;/SPAN&gt;:&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;points[&lt;SPAN&gt;0&lt;/SPAN&gt;] != points[-&lt;SPAN&gt;1&lt;/SPAN&gt;]:&lt;BR /&gt;points.append(points[&lt;SPAN&gt;0&lt;/SPAN&gt;]) &lt;SPAN&gt;# Ensure the polygon is closed&lt;BR /&gt;&lt;/SPAN&gt;polygon = arcpy.Polygon(arcpy.Array(points)&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.spatial_reference&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;cursor.insertRow([polygon&lt;SPAN&gt;, &lt;/SPAN&gt;group_id])&lt;BR /&gt;points = [] &lt;SPAN&gt;# Reset for next group&lt;BR /&gt;&lt;/SPAN&gt;group_id += &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;del &lt;/SPAN&gt;cursor&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ == &lt;SPAN&gt;"__main__"&lt;/SPAN&gt;:&lt;BR /&gt;input_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder'&lt;BR /&gt;&lt;/SPAN&gt;output_directory = &lt;SPAN&gt;r'C:\Tutorial\GIS\ArcPyTutorial\Data\MyTestFolder\outPut'&lt;BR /&gt;&lt;/SPAN&gt;converter = TextToShapefileConverter(input_directory&lt;SPAN&gt;, &lt;/SPAN&gt;output_directory)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Process each file&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;for &lt;/SPAN&gt;filename &lt;SPAN&gt;in &lt;/SPAN&gt;os.listdir(input_directory):&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;filename.endswith(&lt;SPAN&gt;'.txt'&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;converter.convert(filename)&lt;/DIV&gt;&lt;/DIV&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 11 Feb 2024 11:22:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/cannot-view-the-shapefile-generated-from-points/m-p/1380829#M73462</guid>
      <dc:creator>KimOllivier</dc:creator>
      <dc:date>2024-02-11T11:22:56Z</dc:date>
    </item>
  </channel>
</rss>

