Como pano de fundo, essa questão surgiu da tentativa de responder a uma pergunta sobre Como gerar polígonos sobrepostos a partir de linhas de saída da ferramenta Table To Ellipse?
Usando a GUI do ArcMap 10.1, é muito fácil digitalizar polígonos de curva verdadeira em uma classe de recurso de geodatabase de arquivo usando a Ellipse Construction Tool ...
É possível escrever polígonos elípticos de curvas verdadeiras durante a leitura de linhas (arcpy.da.SearchCursor) de uma tabela que contém um ponto central, um eixo principal, um eixo menor e um azimute para cada um?
Eu esperava que houvesse um token disponível no arcpy.da.InsertCursor para fazer isso, mas SHAPE@
parece ser limitado pelo que o objeto Geometry suporta, e isso não parece incluir curvas verdadeiras.
fonte
Respostas:
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:
Em seguida, carregue isso em um conjunto de recursos e salve-o em uma classe Feature.
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.fonte
Tivemos o mesmo problema quando tivemos que extrair centenas de parcelas de descrições legais para um geodatabase. As ferramentas COGO eram a única coisa que nos permitia desenhar e reter curvas verdadeiras. Infelizmente, as ferramentas COGO não são programáveis.
No entanto, conseguimos converter descrições legais para o formato txt, através do qual poderíamos carregá-las na janela transversal para criar nossas formas. Dependendo do formato da tabela, você pode (usando Python) converter suas tabelas em txt e carregá-las na janela transversal.
Hoje, tenho tentado importar contornos de curvas verdadeiras para um FGDB e deparei-me com o suplemento de conversão de curvas . Não tenho certeza se isso ajuda, mas achei útil para manipular curvas verdadeiras.
fonte