J'ai un fichier de formes vectorielles (polyligne) et j'ai besoin de récupérer les points de début et de fin (nœuds) de chaque ligne et de créer un fichier de formes avec ces points. Ensuite, je dois ajouter à la table attributaire de la polyligne les points de début et de fin pour chaque ligne basée sur l'ID des points.
Comment pourrais-je le faire de manière simple dans ArcGIS Desktop ou QGIS?
qgis
arcgis-desktop
user51651
la source
la source
Réponses:
Il s'agit d'un one-liner pour GDAL. Cette commande crée un fichier de formes à partir des nœuds de départ avec les attributs sélectionnés:
Utilisez ST_EndPoint pour les points de terminaison.
la source
Il existe un plugin QGIS "Localiser les points le long des lignes" . Pour dériver les points de départ et d'arrivée, choisissez Ajouter des points d' extrémité et utilisez un intervalle plus long que votre ligne la plus longue.
la source
Solution QGIS: Il est possible d'extraire les nœuds de début et de fin (coordonnées) d'un fichier vectoriel de ligne, simplement en utilisant xat et yat dans la calculatrice de champ, avec les indices respectifs 0 (début) et -1 (fin).
la source
Pour une solution ArcGIS, j'ai créé un outil de géotraitement qui crée des points sur les lignes.
Vous pouvez le télécharger et voir le code ici: Créer des points sur les lignes
Pour le Type, vous voudrez choisir POINTS DE DÉBUT / FIN. Cela créera une nouvelle classe d'entités points qui contient les points de début et de fin de chaque polyligne.
La classe d'entités points en sortie aura également un champ appelé LineOID, qui enregistre l'OID de la polyligne à partir de laquelle elle a été créée. De cette façon, vous pouvez réintégrer vos données d'attribut.
Voici une capture d'écran de la façon dont vous définissez les paramètres:
la source
pour ajouter les coordonnées des points finaux dans la table attributaire, à l'aide d'ArcGIS, vous pouvez utiliser la calculatrice de champ (pas besoin de créer des géométries). Cliquez sur le nom du champ, calculatrice de champ, puis utilisez la syntaxe Python avec les lignes simples ci-dessous (exemple avec la coordonnée X):
notez que tout est à l'intérieur du !!
la source
Dans QGIS, utilisez l' outil Extraire des sommets spécifiques . Définissez les indices de sommet à 0 pour obtenir les points de départ et -1 pour obtenir les points de fin ou 0, -1 pour obtenir les deux.
Notez la description:
la source
Dans ArcGIS, si vous disposez d'une licence avancée, vous pouvez utiliser la boîte à outils Gestion des données-> Jeu d'outils Fonctions-> Outil Sommets d'entité vers points avec l'option Les deux extrémités. Tous les attributs de la ligne sont conservés. Cependant, vous devez ajouter un champ à votre classe d'entités linéaires d'origine et calculer l'ID d'entité sur votre ligne pour conserver cette valeur dans les points. Si vous avez un autre champ de valeur unique sur vos lignes, vous pouvez joindre et calculer le FID après avoir exécuté l'outil. L'option finale impliquerait de faire une jointure spatiale avec l'option One To Many et de supprimer les copies avec de mauvais attributs.
la source