Suite

Comment créer un nouveau Shapefile avec les mêmes attributs qu'un existant ?

Comment créer un nouveau Shapefile avec les mêmes attributs qu'un existant ?


Il est assez fréquent que je souhaite que les données que je suis sur le point d'ajouter à un nouveau fichier de formes aient tous les mêmes champs d'attributs que ceux que j'ai créés dans un projet précédent.

Par exemple, j'ai peut-être déjà cartographié toutes les lignes de clôture dans un fichier et enregistré leurs attributs - type de clôture, état, fil, longueur, hauteur, etc.

Je souhaite ensuite produire le même type d'enquête pour un client différent. Je veux juste que mon calque "clôture" ressemble exactement au calque "clôture" du projet précédent, même style, mêmes étiquettes, mêmes champs, mais la seule chose que je peux enregistrer semble être le style.

Quelqu'un pourrait-il aider avec la meilleure façon de le faire?


Vous pouvez prendre la couche que vous avez créée pour le premier client, l'enregistrer en tant que fichier de formes sous un nom différent, puis supprimer toutes les entités qu'elle contient.


Vous pouvez également le faire avec ogr2ogr sur la ligne de commande en utilisant le-oùdrapeau.

ogr2ogr -f "ESRI Shapefile" -où "FID < 0" output_template.shp input.shp

Cela exécute un SQL où la requête et sélectionne les fonctionnalités avec un FID inférieur à 0. Aucune ne devrait exister car les FID n'ont généralement pas de valeur négative ou inférieure à zéro, donc aucune nouvelle fonctionnalité n'est transmise au nouveau shapefile.


Vous pouvez créer une couche de fichier de formes avec votre liste générique de champs d'attributs et simplement dupliquer cette couche dans QGIS et Enregistrer sous… un autre fichier de formes (ou copiez/collez les fichiers physiques tels que .shp, .dbf, etc.). Ensuite, enregistrez également un fichier de style générique et utilisez-le lorsque vous traitez avec des clients.

Donc, fondamentalement, vous avez un "modèle" de fichier de formes avec lequel travailler.


Vous pouvez rt cliquer sur le fichier de formes dans arcmap et cliquer sur exporter les données, puis vous pouvez choisir le même système de référence ou le même que votre bloc de données. Donnez un nouveau nom et dans le menu déroulant du bas, assurez-vous de choisir shapefile. Vous pouvez également en sélectionner certains avec l'outil de sélection. Ceux-ci mettent en évidence puis rt. cliquez et exportez les données et seules celles sélectionnées iront dans un fichier de formes. Ou vous pouvez créer un paquet de couches qui contient la même symbologie et les mêmes symboles ainsi que les informations.


Écrire les données d'entité dans le fichier de formes

Dérivez un fichier de formes de concord_roads.shp dans lequel les routes de CLASSE 5 et supérieure sont omises.

Obtenir des informations sur le contenu d'un fichier de formes. Notez qu'il contient 609 fonctionnalités ( NumFeatures ).

Lire une sélection des données du fichier dans un mapstruct. Notez l'utilisation de l'option 'Selector' dans shaperead , avec une fonction anonyme, pour lire uniquement les routes principales du shapefile original.

Écrivez les données dans un nouveau fichier de formes.

Obtenez des informations sur le contenu du nouveau fichier de formes.

Écrire les données stockées dans mappoint vers Shapefile

Lisez un fichier de formes contenant un vecteur de villes du monde et stockez les données dans un vecteur mappoint.

Ajoutez Paderborn Allemagne au vecteur mappoint. Notez que la taille de p a augmenté de 1.

Écrivez le vecteur mappoint mis à jour dans un fichier de formes.


Copier et coller des valeurs d'attribut

Le copier-coller est un moyen simple de modifier les attributs des entités sur votre carte. Vous pouvez copier et coller des valeurs attributaires individuelles ou toutes d'une entité à l'autre ou à une couche entière.

Par exemple, supposons que vous ayez un polygone représentant un lac et que vous vouliez appliquer ses valeurs attributaires à d'autres polygones de lac sans les saisir manuellement. Ouvrez simplement la fenêtre Attributs et copiez les attributs du lac. Vous pouvez coller les valeurs dans une cellule individuelle ou les coller toutes dans une entité ou dans toutes les entités sélectionnées dans cette couche.

  1. Cliquez sur l'outil Modifier dans la barre d'outils de l'éditeur et sélectionnez les entités.
  2. Cliquez sur le bouton Attributs dans la barre d'outils de l'éditeur.
  3. Dans la fenêtre Attributs, cliquez avec le bouton droit sur l'entité à partir de laquelle vous souhaitez copier et cliquez sur Copier les attributs .

