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).
la source
Réponses:
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é.)
Deux fonctions multipatch. (Sphères créées en utilisant une technique similaire à celle que vous avez décrite)
Intersection résultante de ce qui précède (les fonctionnalités sont fermées - également le volume calculé):
Comme ci-dessus, mais en utilisant des entités multipatch créées à partir de l'extrusion de polygones:
Intersection résultante (polygones extrudés convertis en entités multipatch): les entités "polygones" sont fermées
la source
OK, voici les deux problèmes que j'ai rencontrés lors de la conversion de polygones extrudés en multipatch:
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:
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.
la source