ArcCatalog indique que les références spatiales ne correspondent pas entre le jeu de données d'entité et la classe d'entités avec le même système de coordonnées?

31

J'ai un jeu de données d'entité qui utilise le GCS_WGS_1984 comme système de coordonnées géographiques. Il comprend quelques classes d'entités.

Ce jeu de données d'entités se trouve lui-même dans une géodatabase fichier qui contient quelques classes d'entités supplémentaires à la racine de la gdb. L'une d'elles est une classe d'entités appelée "points" qui utilise également GCS_WGS_1984 comme système de coordonnées.

J'ai pensé qu'il serait trivial d'utiliser ArcCatalog pour faire glisser la classe d'entités de la racine de la gdb dans le jeu de données d'entités, car elles ont le même système de coordonnées. Malheureusement, ArcGIS affiche une boîte de dialogue d'erreur qui dit:

Failed to paste points
The spatial references do not match

Pourquoi cela échoue-t-il? Si le GCS de la classe d'entités et le jeu de données d'entités sont les mêmes, cela ne devrait-il pas simplement fonctionner? J'ai vérifié que c'est le cas via les boîtes de dialogue ainsi qu'en exportant le fichier prj pour l'ensemble de données et la classe et en utilisant un outil de comparaison pour comparer les deux. Ils sont identiques.

La référence spatiale d'une classe d'entités est-elle différente du système de coordonnées / projection?

Tentative de copier la classe d'entités dans le jeu de données d'entités en maintenant la touche ctrl enfoncée tout en faisant glisser les résultats dans ArcCatalog se bloquant à chaque fois (honte sur ESRI).

Je suppose que je pourrais essayer d'autres moyens de déplacer les classes d'entités. Utilisez CopyFeatures dans l'ensemble de données. Projeter de la classe d'entités dans une nouvelle classe d'entités dans le jeu de données d'entités?