Si vous souhaitez copier et coller une valeur individuelle, sélectionnez le contenu de la cellule, cliquez avec le bouton droit, puis cliquez sur Copier . Cliquez sur la cellule dans laquelle vous souhaitez coller et cliquez sur Coller .

Si les entités entre lesquelles vous copiez se trouvent dans la même couche, toutes les valeurs attributaires seront collées. S'ils se trouvent dans des couches différentes, seules les valeurs des champs correspondants seront collées.


Intermédiaire : Manipulation des fichiers de formes

Pour rendre un fichier de formes plus adapté à l'ajout à OSM, vous devrez peut-être d'abord manipuler le fichier.

Filtrage des fichiers de formes

Les fichiers de formes peuvent être très volumineux (plus de 100 Mo) et inclure des milliers de fonctionnalités individuelles. Les fichiers de cette taille ne conviennent pas aux éditeurs OSM classiques et un sous-ensemble doit donc être extrait avant d'essayer de les ouvrir dans JOSM ou Potlatch.

Utilisation de QGIS :
Ouvrez le fichier de formes dans QGIS en utilisant Couche->Ajouter une couche vectorielle. (la projection doit être détectée automatiquement, sinon elle peut être réglée via Layer->Set CRS of Layer). Sélectionnez uniquement les fonctionnalités que vous souhaitez conserver. Cela peut se faire de plusieurs manières :

  • Sélectionnez des entités uniques ou des entités dans une zone à l'aide de Afficher->Sélectionner.
  • Sélectionnez les entités par leurs attributs (balises) à l'aide de Table d'attributs Layer->Open, où chaque ligne représente une caractéristique individuelle.

Exportez les entités sélectionnées à l'aide Couche->Enregistrer la sélection en tant que fichier vectoriel. (permet également d'exporter vers d'autres formats vectoriels et différentes projections).

Traiter des polygones partageant la même frontière

Les polygones (voies fermées) qui partagent une partie de leur frontière avec un polygone voisin peuvent être divisés en un réseau de polylignes (voies). Cela aide lorsque vous travaillez avec des limites administratives, par exemple, car cela nous permet d'importer des polylignes entre des nœuds de réseau au lieu de polygones avec des limites qui se chevauchent.

Dans QGIS (avec le plugin GRASS) :

  1. Convertir en carte vectorielle GRASS
    Plugins/GRASS/Nouveau jeu de cartes. Puis Plugins/GRASS/Open GRASS Tools. Dans un onglet "Arborescence des modules/Gestion des fichiers/Importer le vecteur dans GRASS/" par v.in.ogr.qgis par exemple. Dans un onglet de module, cliquez "Montrer les options avancées" et cochez "Importer les limites de zone sous forme de lignes".
  2. Casser des polygones aux nœuds où ils divergent pour la première fois
    Dans un onglet "Modules Tree/Vector/Toolset pour le nettoyage de la topologie de la carte vectorielle/v.clean.bpol"
  3. Exporter un nouveau calque
    Calque->Enregistrer sous.

Généralisation

Selon l'origine du fichier de formes, il peut être nécessaire non seulement de convertir mais également de simplifier les formes du fichier de formes (alias "généralisation"), car il contient beaucoup plus de nœuds que nous ne pouvons en utiliser.

Convertir des systèmes de coordonnées de référence

