Puis-je créer, réunir et intersecter des entités multipatch 3D à l'aide de l'extension 3D Analyst (ArcGIS 10)?

9

Je suis sur ArcGIS 10. Selon toute la documentation que j'ai lue, 3D Analyst devrait être capable de faire ce que j'essaye de faire, mais je rencontre problème après problème et je suis presque prêt à donner et trouver un moyen plus simple de répondre à la question qu'on me pose.

En un mot, j'ai plusieurs couches dont j'ai besoin pour se croiser ou s'unir en 3D. Certains sont des points (des milliers d'entre eux, qui représentent chacun un volume 3D, soit un cube ou une sphère, dont les dimensions sont des valeurs d'attribut), certains sont des polygones. Je suis presque sûr que les outils 3D Union et 3D Intersect ne fonctionnent que sur les fonctionnalités Multipatch, donc je dois d'abord les convertir toutes en fonctionnalités Multipatch.

Le principal problème que je vais avoir à ce jour est que les outils 3D Analyst Union et Intersection refusent de fonctionner sur les caractéristiques multipatchs qui ne sont pas « fermée », et je ne peux pas sembler forcer ArcGIS pour créer multipatches qui sont fermés. J'ai essayé de convertir ma couche polygone unique (8 entités) en multipatch à la fois en l'extrudant dans Arcscene en utilisant sa hauteur et en la convertissant en multipatch et également en utilisant l'outil "Extruder entre", et ils produisent tous les deux des multipatches fermés et certains qui ne le sont pas. J'ai essayé de convertir mes points en sphères, en utilisant un exemple que j'ai trouvé sur le site d'ESRI ici:

http://www.esri.com/news/arcuser/1010/3danalysis.html

Ce qui vous indique de symboliser les points sous forme de sphères, en utilisant un attribut comme rayon, puis utilisez l'outil "Calque 3D vers classe d'entités" pour les transformer en multipatch. Cela produit également des multipatchs qui ne sont pas fermés et donc inutiles. Je n'ai pas encore abordé la conversion de points en cubes 3D.

Donc, si quelqu'un connaît un moyen de créer de manière fiable des multipatchs fermés à partir de couches de polygones 2D et / ou de points centraux (avec des attributs décrivant les dimensions), faites-le moi savoir. Toute solution logicielle alternative serait également très bien, je ne suis pas lié à ESRI. En effet, après avoir déblayé avec cela au cours des derniers jours et réalisé que les propres outils d'ESRI créent des multipatchs qui ne peuvent pas être utilisés avec de nombreux outils 3D Analyst, une alternative serait préférable.

ETA: Ce que je recherche en fin de compte, c'est de calculer le volume d'espace occupé par (par exemple) des cubes avec une valeur d'attribut de X où ils coupent des sphères avec une valeur de Y (bien sûr, j'ai beaucoup, beaucoup de valeurs de X et Y à exécuter).

