<?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 Polygon from GeoJson to Shp conversion arcpy script is being simplified in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11310#M932</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm trying to make a script that converts the GeoJson format into a shapefile.&amp;nbsp; For the most part, the script in complete, but I'm having an odd issue with the output polygon.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The JSON geometry has a large number of vertices, but ArcMap seem to be GREATLY simplifying the output polygon when arcpy.Polygon(arcpy.Array(point, point, point ...)) happens.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The script I'm using is posted below.&amp;nbsp; Though note, I left out many of the not relevant parts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;from collections import OrderedDict import arcpy, json, os&amp;nbsp; arcpy.env.overwriteOutput = True&amp;nbsp; def createPolygon(data): &amp;nbsp;&amp;nbsp;&amp;nbsp; """ &amp;nbsp;&amp;nbsp;&amp;nbsp; This function receives a python dictionary representing the JSON array and its geometry &amp;nbsp;&amp;nbsp;&amp;nbsp; type.&amp;nbsp; It will create a feature class of that geometry type and add in the features geometry &amp;nbsp;&amp;nbsp;&amp;nbsp; and attributes (if any). &amp;nbsp;&amp;nbsp;&amp;nbsp; """&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Create feature class and define as WGS84 &amp;nbsp;&amp;nbsp;&amp;nbsp; outFC = arcpy.CreateFeatureclass_management(outLocation,outName,"POLYGON") &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DefineProjection_management(outFC, coordinateSystem) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; features = data["features"] &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Get a list of fields and add them to the feature class &amp;nbsp;&amp;nbsp;&amp;nbsp; fields = [key for key, value in features[0]["properties"].iteritems()] &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if len(fields) != 0: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # dummyField is used because ArcMap requires at least one non-required field. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outFC,"dummyField","TEXT") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(outFC,"Id") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outFC,field,"TEXT") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(outFC,"dummyField") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Create search cursor &amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = arcpy.da.InsertCursor(outFC, ["SHAPE@"] + fields) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Create Arcpy Array to add Polygon verticies too. &amp;nbsp;&amp;nbsp;&amp;nbsp; array = arcpy.Array()&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Building Polygon &amp;nbsp;&amp;nbsp;&amp;nbsp; n = 0 &amp;nbsp;&amp;nbsp;&amp;nbsp; for feature in features:&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n += 1 &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 geom in feature["geometry"]["coordinates"]: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for coords in geom: &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; # Adding verticies to array &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; array.add(arcpy.Point( float(coords[0]), float(coords[1]) )) &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;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get attributes for insert cursor fields &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attributes = [attr for key, attr in feature["properties"].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; # Some debugging prints&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print len(array)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # this reads 150 arcpy.Point objects &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print arcpy.Polygon(array).pointCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This only reads 15 points, none of which are the original points.&amp;nbsp; Somehow ArcMap is GREATLY simplifyig this geometry. &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; cursor.insertRow([arcpy.Polygon(array)] + attributes) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array.removeAll() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; del cursor&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsonFileName = "inputjsonfile.json" shpOutput = "C:\Path\To\Output\Location\polygon.shp"&amp;nbsp; outLocation = os.path.dirname(shpOutput) outName = os.path.basename(shpOutput)&amp;nbsp; coordinateSystem = arcpy.SpatialReference(4326)&amp;nbsp; with open(jsonFileName,"r") as json_file: &amp;nbsp;&amp;nbsp;&amp;nbsp; data = json.load(json_file, object_pairs_hook=OrderedDict) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Get geometry type &amp;nbsp;&amp;nbsp;&amp;nbsp; geomType = data["features"][0]["geometry"]["type"]&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if geomType == "Polygon": &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createPolygon(data)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The inputs and outputs have been hardcoded for this example, but eventually it will end up as a Python Toolbox &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For testing purposes, below is the JSON file I was trying to convert in this example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"Id": "0", "NAME": "Untitled Polygon", "DESCR": " ", "FOLDER": " "}, "geometry": {"bbox": [-105.6266922454426, 33.309856365277824, -105.61766863755298, 33.31951402483418], "coordinates": [[["-105.623511", "33.317474"], ["-105.623508", "33.317525"], ["-105.623477", "33.317550"], ["-105.623410", "33.317651"], ["-105.623255", "33.317725"], ["-105.623129", "33.317825"], ["-105.623035", "33.317875"], ["-105.622915", "33.317873"], ["-105.622794", "33.317871"], ["-105.622647", "33.317792"], ["-105.622592", "33.317715"], ["-105.622505", "33.317612"], ["-105.622352", "33.317536"], ["-105.622136", "33.317434"], ["-105.622015", "33.317357"], ["-105.621831", "33.317304"], ["-105.621673", "33.317253"], ["-105.621551", "33.317226"], ["-105.621368", "33.317174"], ["-105.621337", "33.317173"], ["-105.621242", "33.317223"], ["-105.621115", "33.317298"], ["-105.621108", "33.317450"], ["-105.621133", "33.317578"], ["-105.621186", "33.317732"], ["-105.621241", "33.317861"], ["-105.621356", "33.318016"], ["-105.621381", "33.318119"], ["-105.621464", "33.318275"], ["-105.621482", "33.318507"], ["-105.621507", "33.318610"], ["-105.621497", "33.318791"], ["-105.621424", "33.318972"], ["-105.621257", "33.319179"], ["-105.621129", "33.319230"], ["-105.620967", "33.319334"], ["-105.620837", "33.319411"], ["-105.620739", "33.319489"], ["-105.620644", "33.319514"], ["-105.620457", "33.319512"], ["-105.620182", "33.319507"], ["-105.619851", "33.319423"], ["-105.619417", "33.319278"], ["-105.619082", "33.319195"], ["-105.618724", "33.319046"], ["-105.618416", "33.318900"], ["-105.618238", "33.318741"], ["-105.618051", "33.318500"], ["-105.617920", "33.318313"], ["-105.617896", "33.318209"], ["-105.617900", "33.318081"], ["-105.617877", "33.317926"], ["-105.617718", "33.317613"], ["-105.617669", "33.317381"], ["-105.617673", "33.317152"], ["-105.617674", "33.316846"], ["-105.617685", "33.316565"], ["-105.617703", "33.316411"], ["-105.617751", "33.316283"], ["-105.617761", "33.316181"], ["-105.617843", "33.315979"], ["-105.617887", "33.315878"], ["-105.617963", "33.315777"], ["-105.618075", "33.315652"], ["-105.618192", "33.315553"], ["-105.618349", "33.315406"], ["-105.618570", "33.315260"], ["-105.618872", "33.315167"], ["-105.619245", "33.315051"], ["-105.619605", "33.314985"], ["-105.619946", "33.314869"], ["-105.620061", "33.314845"], ["-105.620328", "33.314726"], ["-105.620592", "33.314631"], ["-105.620778", "33.314487"], ["-105.621017", "33.314367"], ["-105.621149", "33.314248"], ["-105.621169", "33.314104"], ["-105.621163", "33.313937"], ["-105.621128", "33.313771"], ["-105.621072", "33.313558"], ["-105.620928", "33.313370"], ["-105.620776", "33.313155"], ["-105.620615", "33.312986"], ["-105.620475", "33.312766"], ["-105.620310", "33.312694"], ["-105.620201", "33.312646"], ["-105.620090", "33.312573"], ["-105.619838", "33.312450"], ["-105.619617", "33.312304"], ["-105.619412", "33.312105"], ["-105.619183", "33.311882"], ["-105.619016", "33.311614"], ["-105.618821", "33.311273"], ["-105.618801", "33.311131"], ["-105.618895", "33.310834"], ["-105.619041", "33.310570"], ["-105.619432", "33.310313"], ["-105.619758", "33.310103"], ["-105.620176", "33.309952"], ["-105.620624", "33.309856"], ["-105.621002", "33.309897"], ["-105.621464", "33.309992"], ["-105.621709", "33.310086"], ["-105.621857", "33.310213"], ["-105.621952", "33.310367"], ["-105.621971", "33.310478"], ["-105.622093", "33.310607"], ["-105.622246", "33.310834"], ["-105.622495", "33.311170"], ["-105.622773", "33.311533"], ["-105.622925", "33.311762"], ["-105.623194", "33.312341"], ["-105.623289", "33.312598"], ["-105.623422", "33.312690"], ["-105.623501", "33.312759"], ["-105.623716", "33.312825"], ["-105.623853", "33.312845"], ["-105.623964", "33.312868"], ["-105.624024", "33.312869"], ["-105.624166", "33.312943"], ["-105.624244", "33.313062"], ["-105.624417", "33.313212"], ["-105.624569", "33.313244"], ["-105.624833", "33.313324"], ["-105.625213", "33.313455"], ["-105.625559", "33.313582"], ["-105.625844", "33.313705"], ["-105.625987", "33.313779"], ["-105.626188", "33.313878"], ["-105.626360", "33.313976"], ["-105.626472", "33.314123"], ["-105.626612", "33.314319"], ["-105.626692", "33.314538"], ["-105.626684", "33.314782"], ["-105.626677", "33.315003"], ["-105.626641", "33.315224"], ["-105.626548", "33.315396"], ["-105.626513", "33.315569"], ["-105.626420", "33.315741"], ["-105.625983", "33.316182"], ["-105.625570", "33.316456"], ["-105.625347", "33.316607"], ["-105.625094", "33.316757"], ["-105.624817", "33.316904"], ["-105.624307", "33.317195"], ["-105.624008", "33.317363"], ["-105.623802", "33.317433"], ["-105.623655", "33.317479"], ["-105.623511", "33.317474"]]], "type": "Polygon"}}]}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help is appreciated,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Matt&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Jan 2014 20:51:59 GMT</pubDate>
    <dc:creator>MattEiben</dc:creator>
    <dc:date>2014-01-13T20:51:59Z</dc:date>
    <item>
      <title>Polygon from GeoJson to Shp conversion arcpy script is being simplified</title>
      <link>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11310#M932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm trying to make a script that converts the GeoJson format into a shapefile.&amp;nbsp; For the most part, the script in complete, but I'm having an odd issue with the output polygon.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The JSON geometry has a large number of vertices, but ArcMap seem to be GREATLY simplifying the output polygon when arcpy.Polygon(arcpy.Array(point, point, point ...)) happens.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The script I'm using is posted below.&amp;nbsp; Though note, I left out many of the not relevant parts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;from collections import OrderedDict import arcpy, json, os&amp;nbsp; arcpy.env.overwriteOutput = True&amp;nbsp; def createPolygon(data): &amp;nbsp;&amp;nbsp;&amp;nbsp; """ &amp;nbsp;&amp;nbsp;&amp;nbsp; This function receives a python dictionary representing the JSON array and its geometry &amp;nbsp;&amp;nbsp;&amp;nbsp; type.&amp;nbsp; It will create a feature class of that geometry type and add in the features geometry &amp;nbsp;&amp;nbsp;&amp;nbsp; and attributes (if any). &amp;nbsp;&amp;nbsp;&amp;nbsp; """&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Create feature class and define as WGS84 &amp;nbsp;&amp;nbsp;&amp;nbsp; outFC = arcpy.CreateFeatureclass_management(outLocation,outName,"POLYGON") &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DefineProjection_management(outFC, coordinateSystem) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; features = data["features"] &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Get a list of fields and add them to the feature class &amp;nbsp;&amp;nbsp;&amp;nbsp; fields = [key for key, value in features[0]["properties"].iteritems()] &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if len(fields) != 0: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # dummyField is used because ArcMap requires at least one non-required field. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outFC,"dummyField","TEXT") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(outFC,"Id") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outFC,field,"TEXT") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(outFC,"dummyField") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Create search cursor &amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = arcpy.da.InsertCursor(outFC, ["SHAPE@"] + fields) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Create Arcpy Array to add Polygon verticies too. &amp;nbsp;&amp;nbsp;&amp;nbsp; array = arcpy.Array()&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Building Polygon &amp;nbsp;&amp;nbsp;&amp;nbsp; n = 0 &amp;nbsp;&amp;nbsp;&amp;nbsp; for feature in features:&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n += 1 &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 geom in feature["geometry"]["coordinates"]: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for coords in geom: &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; # Adding verticies to array &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; array.add(arcpy.Point( float(coords[0]), float(coords[1]) )) &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;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get attributes for insert cursor fields &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attributes = [attr for key, attr in feature["properties"].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; # Some debugging prints&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print len(array)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # this reads 150 arcpy.Point objects &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print arcpy.Polygon(array).pointCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This only reads 15 points, none of which are the original points.&amp;nbsp; Somehow ArcMap is GREATLY simplifyig this geometry. &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; cursor.insertRow([arcpy.Polygon(array)] + attributes) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array.removeAll() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; del cursor&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsonFileName = "inputjsonfile.json" shpOutput = "C:\Path\To\Output\Location\polygon.shp"&amp;nbsp; outLocation = os.path.dirname(shpOutput) outName = os.path.basename(shpOutput)&amp;nbsp; coordinateSystem = arcpy.SpatialReference(4326)&amp;nbsp; with open(jsonFileName,"r") as json_file: &amp;nbsp;&amp;nbsp;&amp;nbsp; data = json.load(json_file, object_pairs_hook=OrderedDict) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Get geometry type &amp;nbsp;&amp;nbsp;&amp;nbsp; geomType = data["features"][0]["geometry"]["type"]&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if geomType == "Polygon": &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createPolygon(data)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The inputs and outputs have been hardcoded for this example, but eventually it will end up as a Python Toolbox &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For testing purposes, below is the JSON file I was trying to convert in this example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"Id": "0", "NAME": "Untitled Polygon", "DESCR": " ", "FOLDER": " "}, "geometry": {"bbox": [-105.6266922454426, 33.309856365277824, -105.61766863755298, 33.31951402483418], "coordinates": [[["-105.623511", "33.317474"], ["-105.623508", "33.317525"], ["-105.623477", "33.317550"], ["-105.623410", "33.317651"], ["-105.623255", "33.317725"], ["-105.623129", "33.317825"], ["-105.623035", "33.317875"], ["-105.622915", "33.317873"], ["-105.622794", "33.317871"], ["-105.622647", "33.317792"], ["-105.622592", "33.317715"], ["-105.622505", "33.317612"], ["-105.622352", "33.317536"], ["-105.622136", "33.317434"], ["-105.622015", "33.317357"], ["-105.621831", "33.317304"], ["-105.621673", "33.317253"], ["-105.621551", "33.317226"], ["-105.621368", "33.317174"], ["-105.621337", "33.317173"], ["-105.621242", "33.317223"], ["-105.621115", "33.317298"], ["-105.621108", "33.317450"], ["-105.621133", "33.317578"], ["-105.621186", "33.317732"], ["-105.621241", "33.317861"], ["-105.621356", "33.318016"], ["-105.621381", "33.318119"], ["-105.621464", "33.318275"], ["-105.621482", "33.318507"], ["-105.621507", "33.318610"], ["-105.621497", "33.318791"], ["-105.621424", "33.318972"], ["-105.621257", "33.319179"], ["-105.621129", "33.319230"], ["-105.620967", "33.319334"], ["-105.620837", "33.319411"], ["-105.620739", "33.319489"], ["-105.620644", "33.319514"], ["-105.620457", "33.319512"], ["-105.620182", "33.319507"], ["-105.619851", "33.319423"], ["-105.619417", "33.319278"], ["-105.619082", "33.319195"], ["-105.618724", "33.319046"], ["-105.618416", "33.318900"], ["-105.618238", "33.318741"], ["-105.618051", "33.318500"], ["-105.617920", "33.318313"], ["-105.617896", "33.318209"], ["-105.617900", "33.318081"], ["-105.617877", "33.317926"], ["-105.617718", "33.317613"], ["-105.617669", "33.317381"], ["-105.617673", "33.317152"], ["-105.617674", "33.316846"], ["-105.617685", "33.316565"], ["-105.617703", "33.316411"], ["-105.617751", "33.316283"], ["-105.617761", "33.316181"], ["-105.617843", "33.315979"], ["-105.617887", "33.315878"], ["-105.617963", "33.315777"], ["-105.618075", "33.315652"], ["-105.618192", "33.315553"], ["-105.618349", "33.315406"], ["-105.618570", "33.315260"], ["-105.618872", "33.315167"], ["-105.619245", "33.315051"], ["-105.619605", "33.314985"], ["-105.619946", "33.314869"], ["-105.620061", "33.314845"], ["-105.620328", "33.314726"], ["-105.620592", "33.314631"], ["-105.620778", "33.314487"], ["-105.621017", "33.314367"], ["-105.621149", "33.314248"], ["-105.621169", "33.314104"], ["-105.621163", "33.313937"], ["-105.621128", "33.313771"], ["-105.621072", "33.313558"], ["-105.620928", "33.313370"], ["-105.620776", "33.313155"], ["-105.620615", "33.312986"], ["-105.620475", "33.312766"], ["-105.620310", "33.312694"], ["-105.620201", "33.312646"], ["-105.620090", "33.312573"], ["-105.619838", "33.312450"], ["-105.619617", "33.312304"], ["-105.619412", "33.312105"], ["-105.619183", "33.311882"], ["-105.619016", "33.311614"], ["-105.618821", "33.311273"], ["-105.618801", "33.311131"], ["-105.618895", "33.310834"], ["-105.619041", "33.310570"], ["-105.619432", "33.310313"], ["-105.619758", "33.310103"], ["-105.620176", "33.309952"], ["-105.620624", "33.309856"], ["-105.621002", "33.309897"], ["-105.621464", "33.309992"], ["-105.621709", "33.310086"], ["-105.621857", "33.310213"], ["-105.621952", "33.310367"], ["-105.621971", "33.310478"], ["-105.622093", "33.310607"], ["-105.622246", "33.310834"], ["-105.622495", "33.311170"], ["-105.622773", "33.311533"], ["-105.622925", "33.311762"], ["-105.623194", "33.312341"], ["-105.623289", "33.312598"], ["-105.623422", "33.312690"], ["-105.623501", "33.312759"], ["-105.623716", "33.312825"], ["-105.623853", "33.312845"], ["-105.623964", "33.312868"], ["-105.624024", "33.312869"], ["-105.624166", "33.312943"], ["-105.624244", "33.313062"], ["-105.624417", "33.313212"], ["-105.624569", "33.313244"], ["-105.624833", "33.313324"], ["-105.625213", "33.313455"], ["-105.625559", "33.313582"], ["-105.625844", "33.313705"], ["-105.625987", "33.313779"], ["-105.626188", "33.313878"], ["-105.626360", "33.313976"], ["-105.626472", "33.314123"], ["-105.626612", "33.314319"], ["-105.626692", "33.314538"], ["-105.626684", "33.314782"], ["-105.626677", "33.315003"], ["-105.626641", "33.315224"], ["-105.626548", "33.315396"], ["-105.626513", "33.315569"], ["-105.626420", "33.315741"], ["-105.625983", "33.316182"], ["-105.625570", "33.316456"], ["-105.625347", "33.316607"], ["-105.625094", "33.316757"], ["-105.624817", "33.316904"], ["-105.624307", "33.317195"], ["-105.624008", "33.317363"], ["-105.623802", "33.317433"], ["-105.623655", "33.317479"], ["-105.623511", "33.317474"]]], "type": "Polygon"}}]}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help is appreciated,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Matt&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 20:51:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11310#M932</guid>
      <dc:creator>MattEiben</dc:creator>
      <dc:date>2014-01-13T20:51:59Z</dc:date>
    </item>
    <item>
      <title>Re: Polygon from GeoJson to Shp conversion arcpy script is being simplified</title>
      <link>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11311#M933</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Matt,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you specify the coordinate system when creating the polygons (lines 51 and 53 of your original code) it appears to work...&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print arcpy.Polygon(array, coordinateSystem).pointCount&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow([arcpy.Polygon(array, coordinateSystem)] + attributes)&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let me know how you get on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Stacy&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 22:04:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11311#M933</guid>
      <dc:creator>StacyRendall1</dc:creator>
      <dc:date>2014-01-13T22:04:25Z</dc:date>
    </item>
    <item>
      <title>Re: Polygon from GeoJson to Shp conversion arcpy script is being simplified</title>
      <link>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11312#M934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That did it!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I didn't see the inputs for the Polygon object:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Polygon (inputs, {spatial_reference}, {has_z}, {has_m})&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Putting the spatial reference in there worked like a charm,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks very much!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 22:11:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/polygon-from-geojson-to-shp-conversion-arcpy/m-p/11312#M934</guid>
      <dc:creator>MattEiben</dc:creator>
      <dc:date>2014-01-13T22:11:43Z</dc:date>
    </item>
  </channel>
</rss>