Nous avons reçu de notre commune des Shapefiles avec les coordonnées Gauss-Krüger qui ne pouvaient pas être gérés par le plugin JOSM OpenData (JOSM n'affichait rien ou plantait lors de l'ouverture). Je pourrais le réparer en utilisant QGIS pour les convertir en fichiers GPX avec WGS84 :

  • Démarrez QGIS (j'ai utilisé QGIS 2.8.2 sous OpenSUSE Linux 13.2)
  • Aller à Paramètres > Propriétés du projet > SCR, activer transformation CRS à la volée
  • Ajouter la forme via Calque > Ajouter un calque > Ajouter un calque vectoriel
  • Sélectionnez le système de référence de coordonnées utilisé (dans mon cas "DHDN / Gauss-Kruger zone 4" ou "EPSG:31468" pour la Bavière)
  • Vous devriez voir les coordonnées WGS84 affichées dans la ligne d'état lorsque vous vous déplacez dans les données
  • sélectionnez le calque dans la liste des calques, choisissez "Enregistrer sous" dans le menu contextuel
  • Sélectionnez "Project CRS" comme CRS, assurez-vous qu'il s'agit de WGS 84

Vous devriez maintenant pouvoir ouvrir les fichiers créés dans JOSM (sans aucun plugin spécial, d'ailleurs).


Lecture de forme

S = shaperead( filename ) lit le shapefile, filename , et renvoie un N-by-1 tableau de structure de données géographiques dans les coordonnées cartographiques projetées (un mapstruct). La structure de données géographiques combine des informations d'attributs géométriques et d'entités. shaperead prend en charge les types de formes 2-D ordinaires : 'Point' , 'Multipoint' , 'PolyLine' et 'Polygon' .

S = shaperead( filename , Name,Value ) renvoie un sous-ensemble du contenu du shapefile dans S , tel que déterminé par les arguments de la paire nom-valeur. Utilisez RecordNumbers , BoundingBox et Selector pour sélectionner les fonctionnalités à lire. Si vous utilisez plusieurs de ces paramètres dans le même appel, vous recevez l'intersection des enregistrements qui correspondent aux spécifications individuelles. Par exemple, si vous spécifiez des valeurs pour RecordNumbers et BoundingBox , vous importez uniquement les entités avec des numéros d'enregistrement qui apparaissent dans votre liste et qui ont également des cadres de délimitation croisant le cadre de délimitation spécifié.

Si vous ne spécifiez aucun paramètre, shaperead renvoie une entrée pour chaque entité non nulle et crée un champ pour chaque attribut.

[ S , A ] = shaperead( ___ ) renvoie un N-by-1 tableau de structure de données géographiques, S , contenant des informations géométriques, et un parallèle Ntableau de structure d'attribut -by-1, A , contenant des informations d'attribut de fonction.


Quelles extensions de fichier sont associées à un fichier de formes ?

Tous les fichiers shapefile doivent avoir le même nom mais avoir des extensions différentes. Il y a trois fichiers requis qui, au minimum, constituent un fichier de formes. Par exemple, un ensemble de données SIG sur l'eau doit avoir l'ensemble minimum de fichiers : water.shp, water.shx et water.dbf.

Ces trois fichiers minimum sont :

  • shp — Fichier principal (obligatoire) Fichier d'accès direct à longueur d'enregistrement variable dans lequel chaque enregistrement décrit une forme avec une liste de ses sommets.
  • shx — Fichier d'index (obligatoire). Dans le fichier d'index, chaque enregistrement contient le décalage de l'enregistrement du fichier principal correspondant depuis le début du fichier principal. Le fichier d'index (.shx) contient un en-tête de 100 octets suivi d'enregistrements de longueur fixe de 8 octets.
  • dbf — Fichier de table dBASE (obligatoire) une forme contrainte de DBF qui contient des attributs d'entité avec un enregistrement par entité. La relation un à un entre la géométrie et les attributs est basée sur le numéro d'enregistrement. Les enregistrements d'attributs du fichier dBASE doivent être dans le même ordre que les enregistrements du fichier principal.

Les autres extensions de fichiers pouvant faire partie d'un fichier de formes sont :

  • sbn — Partie 1 de l'index spatial pour les instances en lecture-écriture du format Shapefile. S'il est présent, essentiel pour un traitement correct.
  • sbx — Partie 2 de l'index spatial pour les instances en lecture-écriture du format Shapefile. S'il est présent, essentiel pour un traitement correct.
  • atx — Créé par ArcView 3.x pour chaque instance du format Shapefile ou de l'index d'attribut dBASE créé dans ArcCatalog. Les index d'attributs ArcView GIS 3.x pour les fichiers de formes et les fichiers dBASE ne sont pas utilisés par les versions ultérieures d'ArcGIS car un nouveau modèle d'indexation d'attributs a été développé pour les fichiers de formes et les fichiers dBASE.
  • fbn — L'un des fichiers qui stockent l'index spatial des entités pour les instances du format Shapefile qui sont en lecture seule.
  • fbx — L'autre fichier (en plus de .fbn) qui stocke l'index spatial des entités pour les instances du format Shapefile qui sont en lecture seule.
  • ain — L'un des fichiers qui stocke l'index attributaire des champs actifs dans une table ou une table attributaire de thème’s.
  • aih — L'autre fichier (en plus de .ain) qui stocke l'index attributaire des champs actifs dans une table ou une table attributaire de thème’s
  • ix — Index de géocodage pour les fichiers de formes en lecture/écriture. S'il est présent, essentiel pour un traitement correct.
  • mxs –Index de géocodage pour les fichiers de formes en lecture-écriture (format ODB).
  • prj — Le fichier de définition des projections stocke les informations du système de coordonnées.
  • xml — contient des métadonnées, telles qu'utilisées par ArcGIS.
  • cpg — Un fichier facultatif qui peut être utilisé pour spécifier la page de codes pour identifier le jeu de caractères à utiliser.

Extensions de fichiers Shapefile

Les fichiers de formes sont un format simple et non topologique pour stocker l'emplacement géométrique et les informations attributaires des entités géographiques. Un fichier de formes est l'un des formats de données spatiales que vous pouvez utiliser et modifier dans ArcGIS.

Le format de fichier de formes définit la géométrie et les attributs des entités référencées géographiquement dans trois fichiers ou plus avec des extensions de fichier spécifiques qui doivent être stockées dans le même espace de travail de projet. Ils sont:

  • .shp : le fichier principal qui stocke la géométrie d'entité requise.
  • .shx : le fichier d'index qui stocke l'index de la géométrie d'entité requise.
  • .dbf : la table dBASE qui stocke les informations attributaires des entités requises.

Il existe une relation un à un entre la géométrie et les attributs, qui est basée sur le numéro d'enregistrement. Les enregistrements d'attributs du fichier dBASE doivent être dans le même ordre que les enregistrements du fichier principal.

Chaque fichier doit avoir le même préfixe, par exemple, roads.shp, roads.shx et roads.dbf.

Lors de l'affichage de fichiers de formes dans ArcCatalog (ou toute application ArcGIS), vous ne verrez qu'un seul fichier représentant le fichier de formes. Cependant, vous pouvez utiliser l'Explorateur Windows pour afficher tous les fichiers associés à un fichier de formes. Lors de la copie de fichiers de formes, il est recommandé de le faire dans ArcCatalog ou à l'aide d'un outil de géotraitement. Cependant, si vous copiez un fichier de formes en dehors d'ArcGIS, veillez à copier tous les fichiers qui composent le fichier de formes.


Comment : créer des fichiers de métadonnées de projection (.prj) pour les fichiers de formes

Dans ArcPad, les outils ou boutons GPS ne sont activés que lorsqu'une couche avec un
la projection associée, ou fichier .prj, est ajoutée.

Vous pouvez créer des fichiers .prj de l'une des manières suivantes :

· La méthode Projection Utility :

L'utilitaire de projection est un outil autonome qui est installé avec ArcView GIS 3.2. Cet outil basé sur un assistant vous permet de projeter un ou plusieurs fichiers de formes dans un système de coordonnées. Pour utiliser cet outil :

1. Cliquez sur Démarrer > Programmes > Esri > ArcView GIS 3.2 > Utilitaire de projection.
2. Cliquez sur Parcourir et sélectionnez un ou plusieurs fichiers de formes.
3. Cliquez sur Suivant.
4. Sélectionnez la création de fichiers .prj.

Pour plus d'informations sur l'utilitaire de projection, consultez l'aide en ligne d'ArcView 3.2. Tapez 'prj files' dans l'onglet Index et sélectionnez 'Foire aux questions.'

Si vous n'avez pas accès à l'utilitaire de projection, vous pouvez créer un fichier .prj manuellement à l'aide d'un éditeur de texte tel que le Bloc-notes.

Un système de coordonnées est soit géographique (longitude, latitude) soit projeté (X, Y). Le système de coordonnées est composé de plusieurs objets. Chaque objet a un mot-clé en majuscules (par exemple, DATUM ou UNIT), suivi des paramètres définis et délimités par des virgules de l'objet entre parenthèses. Certains objets peuvent être composés d'autres objets.

Le moteur de projection ESRI stocke les métadonnées d'un système de coordonnées dans une chaîne ou dans un fichier .prj. La chaîne, également appelée chaîne PE, doit être continue. Une chaîne PE est quelque peu complexe car bon nombre de ses pièces sont explicitement définies. Vous pouvez définir vos propres unités, références et sphéroïdes.

Si vous créez une chaîne PE à partir de zéro, assurez-vous que l'option 'Word Wrap' n'est pas sélectionnée dans le Bloc-notes. Les exemples de chaînes PE ici sont formatés pour plus de lisibilité.

La définition Extended Backus Naur Form (EBNF) pour la représentation sous forme de chaîne d'un système de coordonnées est :


Un système de coordonnées d'un jeu de données est identifié par le mot-clé PROJCS si les données sont en coordonnées projetées, ou par GEOGCS si en coordonnées géographiques. Le mot-clé PROJCS est suivi de toutes les pièces qui définissent le système de coordonnées projeté. Un objet contient le nom du système de coordonnées projeté, suivi du système de coordonnées géographiques, de la projection cartographique, d'un ou plusieurs paramètres de projection et de l'unité de mesure linéaire.

Tous les systèmes de coordonnées projetés sont basés sur un système de coordonnées géographiques, vous allez donc d'abord décrire les éléments spécifiques à un système de coordonnées projetées. Par exemple, la zone UTM 10N sur le datum NAD83 est définie comme


Le nom du système de coordonnées géographiques est suivi du datum, du premier méridien et de l'unité de mesure angulaire. La chaîne du système de coordonnées géographiques pour la zone UTM 10N sur NAD 1983 est :


L'objet UNIT peut représenter des unités de mesure angulaires ou linéaires.


Le facteur de conversion spécifie le nombre de mètres (pour une unité linéaire) ou le nombre de radians (pour une unité angulaire) par unité et doit être supérieur à zéro.

La représentation sous forme de chaîne complète de NAD 1983 UTM zone 10N est :


Les paramètres de projection utilisent les unités de mesure des systèmes de coordonnées projetées et géographiques. Les paramètres linéaires, comme les fausses abscisses et les fausses ordonnées, ont les mêmes unités que l'unité de mesure linéaire répertoriée à la fin de la chaîne du système de coordonnées projeté. Les paramètres angulaires, comme le méridien central, la latitude d'origine et le parallèle standard 1, utilisent l'unité de mesure angulaire répertoriée dans la définition du système de coordonnées géographiques.

Vous devez utiliser les noms prédéfinis pour la projection cartographique et les objets paramètres afin que Projection Engine puisse les interpréter correctement. Pour tous les autres objets, vous pouvez soit utiliser des noms et des valeurs prédéfinis, soit définir les vôtres. Supposons que vous définissiez le système de coordonnées géographiques suivant :


La seule différence avec le système de coordonnées géographiques prédéfini NAD 1983 est le nom. Vous obtiendrez les mêmes résultats si vous projetez des données avec l'un ou l'autre GCS, mais le moteur de projection ne prend pas en compte les deux définitions équivalentes.

La méthode la plus simple pour créer une nouvelle chaîne PE consiste à modifier une chaîne existante. Vous pouvez copier et modifier des pièces selon vos besoins à partir de plusieurs exemples. Les paramètres de projection doivent être dans les mêmes unités que les systèmes de coordonnées. Si vous modifiez un système de coordonnées projetées basé sur des mètres pour utiliser les pieds, assurez-vous d'ajuster les valeurs des paramètres de fausse est et de fausse nord aux pieds. Il s'agit de la zone UTM 10N basée sur le NAD 1983 :


Pour le changer en pieds d'arpentage américains :

1. Le nom PROJCS pour identifier facilement les nouveautés. Le nouveau nom sera NAD_1983_UTM_Zone_10N_Feet).

2. Le nom et la valeur de l'unité linéaire de mesure. La chaîne pour les pieds d'arpentage américains est UNIT["Feet_US",0.30480060960122].

3. Les valeurs des paramètres de projection linéaire. La valeur de la fausse ordonnée est de 0,0 et reste inchangée. La valeur de fausse abscisse est de 500000,0 mètres. Dans les pieds d'enquête américains,
la valeur est 1640416.6667.


N'oubliez pas qu'une chaîne PE est simplement une collection d'objets. Si vous le pouvez, copiez une chaîne de système de coordonnées géographiques qui inclut la référence, le sphéroïde, le premier méridien et l'unité de mesure angulaire. Vous n'avez pas besoin de définir individuellement les chaînes de sphéroïde ou d'unité.


  • Bill Miller (NY-DOT) pour shputils.c
  • Carl Anderson pour le contenu du répertoire contrib et les ajouts "tuple" à dbfopen.c.
  • Andrea Giacomelli pour les correctifs pour dbfopen.c.
  • Doug Matthews pour les améliorations de la portabilité.
  • Jan-Oliver Wagner pour m'avoir convaincu de le rendre disponible sous LGPL, prise en charge des bibliothèques partagées et divers autres correctifs.
  • Dennis Christopher (de Avenza) pour les tests et les corrections de bugs.
  • Miko Syrj (de 3D-system Oy) pour une correction de bogue de taille record.
  • Steven Lime et Curtis Hill pour leur aide avec les formes NULL.
  • Jim Matthews pour la prise en charge des attributs NULL dans les fichiers dbf.
  • PCI Geomatics qui m'a laissé sortir une version modifiée de leur code shapefile au début et qui a hébergé shapelib pendant des années.

Des précautions doivent également être prises pour passer l'indicateur d'accès binaire dans SHPOpen() et DBFOpen() lors de l'utilisation sur des systèmes avec traduction de fichiers texte spéciaux tels que MSDOS.

Le module shputils.c est une contribution et peut ne pas adopter la même approche de la portabilité que le reste du package.

Sous Linux et la plupart des systèmes Unix, il devrait être possible de créer et d'installer le support des fichiers de formes en tant que bibliothèque partagée en utilisant les cibles "lib" et "lib_install" du Makefile. Notez que ce Makefile n'utilise pas les mécanismes d'autoconf et nécessitera généralement une certaine personnalisation manuelle pour votre environnement.


Comment créer un nouveau Shapefile avec les mêmes attributs qu'un existant ? - Systèmes d'information géographique

Dans les exemples fournis dans les chapitres précédents, les géodonnées se présentaient sous la forme de variables individuelles. Le logiciel Mapping Toolbox™ fournit également un moyen simple d'afficher, d'extraire et de manipuler des collections d'entités cartographiques vectorielles organisées en structures de données géographiques .

Une structure de données géographiques est un tableau de structure MATLAB ® qui a un élément par entité géographique. Chaque caractéristique est représentée par des coordonnées et des attributs. Une structure de données géographiques qui contient des coordonnées géographiques (latitude et longitude) est appelée un géostructurer, et une qui contient les coordonnées cartographiques (projetées X et oui ) est appelé un mapstruct. Les structures de données géographiques ne contiennent que des entités vectorielles et ne peuvent pas être utilisées pour contenir des données raster (grilles de données ou images régulières ou géolocalisées).

Fichiers de formes

Les structures de données géographiques proviennent le plus souvent de l'importation de géodonnées vectorielles à partir d'un fichier de formes. L'Environmental Systems Research Institute a conçu le format de fichier de formes pour les géodonnées vectorielles. Les fichiers de formes encodent les coordonnées des points, des multipoints, des lignes ou des polygones, ainsi que des attributs non géométriques.

Un fichier de formes stocke les attributs et les coordonnées dans des fichiers séparés, il se compose d'un fichier principal, d'un fichier d'index et d'un fichier xBASE. Les trois fichiers ont le même nom de base et se distinguent respectivement par les extensions .shp , .shx et .dbf . (Par exemple, étant donné le nom de base « concord_roads », les noms de fichier de fichiers de formes seraient « concord_roads.shp », « concord_roads.shx » et « concord_roads.dbf » ).

Le contenu des structures de données géographiques

La fonction shaperead lit les caractéristiques et les attributs vectoriels d'un fichier de formes et renvoie un tableau de structure de données géographiques. La fonction shaperead détermine les noms des champs attributaires au moment de l'exécution à partir de la table xBASE du fichier de formes ou à partir de paramètres facultatifs spécifiés par l'utilisateur. Si un nom d'attribut de fichier de formes ne peut pas être utilisé directement comme nom de champ, shaperead attribue au champ un nom modifié de manière appropriée, généralement en remplaçant les espaces par des traits de soulignement.

Champs dans une structure de données géographiques

L'un des types de forme suivants : 'Point' , 'MultiPoint' , 'Line' ou 'Polygon' .

Spécifie les valeurs de coordonnées d'entité minimale et maximale dans chaque dimension sous la forme suivante :

[ min ( X ) min ( Y ) max ( X ) max ( Y ) ]

Omis pour le type de forme 'Point' .

Tableau 1 par N de classe double

vecteur de caractère ou nombre scalaire

Nom, type et valeur de l'attribut.

Optionnel. Il y a généralement plusieurs attributs.

La fonction shaperead fait ne pas prend en charge tous les types de formes 3D ou "mesurées": 'PointZ' , 'PointM' , 'MultipointZ' , 'MultipointM' , 'PolyLineZ' , 'PolyLineM' , 'PolygonZ' , 'PolylineM' ou 'Multipatch' . De plus, bien que les entités 'Null Shape' puissent être présentes dans un fichier de formes 'Point' , 'Multipoint' , 'PolyLine' ou 'Polygon', elles sont ignorées.

Formes polyligne et polygone

Dans les structures de données géographiques avec des géométries de ligne ou de polygone, les entités individuelles peuvent avoir plusieurs segments de ligne et anneaux de polygone déconnectés. Les pièces peuvent inclure des bagues intérieures dans le sens inverse des aiguilles d'une montre qui décrivent des "trous". Pour une illustration de ceci, voir Créer et afficher des polygones. Chaque partie déconnectée est séparée de la suivante par un NaN dans les vecteurs X et Y (ou Lat et Lon ). Vous pouvez utiliser la fonction isShapeMultipart pour déterminer si une entité a des parties séparées par NaN.

Chaque ligne ou polygone multipoints ou séparés par NaN constitue une entité unique et a donc un vecteur de caractère ou une double valeur scalaire par champ attributaire. Il n'est pas possible d'attribuer des attributs distincts aux différentes parties d'une telle entité. Aucun vecteur de caractère ou attribut numérique importé avec (ou ajouté ultérieurement à) la géostruct ou la mapstruct s'applique à toutes les parties de l'entité en combinaison.

Mapstructs et Geostructs

Par défaut, shaperead renvoie une mapstruct contenant des champs X et Y. Ceci est approprié si les coordonnées de l'ensemble de données sont déjà projetées (dans un système de coordonnées cartographiques). Sinon, si les coordonnées de l'ensemble de données ne sont pas projetées (dans un système de coordonnées géographiques), utilisez la paire paramètre-valeur 'UseGeoCoords',true pour que shaperead renvoie une géostructure ayant des champs Lon et Lat.

Types de coordonnées. Si vous ne savez pas si un fichier de formes utilise des coordonnées géographiques ou des coordonnées cartographiques, voici quelques solutions que vous pouvez essayer :

Si le fichier de formes inclut un fichier de projection ( .prj ), utilisez shapeinfo pour obtenir des informations sur le système de coordonnées de référence. Si le champ CoordinateReferenceSystem de la structure renvoyée est un objet projcrs, vous avez des coordonnées cartographiques. Si le champ est un objet geocrs, vous disposez de coordonnées géographiques.

Si le fichier de formes n'inclut pas de fichier de projection, utilisez shapeinfo pour obtenir le BoundingBox . En regardant les plages de coordonnées, vous pourrez peut-être dire quel type de coordonnées vous avez.

La fonction geoshow affiche les entités géographiques stockées dans les geostructs et la fonction mapshow affiche les entités géographiques stockées dans les mapstructs. Si vous essayez d'afficher un mapstruct avec geoshow, la fonction émet un avertissement et appelle mapshow. Si vous essayez d'afficher une géostructure avec mapshow , la fonction projette les coordonnées avec une projection Plate Carree et émet un avertissement.

Examen d'une structure de données géographiques

Voici un exemple de mapstruct non filtrée renvoyée par shaperead :

La sortie apparaît comme suit :

Le fichier de formes contient 609 fonctionnalités. Outre les champs Geometry , BoundingBox et de coordonnées ( X et Y ), il existe cinq champs attributaires : STREETNAME , RT_NUMBER , CLASS , ADMIN_TYPE et LENGTH .

La sortie apparaît comme suit :

Cette mapstruct contient des fonctionnalités 'Line'. La dixième ligne a neuf sommets. Les valeurs des deux premiers attributs sont des vecteurs de caractères. Le second se trouve être un vecteur de caractère vide. Les trois derniers attributs sont numériques. À travers les éléments de S , X et Y peuvent avoir différentes longueurs, mais STREETNAME et RT_NUMBER doivent toujours contenir des vecteurs de caractères, et CLASS , ADMIN_TYPE et LENGTH doivent toujours contenir des doubles scalaires.

Dans cet exemple, shaperead renvoie une mapstruct non filtrée. Si vous souhaitez filtrer certains attributs, consultez Sélectionner les données de fichier de formes à lire pour plus d'informations.

Comment construire des structures de données géographiques

Des fonctions telles que shaperead ou gshhs renvoient des géostructs lors de l'importation de géodonnées vectorielles. Cependant, vous souhaiterez peut-être créer vous-même des géostructs ou des mapstructs dans certaines circonstances. Par exemple, vous pourriez importer des géodonnées vectorielles qui ne sont pas stockées dans un fichier de formes (par exemple, à partir d'un fichier MAT, d'une feuille de calcul Microsoft ® Excel ®, ou en lisant un fichier texte délimité). Vous pourriez aussi calculer les géodonnées vectorielles et les attributs en appelant diverses fonctions MATLAB ou Mapping Toolbox. Dans les deux cas, les coordonnées et autres données sont généralement des vecteurs ou des matrices dans l'espace de travail. L'empaquetage de variables dans un geostruct ou un mapstruct peut faciliter leur mappage et leur exportation, car les structures de données géographiques offrent plusieurs avantages par rapport aux tableaux de coordonnées :

Toutes les variables de géodonnées associées sont regroupées dans un conteneur, un tableau de structure.

La structure s'auto-documente à travers ses noms de champs.

Vous pouvez faire varier la symbologie de la carte pour les points, les lignes et les polygones en fonction de leurs valeurs attributaires en construisant un spécsymbole pour afficher le geostruct ou le mapstruct.

Il existe une correspondance un à un entre les éléments de structure et les caractéristiques géographiques, qui s'étend aux enfants des objets hggroup construits par mapshow et geoshow .

Atteindre ces avantages n'est pas difficile. Utilisez l'exemple suivant comme guide pour empaqueter les géodonnées vectorielles que vous importez ou créez dans des structures de données géographiques.

Création de géostructures de points et de lignes

L'exemple suivant crée d'abord une géostructure de point contenant trois villes sur différents continents et la trace avec geoshow . Ensuite, il crée une géostructure de ligne contenant des données pour les pistes de navigation des grands cercles reliant ces villes. Enfin, il trace ces lignes à l'aide d'un symbolspec.

Commencez par un petit ensemble de données ponctuelles, des latitudes et longitudes approximatives pour trois villes sur trois continents :

Construisez une géostructure de point, elle doit avoir les champs obligatoires suivants :

Géométrie (dans ce cas 'Point' )

Lat (pour les points, c'est un double scalaire)

Lon (pour les points, c'est un double scalaire)

Affichez la géostructure sur une projection Mercator des masses continentales de la Terre stockées dans le fichier de formes landareas.shp, en définissant les limites de la carte pour exclure les régions polaires :

Ensuite, construisez une géostructure Line pour regrouper les pistes de navigation des grands cercles entre les trois villes :

Calculer les longueurs des trajectoires orthodromiques :

Cartographiez les trois pistes de la ligne geostruct :

Vous pouvez enregistrer les géostructs que vous venez de créer en tant que fichiers de formes en appelant shapewrite avec un nom de fichier de votre choix, par exemple :

Création de géostructures de polygones

La création d'un geostruct ou d'un mapstruct pour les données surfaciques est similaire à la création d'un geostruct pour les données ponctuelles ou linéaires. Cependant, si vos polygones comprennent plusieurs parties séparées par NaN, rappelez-vous qu'ils ne peuvent avoir qu'une seule valeur par attribut, et non une valeur par partie. Chaque attribut que vous placez dans un élément de structure pour un tel polygone concerne toutes ses parties. Cela signifie que si vous définissez un groupe d'îles, par exemple avec une seule liste séparée par NaN pour chaque coordonnée, tous les attributs de cet élément décrivent les îles comme un groupe, pas des îles particulières. Si vous souhaitez associer des attributs à un îlot particulier, vous devez fournir un élément de structure distinct pour cet îlot.

Sachez que l'ordre des sommets des polygones est important. Lorsque vous cartographiez des données de polygone, la direction dans laquelle les polygones sont traversés a une importance pour la façon dont ils sont rendus par des fonctions telles que geoshow , mapshow et mapview . Une bonne directionnalité est particulièrement importante si les polygones contiennent des trous. La convention Mapping Toolbox code les coordonnées des anneaux extérieurs (par exemple, les contours des continents et des îles) dans le sens des aiguilles d'une montre. L'ordre dans le sens inverse est utilisé pour les anneaux intérieurs (par exemple, les lacs et les mers intérieures). Dans le tableau de coordonnées, chaque anneau est séparé de celui qui le précède par un NaN.

Lorsqu'ils sont tracés par mapshow ou geoshow , les anneaux dans le sens des aiguilles d'une montre sont remplis. Les anneaux dans le sens inverse des aiguilles d'une montre ne sont pas remplis et toute symbologie sous-jacente apparaît à travers de tels trous. Pour vous assurer que les bagues extérieure et intérieure sont correctement codées selon la convention ci-dessus, vous pouvez appeler les fonctions suivantes :

ispolycw — Vrai si les sommets du contour polygonal sont ordonnés dans le sens des aiguilles d'une montre

poly2cw — Convertir le contour polygonal en ordre dans le sens des aiguilles d'une montre

poly2ccw — Convertir le contour polygonal en ordre dans le sens inverse des aiguilles d'une montre

poly2fv — Convertir la région polygonale en forme face-sommet à utiliser avec le patch afin de restituer correctement les polygones contenant des trous

Trois de ces fonctions vérifient ou modifient l'ordre des sommets qui définissent un polygone, et la quatrième convertit les polygones avec des trous en une représentation complètement différente.

Pour un exemple d'utilisation de géostructures polygonales, consultez Conversion de données de littoral (GSHHG) au format Shapefile.

Mapping Toolbox Version 1 Structures d'affichage

Avant la version 2, lorsque les géostructs et les mapstructs ont été introduits, une structure de données différente était utilisée lors de l'importation de géodonnées à partir de certains formats externes pour les encapsuler pour les fonctions d'affichage de la carte. Ces structures d'affichage accueillait à la fois des données cartographiques raster et vectorielles et d'autres types d'objets, mais manquait de la généralité des géostructs et mapstructs actuels pour représenter les entités vectorielles et sont progressivement supprimés de la boîte à outils. Cependant, vous pouvez convertir des structures d'affichage contenant des géodonnées vectorielles en forme de géostructure à l'aide de updategeostruct . Pour plus d'informations sur les structures d'affichage de la version 1 et leur utilisation, voir Structures d'affichage de la version 1 dans la page de référence de displaym . Des informations supplémentaires se trouvent dans les pages de référence pour updategeostruct , extractm et mlayers .


Voir la vidéo: Comment ajouter, éditer et supprimer un champs dans une table dattributs dans QGIS?