Dan C
la source
Bonne question. Les sphères ne sont pas fermées? Pouvez-vous obtenir un volume à partir des multipatchs de sphère créés avec la technique 3D To FC?
Jakub Sisak GeoGraphics
Je peux calculer les volumes (en utilisant l'outil Ajouter des informations Z) pour les multipatchs fermés, bien que je ne les ai pas encore essayés avec les sphères. Le problème que je rencontre est qu'il ne semble pas y avoir de moyen fiable de créer des multipatchs qui sont «fermés», ou de forcer ArcGIS à fermer ceux qui sont ouverts. Ce qui est exaspérant, car j'utilise les outils d'ESRI pour les créer en premier lieu. On pourrait penser que leurs propres outils créeraient des entités correctement construites (apparemment, pour qu'un multipatch soit "fermé", ses sommets doivent être créés dans un certain ordre).
Dan C
je crois que seul un multipatch qui a un volume peut être fermé. Vous ne pouvez pas fermer un multipatch de polygone par exemple, mais un multipatch de polygone extrudé doit être fermé. La raison pour laquelle je posais des questions sur les sphères est que seuls les multipatchs fermés peuvent être réunis / intersectés. Vous pouvez également uniquement obtenir du volume (Ajouter des informations Z) à partir d'un multipatch fermé, donc techniquement, si vous pouvez obtenir un volume, il peut être intersecté et réuni avec un autre multipatch fermé.
Jakub Sisak GeoGraphics
C'est le problème que j'ai: j'extrude des polygones mais quand je les convertis en multipatchs, ils ne sont pas tous fermés. Et il ne semble pas y avoir de moyen de les fermer.
Dan C

Réponses:

8

Pour fermer une fonction multipatch, elle doit entourer complètement un volume. Les entités multipatch créées avec l' outil Interpoler multipatch vers polygone (à l'aide d'une surface) ne peuvent probablement pas être fermées. (Sauf si vous extrudez entre 2 surfaces TIN qui devraient produire un multipatch fermé. Personnellement, je n'ai pas eu beaucoup de succès en utilisant "Extruder entre" avec des surfaces complexes)

J'ai essayé d'exécuter un exemple avec des sphères et j'ai créé 2 classes d'entités multipatch qui se croisent. Les sphères sont fermées. J'ai également pu calculer le volume des sphères. L'intersection a réussi sans erreurs et a produit les résultats attendus. (Voir les captures d'écran ci-dessous) J'ai ensuite créé des polygones circulaires, les ai extrudés et les ai convertis en entités multipatch. L'intersection a également réussi sans erreur.

Je soupçonne que vos multipatchs de polygones ne renferment pas entièrement un volume. Comment ont-ils été créés exactement? Pouvez-vous fournir des captures d'écran? (Vous devrez peut-être créer des objets 3D solides plus complexes dans un logiciel de dessin 3D tiers car ArcGIS est très limité dans cette zone. Vous pouvez essayer de modifier le multipatch dans SketchUp par le biais de Collada puis de remplacer le modèle lorsque vous avez terminé de modifier ) ArcScene 3D Editor -> Remplacer par le modèle (cela devrait être possible selon la documentation mais je n'ai pas essayé.)

  1. Deux fonctions multipatch. (Sphères créées en utilisant une technique similaire à celle que vous avez décrite) entrez la description de l'image ici

  2. Intersection résultante de ce qui précède (les fonctionnalités sont fermées - également le volume calculé): entrez la description de l'image ici entrez la description de l'image ici

  3. Comme ci-dessus, mais en utilisant des entités multipatch créées à partir de l'extrusion de polygones: entrez la description de l'image ici

  4. Intersection résultante (polygones extrudés convertis en entités multipatch): les entités entrez la description de l'image ici "polygones" sont fermées

Jakub Sisak GeoGraphics
la source
Merci! Je pense que je l'ai maintenant avec des sphères et des couches de polygones extrudées comme entrées multipatch. Cependant, après avoir terminé une intersection 3D tout à l'heure, il semble que la couche multipatch résultante ne conserve pas les champs et les données d'attribut associés aux entités en entrée, comme le fait une intersection normale. J'ai juste les champs ObjectID et Shape. Est-ce normal? Ce sera un problème. J'obtiendrai un autre commentaire avec des détails sur les erreurs que je faisais (principalement que les polygones extrudés qui n'étaient pas fermés lors de la conversion en multipatch avaient des sections qui se chevauchaient).
Dan C
Intersect 3D (3D Analyst) - Tous les attributs des entités en entrée seront perdus. Union 3D (3D Analyst) - La classe d'entités en sortie n'aura aucun des attributs de la classe d'entités en entrée. Un tableau facultatif peut être créé pour enregistrer les fonctionnalités où elles sont réunies pour créer une nouvelle fonctionnalité. Ce sont de nouveaux concepts dans 3D Analyst introduits uniquement dans la version 9. Dans la version précédente, nous ne pouvions même pas calculer le volume multipatch. Sauf si ESRI consacre beaucoup d'énergie à l'amélioration de la modélisation 3D, ce sera toujours le maillon faible.
Jakub Sisak GeoGraphics
0

OK, voici les deux problèmes que j'ai rencontrés lors de la conversion de polygones extrudés en multipatch:

  1. Vos polygones doivent être dans un système de coordonnées projeté. Je pensais que tous les miens l'étaient, mais quelque part en chemin, j'ai raté une étape et j'essayais de convertir des polygones qui étaient en lat / long WGS84. Le projeter sur UTM a résolu ce problème et m'a permis de passer à autre chose, c'est là que j'ai découvert # 2:

  2. Vos polygones doivent entourer complètement un espace comme le dit Jakub, mais en plus, ils ne doivent apparemment entourer qu'un espace. J'ai eu quelques "pendants" sur mes polygones où ils se croisent:

donc quand je les ai extrudés, une fonction avait deux volumes fermés séparés. Cela n'a pas réussi à se convertir en un multipatch fermé. Couper le polygone au point où il se chevauche (là où la flèche pointe) et supprimer la partie à gauche le corrigeait. Cela aurait probablement fonctionné si j'avais gardé les deux parties en tant que fonctions distinctes et les extrudées séparément, mais la partie de gauche était une erreur dans mon cas.

Une fois que ces choses ont été faites, j'ai pu prendre un polygone avec une valeur de hauteur, l'extruder en utilisant sa hauteur dans ArcScene, puis utiliser l'outil Layer 3D To Feature Class pour le convertir en multipatch, et ils sont tous fermés.

Dan C
la source
1
Un autre petit problème que j'avais, étant nouveau dans 3D Analyst, est que lors de la symbolisation de points en sphères, il y a un symbole "sphère" dans le jeu de symboles ArcScene Basic, mais ce n'est pas le bon à utiliser pour une sphère 3D. Le bon est dans le jeu de symboles 3D Basic.
Dan C