Suite

Comment accéder aux valeurs m du fichier de formes avec pyqgis?


Comment puis-je accéder (lecture/écriture) aux valeurs m d'un fichier de forme de ligne à l'aide de pyqgis?

Je sais comment le faire avec les curseurs arcpy (http://resources.arcgis.com/en/help/main/10.1/index.html#/Reading_geometries/002z0000001t000000/ ) mais je ne sais pas comment le faire avec pyqgis .

Est-ce possible avec la bibliothèque python QGIS ?


En supposant que vous ayez un objet QgsGeometry (par exemple, la géométrie renvoyée lors de l'appel de QgsFeature.geometry()), vous pouvez accéder à ses informations de géométrie brutes en appelant respectivement QgsGeometry.geometry() dans QGIS 2.x ou QgsGeometry.constGet() dans QGIS 3. Cela renvoie la sous-classe QgsAbstractGeometry appropriée pour le type de géométrie. Ces sous-classes ont des méthodes pour lire les points de la géométrie en tant qu'objets QgsPointV2 (QgsPoint dans QGIS 3), dont vous pouvez ensuite récupérer directement les valeurs z ou m. Parfois (comme c'est le cas avec QgsLineStringV2, vous pouvez même accéder directement aux valeurs z/m de la sous-classe elle-même.

Voici un exemple pour QGIS 2.x :

g = feature.geometry() line = g.geometry() #line renvoie un objet QgsLineStringV2 m = line.mAt(0) # m valeur du premier sommet z = line.zAt(0) # z valeur du premier sommet

Et un autre exemple pour QGIS 3 :

g = feature.geometry() line = g.constGet() #line renvoie un objet QgsLineString m = line.mAt(0) # m valeur du premier sommet z = line.zAt(0) # z valeur du premier sommet

Une chose importante à noter est que seules les versions très récentes de gdal prennent en charge les valeurs m, et les versions plus anciennes lisent les valeurs m comme des valeurs z. Cela affectera vos résultats si vous utilisez un format basé sur un fichier (par exemple, des fichiers de formes) dans QGIS.


si vous examinez OGR, le livre de cuisine est une excellente ressource. Un exemple d'écriture de valeurs z (m) dans un fichier de formes pourrait être quelque chose comme :

def mkline() : drv=ogr.GetDriverByName('ESRI Shapefile') ds=drv.CreateDataSource('test.shp') lyr=ds.CreateLayer('test',ogr.wkbLineString25D) flddef=ogr.FieldDefn('Name ',ogr.OFTString) flddef.SetWidth(32) lyr.CreateField(flddef) feat=ogr.Feature(lyr.GetLayerDefn()) feat.SetField('Name','someDescriptor') line=ogr.Geometry(ogr. wkbLineString25D) ligne.AddPoint(1116651.439379124, 637392.6969887456, 100.) # x, y , z ligne.AddPoint(1188804.0108498496, 652655.7409537067, 200.) ligne.AddPoint(1226730.3625203592, 634155.08160.22386, 300.4630) ligne.AddPoint(1226730.3625203592, 64155.08160.22386, 300.4630) ligne. .) feat.SetGeometry(line) lyr.CreateFeature(feat) feat=None ds=None

Formati supportati¶

QGIS utilise la bibliothèque OGR pour lire et écrire des formats de données vectorielles, notamment les fichiers de formes ESRI, les formats de fichiers MapInfo et MicroStation, les bases de données AutoCAD DXF, PostGIS, SpatiaLite, Oracle Spatial et MSSQL Spatial, et bien d'autres. La prise en charge du vecteur GRASS et de PostgreSQL est fournie par les plugins natifs du fournisseur de données QGIS. Les données vectorielles peuvent également être chargées en mode lecture à partir des archives zip et gzip dans QGIS. A la date de ce document, 69 formats vectoriels sont pris en charge par la bibliothèque OGR (voir OGR-SOFTWARE-SUITE dans Letteratura e riferimenti web). La liste complète est disponible sur http://www.gdal.org/ogr/ogr_formats.html.

Tous les formats répertoriés peuvent ne pas fonctionner dans QGIS pour diverses raisons. Par exemple, certains nécessitent des bibliothèques commerciales externes, ou l'installation GDAL/OGR de votre système d'exploitation peut ne pas avoir été conçue pour prendre en charge le format que vous souhaitez utiliser. Seuls les formats bien testés apparaîtront dans la liste des types de fichiers lors du chargement d'un vecteur dans QGIS. D'autres formats non testés peuvent être chargés en sélectionnant *.* .

La sezione Intégration avec GRASS GIS ti mostra come lavorare con i dati di GRASS.

Cette section décrit comment utiliser plusieurs formats courants : fichiers de formes ESRI, couches PostGIS, couches SpatiaLite, vecteurs OpenStreetMap et données séparées par des virgules (CSV). De nombreuses fonctionnalités disponibles dans QGIS fonctionnent de la même manière, quelle que soit la source de données vectorielles. C'est par conception, et il comprend les fonctions d'identification, de sélection, d'étiquetage et d'attributs.

QGIS prend en charge les types d'entités (multi)points, (multi)lignes, (multi)polygones, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface, tous avec des valeurs Z et/ou M.

Vous devez également noter que certains pilotes ne prennent pas en charge certains de ces types de fonctionnalités, tels que CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface. QGIS les convertira en fonction (multi)polygonale.


Cargando una capa desde archivo¶

/> Pour charger un calque à partir d'un fichier (comme un Shapefile, un Mapinfo ou un calque dxf), cliquez sur le bouton /> Ajouter un calque vectoriel dans la barre d'outils ou tapez Ctrl+Maj+V . Cela fera apparaître une nouvelle fenêtre (voir figure_vector_1).

Figure 1 :

Diálogo Adicionar Capa Vectorial

À partir des options disponibles, cochez Déposer. Cliquer sur [Parcourir]. Cela fera apparaître une boîte de dialogue d'ouverture de fichier standard (voir figure_vector_2), qui vous permet de naviguer dans le système de fichiers et de charger un fichier de formes ou une autre source de données prise en charge. La boîte de sélection Filtre vous permet de présélectionner certains formats de fichiers pris en charge par OGR.

También puede seleccionar la codificación para el archivo si lo desea.

Figure 2 :

Abre un Dialogo de Capa Vectorial Soportada por OGR

Sélectionner un fichier dans la liste et cliquer [Ouvert] le charge dans QGIS. La figure_vector_3 montre QGIS après le chargement du alaska.shp déposer.

Figure 3 :

QGIS avec archive shape de Alaska cargado

Cap de couleurs

Cuando se añade una capa al mapa, se asigna un color al azar. Cuando se añade más de una capa a la vez, diferentes colores se asignan a cada capa.

Une fois qu'un fichier est chargé, vous pouvez zoomer dessus à l'aide des outils de navigation cartographique. Pour changer le style d'un calque, ouvrez le Propriétés de la couche dialogue en double-cliquant sur le nom du calque ou en faisant un clic droit sur le nom dans la légende et en choisissant Propriétés depuis le menu contextuel. Voir section Estilo de Menu pour plus d'informations sur la définition de la symbologie des couches vectorielles.

capa de cargada y se proyecta desde unidades externas montadas en OS X

En sistemas operativos X, unidades portátiles que se montan al lado del disco duro principal no aparecen como se esperaba fr Archivo ‣ Abrir Proyecto. Estamos trabajando en una diálogo de abrir/guardar más nativo al SO X para solucionar este problema. Como solución alternativa, puede escribir /Volumes à la caja Nombre d'archives y presionar Entrer . A continuación, se puede desplazar a unidades externas y los montajes de la red.

Fichiers DXF contenant plusieurs types de géométrie (point, ligne et/ou polygone), le nom de la couche sera composé de <filename.dxf> entités <type de géométrie>.

Vous pouvez également faire glisser et déposer le(s) fichier(s) dans le Panneau Calques à partir du navigateur de fichiers ou du panneau du navigateur QGIS. Si la couche contient plusieurs types de géométrie, une nouvelle fenêtre vous demandera de sélectionner la sous-couche. Cela se produit souvent avec les formats de fichiers GPX, Mapinfo ou DXF.

Chargement d'une couche basée sur un répertoire spécifique¶

Pour charger un format spécifique comme ArcInfo Binary Coverage, UK. National Transfer Format, ainsi que le format brut TIGER du US Census Bureau ou OpenfileGDB, cliquez sur le Bouton Ajouter un calque vectoriel dans la barre d'outils ou appuyez sur Ctrl+Maj+V pour ouvrir le Ajouter une couche vectorielle dialogue. Sélectionner Annuaire comme Type de Source. Changer le filtre de type de fichier Des fichiers de type au format que vous souhaitez ouvrir, par exemple ‘Arc/Info Binary Coverage’. Accédez au répertoire qui contient le fichier de couverture ou le fichier et sélectionnez-le.

Archivos shape de ESRI¶

Le shapefile ESRI est toujours l'un des formats de fichiers vectoriels les plus utilisés dans QGIS. Cependant, ce format de fichier a certaines limitations que certains autres formats de fichier n'ont pas (comme Geopackage, spatialite). Le support est fourni par la bibliothèque de fonctionnalités simples OGR (http://www.gdal.org/ogr/).

Un archivo forme actuellement composé de varios archivos. Los siguientes tres son necesarios:

archiver .shp contiene las geometrías de los objetos espaciales

archiver .dbf contiene los atributos en format dBase

Los archivos shape también incluyen un archivo con un sufijo .prj , que contiene la información de la proyección. Si bien es muy útil tener un archivo de proyección. pas d'obligation. Un conjunto de datos de archivo shape puede contener archivos adicionales. Para mayor detalle, consulte la especificación técnica de ESRI en http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.

Améliorer les performances des fichiers de formes

Para mejorar el desempeño de dibujo de un archivo shape, se debe crear un índice espacial. Un índice espacial mejorará la velocidad del zum y desplazamiento. Los indices espaciales utilizados por QGIS tienen una extensión .qix .

Utilice estos pasos para crear un índice:

Abrir el dialogo Propiedades de la capa haciendo doble clic sobre el nombre del archivo shape en la leyenda o haciendo clic derecho y elegir Propédades del menu contextuel.

En la peste Général, hacer clic sobre el botón [Créer Índice Espacial].

Problème de chargement d'un fichier shape .prj

Si vous chargez un fichier de formes avec un .prj et QGIS n'est pas en mesure de lire le système de référence de coordonnées à partir de ce fichier, vous devrez définir la projection appropriée manuellement dans le Général onglet du Propriétés de la couche dialogue de la couche en cliquant sur le [Spécifier. ] bouton. Ceci est dû au fait que .prj les fichiers ne fournissent souvent pas les paramètres de projection complets tels qu'utilisés dans QGIS et répertoriés dans le SCR dialogue.

Pour la même raison, si vous créez un nouveau shapefile avec QGIS, deux fichiers de projection différents sont créés : un .prj fichier avec des paramètres de projection limités, compatible avec le logiciel ESRI, et un .qpj fichier, fournissant les paramètres complets du SIR utilisé. Chaque fois que QGIS trouve un .qpj fichier, il sera utilisé à la place du .prj .


Fișiere cu Text Delimitat¶

Les données tabulaires sont un format très courant et largement utilisé en raison de leur simplicité et de leur lisibilité. Les données peuvent être visualisées et modifiées même dans un éditeur de texte brut. Un fichier texte délimité est une table attributaire avec chaque colonne séparée par un caractère défini et chaque ligne séparée par un saut de ligne. La première ligne contient généralement les noms de colonnes. Un type courant de fichier texte délimité est un fichier CSV (valeurs séparées par des virgules), chaque colonne étant séparée par une virgule.

Astfel de fișiere de date pot conține, de asemenea, informații poziționale, în do forme principale:

Ca și coordonée ale puntelor din coloane séparé

Ca și reprezentare Well-Known Text (WKT) a unei geometrii

QGIS vous permet de charger un fichier texte délimité sous forme de couche ou de table ordinale. Mais vérifiez d'abord que le fichier répond aux exigences suivantes :

Fișierul trebuie să aibă un rând antet delimitat, de nume de câmpuri. Aceasta trebuie să fie prima linie din fișierul text.

Rândul antet trebuie să conțină câmp(urile) cu definiția geometriei. Aceste câmp(uri) pot avea orice nume.

Coordonatele X și Y (dacă geometria este definită prin coordonate) trebuie să fie specifier ca numere. Sistemul de coordonate nu este important.

Ca un exemplu de fișier text valid, vom importa fișierul elevp.csv , cu datele de elevație ale puntelor, care vine cu setul de date eșantion din QGIS (v. secțiunea Date d'éantion):

Unele elemente de reținut despre fișierul text :

Exemplul de fișier text folosește (ponct și virgulă) ca délimiteur. Orice caracter poate fi folosit pentru a delimita câmpurile.

Primul rând constituie antetul. Acesta conține câmpurile X , Oui si ELEV .

Nu se folosesc ghilimele ( " ) pentru delimitarea câmpurilor de text.

Coordonatele X sunt conținute în câmpul X .

Coordonatele Y sunt conținute în câmpul Oui .

Alte informații valoroase pentru utilizatori avansați¶

Les entités avec des géométries courbes (CircularString, CurvePolygon et CompoundCurve) sont prises en charge. Voici trois exemples de ces types de géométrie sous forme de texte délimité avec des géométries WKT :

Le texte délimité prend également en charge les coordonnées Z et M dans les géométries :

Încărcarea unui fișier cu texte delimitate¶

Cliquez sur l'icône de la barre d'outils Ajouter un calque de texte délimité dans la Gérer les calques barre d'outils pour ouvrir le Créer un calque à partir d'un fichier texte délimité dialogue, comme indiqué dans figure_delimited_text_1.

Texte délimité par la figure 1 :

Dialogul Textului Delimitat

Tout d'abord, sélectionnez le fichier à importer (par exemple, qgis_sample_data/csv/elevp.csv ) en cliquant sur le [Parcourir] bouton. Une fois le fichier sélectionné, QGIS tente d'analyser le fichier avec le délimiteur le plus récemment utilisé. Pour permettre à QGIS d'analyser correctement le fichier, il est important de sélectionner le délimiteur correct. Vous pouvez spécifier un délimiteur en activant Délimiteurs personnalisés, ou en activant Délimiteur d'expression régulière et saisir du texte dans le Expression domaine. Par exemple, pour changer le délimiteur en tabulation, utilisez (il s'agit d'une expression régulière pour le caractère de tabulation).

Une fois le fichier analysé, définissez Définition de la géométrie à Coordonnées des points et choisissez le X et Oui champs des listes déroulantes. Si les coordonnées sont définies en degrés/minutes/secondes, activez le Coordonnées DMS case à cocher.

La finale, présentei un nume de strat (cum ar fi élever ), aa cum se arată în figure_delimited_text_1. Pentru a adăuga stratul pe hartă, faceți clic pe [D'ACCORD]. Fișierul cu text delimitat se comportă acum ca oricare alt strat de hartă din QGIS.

Il existe également une option d'assistance qui vous permet de supprimer les espaces de début et de fin des champs — Couper les champs. Aussi, il est possible de Supprimer les champs vides. Si nécessaire, vous pouvez forcer une virgule comme séparateur décimal en activant Le séparateur décimal est une virgule.

Si l'information spatiale est représentée par WKT, activez le Texte bien connu et sélectionnez le champ avec la définition WKT pour les objets ponctuels, linéaires ou surfaciques. Si le fichier contient des données non spatiales, activez Pas de géométrie (table d'attributs uniquement) et il sera chargé en tant que table ordinale.

De plus, vous pouvez activer :

Se folosește un index spațial pentru a îmbunătăți performanța afișării i pentru selectarea spațială a entităților.

Folosește indexul subsetului.


Comment accéder aux valeurs m du fichier de formes avec pyqgis? - Systèmes d'information géographique

Remarque : tous les éléments mentionnés ci-dessous ont été rétroportés vers LTR, ils apparaîtront donc également dans QGIS 3.4.5.

Sélectionnez ("verrouiller") la fonction avant de l'éditer

Dans QGIS 2.18, vous deviez toujours sélectionner une entité avant de la modifier. Dans QGIS 3, il n'y avait rien de tel - l'édition serait effectuée sur n'importe quelle fonctionnalité à tout moment. Maintenant, nous rendons à nouveau disponible la sélection de fonctionnalité ("lock") - clic-droit.

Dans les versions antérieures de QGIS 3, un clic droit sur une entité faisait apparaître un petit menu contextuel proposant l'affichage de l'éditeur de sommets. Maintenant, un clic droit sur une entité affichera immédiatement l'éditeur de sommets et désactivera l'édition de toute autre entité.

Lorsqu'une fonctionnalité est "verrouillée", elle peut être à nouveau déverrouillée en cliquant dessus ou en cliquant sur une zone vide - cela nous ramènera au mode par défaut lorsque plusieurs fonctionnalités peuvent être modifiées.

Lorsqu'il y a plusieurs fonctionnalités dans un emplacement de souris, des clics droits répétés les boucleront - à chaque clic droit, vous vous verrouillerez sur une fonctionnalité différente. Enfin, lorsque toutes les fonctionnalités ont été proposées, aucune fonctionnalité ne sera verrouillée et d'autres clics droits relanceront la boucle.

Le verrouillage est possible en cliquant sur le sommet, l'arête ou l'intérieur d'une entité (pour les polygones).

Ajouter un nouveau sommet sans le déplacer

Il est désormais possible d'utiliser Maj + double-clic pour ajouter un nouveau sommet sans le placer à un nouvel emplacement. Parfois, cela est utile lorsque les utilisateurs souhaitent ajouter des sommets supplémentaires sur les segments existants.

Le mode "Couche actuelle" est désormais le mode par défaut

Parmi les deux modes de l'outil de sommet, "tous les calques" était celui par défaut. Mais d'après les commentaires des utilisateurs, cela semblait être un cas moins courant et les utilisateurs préfèrent avoir le "calque actuel" par défaut.