En arrière-plan, cette question est née de la tentative de réponse à une question sur Comment générer des polygones qui se chevauchent à partir des lignes sorties de l'outil Table vers Ellipse?
À l'aide de l'interface graphique d'ArcMap 10.1, il est très facile de numériser de vrais polygones de courbe en une classe d'entités de géodatabase fichier à l'aide de l' outil de construction Ellipse, mais ...
Est-il possible d'écrire des polygones elliptiques à courbe vraie lors de la lecture de lignes (arcpy.da.SearchCursor) à partir d'une table contenant un point central, un axe principal, un axe mineur et un azimut pour chacun?
J'avais espéré qu'il pourrait y avoir un jeton disponible avec arcpy.da.InsertCursor pour ce faire, mais SHAPE@
semble être limité par ce que l' objet Geometry prend en charge, et cela ne semble pas inclure de vraies courbes.
la source
Réponses:
Bien que les objets Arcpy Geometry ne prennent pas en charge les vraies courbes, à la version 10.3, Esri a implémenté les vraies courbes dans l'API REST et a donc dû implémenter la prise en charge JSON dans FeatureSets. Vous pouvez donc "tromper" arcpy en le faisant pour vous si vous créez une courbe dans une structure JSON .
Voici un exemple: créez un fichier JSON avec de vraies courbes (cela utilise un arc circulaire et une courbe de Bézier), quelque chose comme ceci:
Ensuite, chargez-le dans un ensemble d'entités et enregistrez-le dans une classe d'entités.
Et boom, vous avez de vraies courbes! Voici ce qu'il a créé dans ArcMap:
Donc, dans votre cas, vous pouvez peut-être créer une structure json en convertissant les fonctionnalités originales dans un ensemble de fonctionnalités et en jouant avec le JSON, ou en parcourant les lignes d'un curseur de recherche. Le calcul peut être un peu délicat pour obtenir ce que vous voulez, mais c'est certainement faisable.
Je dois également mentionner que vous n'avez pas besoin de former un ensemble complet de fonctionnalités, vous pouvez simplement passer la géométrie JSON directement dans le
arcpy.AsShape(geojson, True)
ainsi pour récupérer un objet géométrique.la source
Nous avons rencontré le même problème lorsque nous avons dû dessiner des centaines de parcelles de descriptions légales dans une géodatabase. Les outils COGO étaient la seule chose qui nous permettrait de dessiner et de conserver de vraies courbes. Malheureusement, les outils COGO ne sont pas scriptables.
Cependant, nous avons pu convertir les descriptions légales au format txt, ce qui nous a permis de les charger dans la fenêtre de cheminement pour créer nos formes. Selon le format de la table, vous pouvez (à l'aide de Python) convertir vos tables en txt, puis les charger dans la fenêtre de cheminement.
Aujourd'hui, j'ai essayé d'importer de vrais contours de courbe dans un FGDB et j'ai parcouru le complément de conversion Curve . Je ne sais pas si cela aide, mais je l'ai trouvé utile pour manipuler de vraies courbes.
la source