Embora os objetos Geometry do arcpy não suportem curvas verdadeiras, na 10.3, a Esri implementou True Curves na API REST e, portanto, teve que implementar o suporte JSON para eles no FeatureSets. Portanto, você pode "enganar" o arcpy para fazer isso por você se criar uma curva em uma estrutura JSON .
Aqui está um exemplo: crie um arquivo JSON com curvas verdadeiras (isso usa um arco circular e uma curva de Bezier), algo como isto:
{ '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
}
}],
}
Em seguida, carregue isso em um conjunto de recursos e salve-o em uma classe Feature.
fs = arcpy.FeatureSet()
fs.load(r'C:\path_to_your_json_file.json')
arcpy.management.CopyFeatures(fs, r'in_memory\test_curve')
E bum, você tem curvas verdadeiras! Isto é o que ele criou no ArcMap:
Portanto, no seu caso, talvez você possa construir uma estrutura json convertendo os recursos originais para um conjunto de recursos e reproduzindo com o JSON, ou enquanto itera pelas linhas em um cursor de pesquisa. A matemática pode ser um pouco complicada para conseguir o que você deseja, mas definitivamente é factível.
Devo mencionar também que você não precisa formar um conjunto completo de recursos; basta passar a geometria JSON diretamente para o interior arcpy.AsShape(geojson, True)
para recuperar um objeto de geometria.