Comment changer l'ordre des fonctionnalités dans un fichier de formes?

18

J'ai un fichier de formes et je veux changer l'ordre des fonctionnalités. Est-ce possible?

Je souhaite trier les fonctionnalités du fichier de formes, car j'incorpore ce fichier de formes dans une application mobile. L'application affichera une liste de fonctionnalités, et bien que je puisse faire le tri au moment du chargement, je préfère les faire trier.

tato
la source
4
L'objectif est légitime, la moyenne ne l'est pas. Si vous avez besoin de les trier, utilisez le résultat d'une requête, ne présumez pas qu'ils sont et resteront triés.
GuillaumeC

Réponses:

6

Vous pouvez toujours ouvrir la table attributaire dans ArcMap et cliquer avec le bouton droit sur l'en-tête des colonnes et sélectionner Trier par ordre croissant ... / décroissant ... pour les champs individuels.

Pour plusieurs champs, cliquez plutôt sur Tri avancé pour sélectionner plusieurs champs.

REMARQUE: L'ajout, par exemple, d'un champ d'ID séquentiel basé sur le tri actuel (qui est temporaire, stocké uniquement dans cette carte / mxd) lors de l'utilisation de la méthode ci-dessus sera ordonné par l'OID / ObjectID d'origine de la classe d'entités.

Un ArcScripts est disponible qui triera les enregistrements de manière permanente et produira un nouveau fichier de formes: http://arcscripts.esri.com/details.asp?dbid=16771

J'espère que lorsque vous déclarez «ordre des fonctionnalités», c'est l'ordre trouvé dans la table attributaire et non l'ordre de dessin pour la table des matières / niveaux de symbologie.

SaultDon
la source
7

Voici une solution pour réécrire un nouveau fichier de formes trié à l'aide de l'outil de ligne de commande GDAL / OGR ogr2ogr.

Par exemple, un fichier de formes orig.shpa un champ numérique sur lequel volumetrier. Cette instruction SQL particulière effectue un tri inverse (avec DESC) afin que les entités avec de grandes volumevaleurs soient dessinées avant (en dessous) les entités avec de petites valeurs:

ogr2ogr -sql "SELECT * FROM orig ORDER BY volume DESC" sorted.shp orig.shp
Mike T
la source
5

Si vous avez accès à une licence arcinfo, vous pouvez utiliser le tri dans la (boîte à outils de gestion des données) qui écrit les enregistrements dans de nouveaux fichiers de formes ou le tri spatial ou d'attribut basé sur gdb fc

gotchula
la source
malheureusement, cela fonctionne avec FGDB, pas avec les formes
tato
1
tato, l'outil fonctionne avec fgdb ou shapefile comme entrée et sortie, je n'ai aucune idée de ce que signifie votre commentaire ci-dessus.
gotchula
2

Une méthode très, très RAPIDE et facile pour trier une couche de fichiers de formes (en utilisant différents champs).

1 - Exportez le fichier de formes au format CSV (sélectionnez un bon séparateur, comme un point-virgule) et ajoutez la GÉOMÉTRIE à l'aide des "options de calque" -> "AS WKT"

entrez la description de l'image ici

2 - Ouvrez file.csv avec LIBREOFFICE (calc) et utilisez MENU-> DATA-> SORT (très intuitif, puissant et TRÈS RAPIDE (Trier à la volée 50000 fonctionnalités en utilisant 3 colonnes comme clé de tri, options ascendantes et descendantes, et i avoir un cahier très lent;))

3 - Enregistrez à nouveau le fichier de LIBREOFFICE (calc) en tant que "Texte CSV" (cochez "Modifier les paramètres de filtre" et choisissez le séparateur comme "point-virgule", peu importe l'avertissement de libreoffice, enregistrez comme CSV et sélectionnez "point-virgule" comme séparateur)

4 - Depuis Qgis, ouvrez le nouveau fichier.csv (et trié) depuis le menu 'Ajouter une couche' -> Ajouter une couche de texte de délimitation.

AVANTAGES: - Très, très rapide, triez à partir de divers champs - Fonctionne bien avec les données encodées UTF_8

CONTRE: - Besoin de LIBREOFFICE (mais est-ce un logiciel open source)

Méthode alternative pour trier (maintenir les points 2 et 3, et est la plus rapide) en utilisant la console (BASH)

  • Ouvrez la console et allez où vous avez file.csv

    Supposons que vous souhaitiez trier le fichier avec la clé:

    champ6 (desc) + champ1 (ascen) + champ3 (desce)

    donc la commande sera:

    sort -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv

    REMARQUES:

    • vous pouvez ajouter -kn, n pour chaque numéro de colonne 'n' (champ) que vous aviez besoin d'ajouter à votre "clé de tri"
    • ajouter «r» après chaque n, n triera en mode inverse (descente)
    • Doit passer le séparateur de caractères utilisé dans le fichier csv avec -t param
Juanma Font
la source
Méthode alternative pour trier sans LibreOffice, en utilisant bash (console):
Juanma Font
-3
  1. Exporter les données au format csv
  2. Ouvrez avec Excel allez dans Données ---- Trier --- Développez la sélection et c'est fait
user102129
la source