mindless.panda
la source
Pouvez-vous poster le fichier gdb quelque part? Supprimez peut-être tout ou partie des fonctionnalités si elles sont grandes, comme si elles pouvaient être reproduites même avec des classes de fonction vides.
Kirk Kuykendall
4
J'aimerais avoir le temps de parcourir chaque petite bizarrerie que je rencontre avec ArcGIS, souvent je dois juste vivre avec et trouver la solution de contournement la moins agréable suivante. J'ai utilisé Data Management -> Copy Feature pour copier dans une nouvelle classe d'entités (nommé temp), supprimé l'ancienne classe d'entités, renommé la nouvelle classe d'entités pour qu'elle corresponde à l'ancienne. L'utilisation d'ArcGIS ne devrait pas nécessiter de diplôme en test logiciel. = (
mindless.panda
2
"ne devrait pas exiger un diplôme en tests de logiciels" , chat.stackexchange.com/transcript/message/1116371
matt wilkie
c'est juste le nom, ils peuvent correspondre mais s'ils ont un nom différent, il jette ce message, ignorez-le.
Si vous ne savez pas - juste SIG

Réponses:

21

Le même système de coordonnées n'est pas toujours un système de coordonnées identique . J'ai rencontré des situations où certaines opérations et certains outils de géotraitement penseront que les classes d'entités ne partagent pas un système de coordonnées commun parce que le nom descriptif de la projection diffère ("Yukon Albers" vs "Albers - personnalisé") bien que les paramètres soient identiques, ou parce que de positions décimales différentes (fausse ordonnée 500000,00 vs 500000,0000).

Ce que je fais habituellement, c'est de m'assurer que les systèmes de coordonnées du jeu de données d'entités (et de la classe F.) sont créés avec notre fichier .prj standard placé en haut de C:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(rend le CS disponible en moins de clics) et / ou en copiant le CS à partir d'un modèle de classe d'entités maître stocké quelque part toujours à portée de main.

En partie en réponse à ce problème, j'ai également un ensemble de données d'entités vide ( D:\s.gdb\_template) dans lequel j'achemine toutes nos données en tant que filtre de première étape avant de faire quoi que ce soit d'autre avec elles. Dans un système de coordonnées commun, cela garantit également que la précision et le domaine spatial, etc. sont identiques.

Mise à jour: Voir la réponse d'Andy sur l'utilisation de python, seulement 2 lignes, pour copier le système de référence spatiale du jeu de données d'entités à partir d'une classe d'entités modèles. Cela a fonctionné pour moi dans ArcCatalog 10.3 lorsque la méthode interactive de définition du SR en sélectionnant une classe d'entités pour en importer une n'a pas fonctionné.

Matt Wilkie
la source
Ces légères modifications du joli nom d'impression ou des positions décimales que vous mentionnez ne seraient-elles pas présentes dans le fichier .prj exporté avec l'option Enregistrer sous? Si oui, pourquoi les différents fichiers prj ne montrent-ils rien? Je m'étais demandé si de légères différences dans la résolution x, y pouvaient également provoquer le conflit.
mindless.panda
1
Il se peut que le fichier .prj créé avec "Enregistrer sous" ne soit pas exactement le même que celui stocké en interne. J'utilise un «filtre» de jeu de données d'
entité
3
J'ajouterai une facette supplémentaire à ceci: Parfois, des jeux de données provenant d'autres sources seront générés comme contenant des valeurs M et Z lorsqu'ils n'ont pas réellement M ou Z. J'ai trouvé que certains outils ESRI détectent le système de coordonnées Z vide comme non correspondance, malgré le fait que les systèmes de coordonnées X / Y correspondent effectivement exactement.
DPierce
16

Il s'agit d'une explication plutôt que d'une réponse.

Nous (Esri) faisons des tests assez stricts sur les noms et les valeurs du système de référence de coordonnées. Le test «est égal» ne retournera pas un échec lors de la comparaison de 500000.00 et 500000.000000, mais peut échouer si l'un est vraiment 500000.0 et l'autre 500000.00000005. Nous travaillons sur l'ajout d'alias pour les noms afin que «est égal» passe plus.

Comme mindless.panda et matt wilkie l'ont mentionné, les différences peuvent être dans les autres valeurs d'une référence spatiale. Une référence spatiale comprend le système de référence de coordonnées et les valeurs de stockage / traitement. Pour le stockage: xy, z et mesurez la résolution et l'étendue. Pour le traitement: xy, z et mesurez les valeurs de tolérance. Toute différence dans ceux-ci peut provoquer une erreur différente.

mkennedy
la source
6
votre réponse est très appréciée. J'aimerais vraiment voir la gestion des erreurs, en particulier dans ce qui est signalé à l'utilisateur, s'améliorer dans ArcGIS. Des erreurs plus informatives sont nécessaires, avec la possibilité d'obtenir des informations encore plus détaillées si vous le souhaitez. Encore une fois, merci à ESRI d'avoir pris le temps de répondre.
mindless.panda
2
J'appuie la proposition de fournir plus d'informations sur les erreurs. Au cours des deux dernières semaines, j'ai eu la même erreur ( Error code: 999999: Error executing function. Description: This is a generic error for which the cause of the error does not have an appropriate error ID. ) en raison de divers problèmes. C'est un message exaspérant à recevoir car je ne peux rien faire sauf essayer d'exécuter ce que j'ai fait une deuxième fois pour voir si l'erreur se répète, ou abandonner et utiliser une autre méthode (ou logiciel, ce qui est de plus en plus le cas).
djq
9

Voici ce que j'ai fait pour résoudre le problème (en utilisant arcpy dans ArcGIS 10.0) -

Cela suppose ce qui suit:

  • FGDB - C: \ gisdata \ Test.gdb
  • Classe d'entités - C: \ gisdata \ Test.gdb \ bldg

Vous pouvez modifier vos chemins et noms d'objet dans le code et les coller dans la fenêtre python dans ArcCatalog.

sr = arcpy.Describe(r'C:\gisdata\Test.gdb\bldg').spatialReference
arcpy.CreateFeatureDataset_management(r'C:\gisdata\Test.gdb', 'MyFeatureDataset', sr)

Une fois le jeu de données d'entité créé, vous pouvez faire glisser et déposer les classes d'entités dans.

Andy Arismendi
la source
1
Merci! Cela a fonctionné pour moi aujourd'hui dans une situation où l'utilisation de l'outil interactif pour définir le nouveau système de coordonnées du jeu de données d'entités en sélectionnant une classe d'entités existante ne fonctionnait pas (v10.3).
matt wilkie
7

Ce problème me tuait! Après avoir enregistré un tas de classes d'entités à partir d'un fichier CAO, j'ai essayé à plusieurs reprises de définir leurs systèmes de coordonnées, puis de les organiser en jeux de données d'entités. J'ai essayé à la fois de définir toutes les f.classes et f.datasets nécessaires à partir de la projection officielle WGS_1984_UTM_42N d'ESRI, ainsi que de définir la projection pour le jeu de données, puis d'importer cette projection pour les f.classes à l'aide de l'outil Définir la projection. Soit aucune classe F. ne serait collée, soit 1 et les autres ne le feraient pas.

Merci beaucoup à @Matt Wilkie dans cet article , l' outil Feature Class to Feature Class semble avoir résolu le problème. Il importe avec succès les f.classes dans le jeu de données souhaité, même si je n'ai pas encore défini le système de coordonnées pour la f.classe en question.

De plus, j'ai trouvé que le script Classe d'entités vers géodatabase (multiple) fonctionne très bien pour déplacer des classes F. dans un f.dataset en bloc, sauf que cela doit être fait de la géodatabase à une autre (pas dans un f.dataset au sein de la même géodatabase) . Cela semble être dû au fait que le script ne renomme pas automatiquement les f.classes lors de leur copie (ou demande un nouveau nom à l'opérateur, comme dans Classe d'entités vers Classe d'entités). Cependant, comme souligné par d'autres (même thread lié ci-dessus), l'erreur donnée est un 999999 générique.

Matt Cohen-Price
la source
4

J'ai eu ce problème lorsque je voulais simplement déplacer une classe d'entités dans un jeu de données d'entités dans une géodatabase. J'ai créé mon jeu de données d'entités et je me suis assuré qu'il avait le même système de coordonnées. Maintes et maintes fois, j'ai reçu "Impossible de coller xyz Les références spatiales ne correspondent pas" Le travail le plus rapide que j'ai trouvé a été d'importer la référence spatiale identique dans mon nouvel ensemble de données à partir de la classe d'entités que je voulais importer. À la deuxième étape de l'assistant "Créer un nouvel ensemble de données d'entités".

Je ne sais pas pourquoi les références spatiales diffèrent.

Alan Boatman
la source
Salut, @Alan! Merci de partager votre expérience et bienvenue sur notre site.
whuber
1
Bonjour Alan, l'assistant de création d'un nouvel ensemble de données / classe d'entités ne tire pas toujours toutes les valeurs de stockage / traitement lorsque le "système de coordonnées d'importation" est utilisé. Nous travaillons à le réparer. Je pense que c'est ce que vous rencontrez.
mkennedy
1
Je vois ce problème - même si je crée le jeu de données d'entités et utilise le mécanisme d'importation et que je sélectionne la classe d'entités, je ne peux toujours pas faire glisser / copier la classe d'entités dans le nouveau jeu de données d'entités sans l'erreur susmentionnée.
mindless.panda
3

Je pense que l'un des messages à ESRI est de fournir des informations de débogage de différences de paramètres plus spécifiques lorsque cette erreur se produit. Moi aussi, j'ai rencontré cette erreur même après avoir soigneusement contrôlé les systèmes de référence spatiale et les projections, comme je pense que la plupart des utilisateurs de SIG le font.

J'ai trouvé la procédure d'utilisation des fonctionnalités de copie d'ArcToolbox pour remédier aux messages d'erreur qui se produisent lorsque les mécanismes d'importation ou de copie sont utilisés. Ici, nous dépendons de la procédure de copie de la boîte à outils d'entités pour résoudre correctement les différences de référence ou de projection avant d'introduire la classe d'entités dans le jeu de données d'entités.

J'ai même essayé de créer le jeu de données d'entité avec un système de projection défini au moment de la création du jeu de données, puis de projeter des classes d'entités dans le jeu de données d'entité à l'aide de l'outil de projection ArcToolbox avec la même projection, et j'ai toujours reçu l'erreur décrite ici lorsque j'essaie d'importer ou copiez la classe d'entités dans l'ensemble de données.

Ces problèmes de système de coordonnées sont masqués lorsque vous utilisez des données dans ArcMap. Étant donné qu'ArcMap effectue une projection à la volée, plusieurs classes d'entités avec chacune des projections différentes peuvent être ajoutées à une carte ArcMap sans que l'utilisateur ne s'en rende compte. ArcMap vous avertira des différents systèmes de référence de coordonnées.

Derek S Wilson
la source
1

D'ACCORD. J'ai trouvé une solution! Cliquez avec le bouton droit sur le jeu de données des fonctionnalités dans GDB et cliquez sur Importer. Sélectionnez les fonctionnalités dont vous avez besoin, puis OK.

Sergei Valetov
la source
0

Essayez d'utiliser l'outil Copier les fonctionnalités sous Outils / fonctionnalités de gestion des données. Sinon, je continuais à recevoir une erreur, quoi que je fasse.

Rayner
la source
-1

Avez-vous essayé de l'intégrer à ArcMap et de définir les couches comme votre GCS_WGS_1984, puis d'exporter toutes vos couches vers une géodatabase fichier?

Si vous avez une ou plusieurs couches qui sont dans une projection différente, vous pouvez les exporter mais changer le bloc de données en GCS_WGS_1984?

Je ne suis pas sûr de cela dans ArcGIS 10. Je ne les ai pas encore mais j'utilise 9.3.1.

PROBERT
la source
1
Pourriez-vous clarifier les points 1 et 2? Ces informations ne semblent pas exactes.
Aaron