Si bien los objetos de geometría arcpy no admiten curvas verdaderas, en 10.3, Esri implementó Curvas verdaderas en la API REST y, por lo tanto, tuvo que implementar el soporte JSON para ellos en FeatureSets. Por lo tanto, puede "engañar" a Arcpy para que haga esto por usted si crea una curva en una estructura JSON .
Aquí hay un ejemplo: cree un archivo JSON con curvas verdaderas (esto usa un arco circular y una curva de Bezier), algo como esto:
{ 'fieldAliases': {
'Id': 'Id',
'FID': 'FID'
},
'fields': [{
'alias': 'FID',
'type': 'esriFieldTypeOID',
'name': 'FID'
}, {
'alias': 'Id',
'type': 'esriFieldTypeInteger',
'name': 'Id'
}],
'displayFieldName': '',
'spatialReference': {
'wkid': 103734,
'latestWkid': 103734
},
'geometryType': 'esriGeometryPolyline'
'features': [{
'geometry': {
"curvePaths":[[
[6,3],[5,3],
{"b":[[3,2],[6,1],[2,4]]},
[1,2],
{"a":[[0,2],[0,3],0,0,2.094395102393195,1.83,0.33333333]}
]]
},
'attributes': {
'Id': 0,
'FID': 0
}
}],
}
Luego, cárguelo en un conjunto de características y guárdelo en una clase de entidad.
fs = arcpy.FeatureSet()
fs.load(r'C:\path_to_your_json_file.json')
arcpy.management.CopyFeatures(fs, r'in_memory\test_curve')
Y boom, tienes curvas verdaderas! Esto es lo que creó en ArcMap:
Entonces, en su caso, tal vez pueda construir una estructura json al convertir las características originales en un conjunto de características y jugar con el JSON, o al iterar a través de filas en un cursor de búsqueda. Las matemáticas pueden ser un poco complicadas para obtener lo que quieres, pero definitivamente es factible.
También debo mencionar que no tiene que formar un conjunto completo de características, simplemente puede pasar la geometría JSON directamente al arcpy.AsShape(geojson, True)
también para recuperar un objeto de geometría.