À l'aide d'ArcGIS 10.0, est-il possible de réorganiser les champs dans une géodatabase fichier et de conserver l'ordre dans la base de données?
Nous avons envisagé d'exporter vers XML et d'écrire un analyseur pour modifier l'ordre des champs, puis de recréer une nouvelle base de données à partir du XML. Cela semble être un processus laborieux.
Une autre idée est d'importer les définitions de champs existantes dans Excel, de les réorganiser, d'exporter vers CSV, puis d'écrire un script Python pour créer ces champs dans une nouvelle géodatabase. Existe-t-il un script comme celui-ci, avant de l'écrire à partir de zéro?
Malheureusement, ArcGIS Diagrammer ne semble pas prendre en charge la réorganisation des champs.
Existe-t-il des scripts ou des hacks que nous pourrions utiliser pour simplifier ce processus?
Réponses:
Comme mentionné dans les commentaires, vous pouvez réorganiser les champs avec ArcGIS Diagrammer. J'ai posté une étape plus générale dans cette réponse: Comment mettre à jour la propriété length d'un champ de classe d'entités?
la source
En réponse à une autre question, j'ai dit qu'il était possible d'utiliser des statistiques récapitulatives pour faire l'équivalent de PULLITEMS (ancien parler pour les champs de réorganisation). Cette technique fonctionne bien sur les tables uniquement, mais il existe un autre script maintenant qui indique qu'il fonctionne à la fois sur les classes d'entités et sur la table.
Je recommanderais également les champs Répondre à la réorganisation en permanence à l'aide de l'outil ArcGIS Make Query Table? qui a été inspiré par la réponse de @klewis à celle-ci.
la source
La version gratuite de ET Geowizards fera cela. De base -> Trier les formes. Je viens de le tester sur une géodatabase fichier v10 et cela fonctionne. Il doit cependant créer une nouvelle classe d'entités.
la source
Si vous n'avez pas Visio pour Diagramer - Toutes les autres réponses ici interrompent les jointures. J'ai trouvé que cela fonctionnait bien dans mon cas:
la source
Vous devez exécuter MakeTableQuery à partir du jeu d'outils Couches et vues de tableau pour réorganiser les champs. Dans la documentation, l'ordre des champs dans la liste des champs indique l'ordre dans lequel les champs apparaîtront dans la couche de sortie ou la vue tabulaire. De plus, si une colonne Forme est ajoutée à la liste des champs, le résultat est un calque; sinon, c'est une vue de table. Ceci est disponible avec n'importe quel niveau de licence.
la source
Avec l' outil de fusion , vous pouvez facilement réorganiser les champs de façon permanente. Il fonctionne avec des tables et des classes d'entités. La réorganisation peut être effectuée via un script python et même avec la boîte de dialogue Outil (en supprimant un champ et en l'ajoutant à nouveau dans la boîte de dialogue). Bien que la réorganisation via la boîte de dialogue ne soit pas une approche parfaite.
Il est recommandé d'utiliser l'outil de fusion une fois, puis d'utiliser Copier comme extrait de code Python , puis de modifier manuellement l'ordre des champs, puis de coller le code Python dans les fenêtres Python.
Voici un script python qui utilise l'outil de fusion pour réorganiser les champs (copié à partir d' ici )
USAGE:
la source
Il existe une extension gratuite d'Esri appelée X-Ray qui contient un outil conçu pour réorganiser les champs. A fonctionné très bien pour nous et est facile à utiliser.
la source
Jusqu'à présent, la méthode la plus efficace que j'ai trouvée pour renommer les champs, modifier leur ordre par défaut et un certain nombre d'autres choses consiste à utiliser Microsoft Access:
GDB_
, ouvrez les tables en mode de conception de tableRemarques:
Ayez toujours une sauvegarde de courant. Vous jouez directement avec la structure GDB interne et vous pouvez facilement mettre vos données à la poubelle en modifiant la base de données au point qu'ArcGIS ne sait plus comment la lire.
Certains mots clés réservés du côté ArcGIS ne peuvent pas être utilisés pour les noms de champ. Access se fera un plaisir de créer ou de renommer des champs avec ces mots-clés, mais lorsque vous les ramenez, un trait de soulignement est automatiquement ajouté. Ainsi
Current
devientCurrent_
. Notez également les mots-clés réservés Access qui se chevauchent partiellement .Les GDB personnels ont une limite de taille de fichier de 2 Go, donc la taille totale de toutes les tables et classes d'entités au sein de la GDB ne peut pas dépasser cela.
Il peut être tentant de toujours utiliser des GDB personnels pour les petits projets (<2 Go). Non. Les performances sont abyssales et il existe de subtiles différences dans la syntaxe SQL d'Access qui rendent les expressions d'étiquette, les requêtes de définition, etc. non portables.
la source
Il y a un Esri : Modifier l'ordre des noms de champ dans une table attributaire solution de .
Cela nécessite de modifier le XML, mais une fois que vous avez bien compris le schéma, vous êtes bon.
la source
Ce script Python est une sorte de méthode "ruban adhésif" pour ce faire. Il est limité à 20 champs mais pourrait facilement être ajouté afin de lui permettre de s'exécuter pour autant de champs que vos données.
Le script est conçu pour être exécuté comme un outil de script, vous devez donc configurer les paramètres dans ArcCatalog.
Les paramètres doivent être les suivants:
Code:
Je me rends compte que ce n'est pas la façon la plus jolie ou la plus efficace de le faire, mais cela fonctionne plutôt bien et n'a pris qu'une demi-heure à écrire. Je l'utilise tout le temps lorsque j'ai besoin de réorganiser des champs, et cela ne nécessite pas Diagrammer ou Microsoft Access. Bien sûr, le nombre maximum de champs peut être un problème, mais encore une fois, il peut être personnalisé dans le script.
la source