Je dois fusionner beaucoup de fichiers de formes en un seul grand fichier de formes.
Je veux donc comparer les propriétés des tables d'attributs pour voir s'il y a des différences entre les propriétés de table de chaque forme (type, longueur, précision, nom, etc.). Avec l'intention de standardiser tous les fichiers de formes
par exemple:
Existe-t-il un moyen d'imprimer une liste des propriétés de la table comme indiqué dans l'onglet 'champs' ou d'exporter les propriétés dans un .xls ou .dbf?
Ou existe-t-il un moyen automatisé de faire la normalisation? (C'est peut-être un sujet pour un nouveau fil de discussion ...)
J'utilise QGIS 1.8 (QGIS 2.2 est également possible).
Merci
Réponses:
Solution shell OSGeo4W
À mon humble avis, le moyen le plus simple d'extraire les propriétés de la table d'attributs ( schéma ) consiste à ouvrir le shell OSGeo4W (parce que vous êtes sur win os), à changer de répertoire dans votre dossier de données et à taper simplement quelque chose comme:
Il vous montrera les informations récapitulatives telles que la projection, le schéma , le nombre de fonctionnalités et les étendues. Ensuite, parce que vous avez un tas de fichiers de formes, vous pouvez faire un
FOR
cycle comme celui-ci:Cela retourne un fichier txt avec les propriétés de tous les fichiers de formes dans un répertoire (car la redirection de sortie avec
>>
ajoute chaque sortie unique auproperties.txt
fichier).Alternativement, si vous êtes intéressé par un fichier de propriétés pour chaque fichier de formes:
Concernant la standardisation, il existe plusieurs techniques. Je vous suggère d'utiliser l'
RESIZE
option de création de calque après la fusion afin de redimensionner les champs à leur taille optimale (par exemple, les champs de texte avec une longueur excessive seront raccourcis). Par exemple:Solution de script de traitement
Ouvrez la boîte à outils Traitement dans QGIS, créez un nouveau script (en cliquant sur
Scripts
->Tools
->Create new script
) et tapez:Enregistrez-le comme vous le souhaitez, par exemple
ogrinfo_so.py
. Ensuite, un nouveau scriptogrinfo (summary only)
apparaîtra dans la boîte à outils Traitement ->Scripts
->User script
groupe. Il peut être exécuté tel quel ou en mode batch.La même opération est possible afin de redimensionner la longueur du champ, comme décrit précédemment:
Un nouveau script appelé
Resize fields
sera disponible dans la boîte à outils Traitement ->Scripts
->User scripts
groupe. Profitez-en!la source
Les fichiers de formes conservent leurs attributs dans des fichiers .dbf, ne pouvez-vous pas simplement ouvrir le fichier .dbf directement dans un programme comme libreoffice calc puis imprimer à partir de là? Si vous n'avez pas trop de fichiers, cela devrait fonctionner.
Une autre option serait d'écrire un script python qui imprime (sur la console) directement les attributs des fonctionnalités, ou même les compare pour vous. Vous pouvez accéder aux attributs d'une fonctionnalité comme celle-ci:
Vous devez le faire pour chaque fichier de formes que vous comparez et voir si
plus d'informations ici: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/
la source
En suivant le thème .dbf, avez-vous cherché directement des comparateurs .dbf? Je n'ai pas trouvé de solution gratuite immédiatement, mais quelque chose comme: dbfCompare
la source
Essayez certains des extracteurs de métadonnées DBF disponibles. La plupart d'entre eux prennent en charge le mode ligne de commande, de sorte que plusieurs extractions de métadonnées peuvent être exécutées en lot.
http://geology.usgs.gov/tools/metadata/tools/doc/dbfmeta.html http://sco.wisc.edu/wisclinc/metatool/dbfmeta.htm
la source
Ouvrez simplement le fichier .dbf dans Libreoffice Calc ou Excel, enregistrez-le simplement en tant que nouveau fichier. J'ai économisé dessus une fois et le fichier de formes n'était pas bon.
la source