Suite

Comment gérer deux éléments de carte dans une composition QGIS avec python ?


J'ai besoin de gérer deux éléments de carte différents dans la même composition de carte, avec un script Python autonome.

Chaque carte de compositeur a été référencée comme ceci :

composerMap1 = composition.getComposerMapById(0) composerMap2 = composition.getComposerMapById(1)

Ensuite, je suppose que je devrais alternativement régler sur Vrai et Faux les keepLayerSet variable, en utilisant la fonction setKeepLayerSet(), et chaque fois que je devrais ajouter un nouveau jeu de couches au moteur de rendu de carte, avec la fonction setLayerSet(layerlist).

Du moins, c'est ce que je pense… vu que c'est la procédure pour le logiciel de bureau QGIS. Mais cela ne fonctionne pas correctement : dans l'image exportée il y a toujours une carte vide, tandis que l'autre affiche le même ensemble de couches. Quelqu'un a-t-il essayé de faire la même chose et a-t-il un indice à partager? Merci!


Je ne sais pas si vous rencontrez toujours des problèmes avec cela, mais j'ai en effet une configuration pour produire des cartes à l'aide de la fonctionnalité de composition de QGIS via l'API Python.

Ma stratégie générale est : -

1) Créez un canevas de carte partagé utilisé par le compositeur, et toutes les cartes, etc. Le code pour créer d'abord la QgsComposition ressemble à :

ms = canvas.mapSettings() comp = QgsComposition(ms)

2) Ma composition a en effet 2 cartes distinctes. Après avoir lu dans mon modèle de compositeur XML, je m'y réfère de la même manière que vous, par ex. utilisant

comp.getComposerItemById(map_name)

3) En suivant les instructions du billet de blog de John Sutton lié ci-dessous :- avant de créer des cartes réelles, je m'assure que les cartes sont correctement liées au canevas, en appelant :-

map_item.setMapCanvas(canvas) map_item.zoomToExtent(canvas.extent())

4) Avant de créer le PDF de sortie, appelez

composition.refreshItems()

Dans mon cas, j'avais déjà défini les couches que je voulais utiliser pour chaque carte dans le fichier XML, je n'ai donc pas eu besoin de les modifier davantage dans le script Python. En effet, je les ai verrouillés chacun en « mode de verrouillage des couches ». Mais j'ai également testé leur modification en Python en changeant le tableau des couches de la carte, et cela a fonctionné. Par exemple. voici un exemple de remplacement de la 2ème couche (d'où l'indice #1) d'une des cartes :

layerSet = map_item.layerSet() layerSet[1] = ptua_iso_layer_id map_item.setLayerSet(layerSet)

Remarque : en général, j'avais beaucoup de problèmes avec la génération de cartes vierges lors du chargement de couches à partir de projets jusqu'à ce que j'élabore les différentes "meilleures pratiques" pour créer un script QGIS à exécuter en externe sur QGIS, notamment en veillant à définir le QGIS path, appelez QgsApplication.initQgis(), etc. Créer un canevas partagé et le lier au projet chargé via un QgsLayerTreeMapCanvasBridge semble une bonne approche, voir cet article de blog pratique et cet exemple de code de Richard Sutton : - http://kartoza.com /comment-créer-un-rapport-qgis-pdf-avec-quelques-lignes-de-python/

J'espère que cela t'aides!


Introduction à QGIS


Les systèmes d'information géographique (SIG) sont utilisés dans un large éventail de domaines universitaires et appliqués. En termes simples, le SIG vous permet de combiner des données tabulaires (par exemple, une feuille de calcul) avec des limites géographiques (par exemple des cartes). QGIS (ou Quantum GIS) est un système d'information géographique open source, ce qui signifie qu'il peut être téléchargé et installé gratuitement sur votre bureau. Il fonctionne sous Windows, Mac OS X et Linux. Si vous avez déjà utilisé ArcGIS, QGIS est très similaire, sauf qu'il a moins de fonctionnalités mais qu'il est gratuit.


18.2.2.1. La barre d'outils¶

Le panneau Propriétés de l'élément de carte intègre une barre d'outils avec les fonctionnalités suivantes :

Définir le canevas de la carte pour qu'il corresponde à l'étendue du canevas principal

Afficher l'étendue actuelle de la carte dans le canevas principal

Définir l'échelle de la carte pour qu'elle corresponde à l'échelle du canevas principal

Définir le canevas principal pour qu'il corresponde à l'échelle actuelle de la carte

Signets : définissez l'étendue de l'élément de la carte pour qu'elle corresponde à un signet spatial existant

Modifier l'étendue de la carte de manière interactive : effectuez un panoramique et un zoom de manière interactive dans l'élément de carte

Paramètres d'étiquetage : contrôle le comportement des étiquettes d'entités (placement, visibilité…)

définir une marge à partir des bords de la carte , une distance définissable par rapport aux limites de l'élément de la carte à l'intérieur de laquelle aucune étiquette ne doit être affichée

Autoriser les étiquettes tronquées sur les bords de la carte : contrôle si les étiquettes qui tombent partiellement en dehors de l'étendue autorisée de l'élément de carte doivent être rendues. Si coché, ces étiquettes seront affichées (lorsqu'il n'y a aucun moyen de les placer entièrement dans la zone visible). Si cette case n'est pas cochée, les étiquettes partiellement visibles seront ignorées.

Éléments bloquant les étiquettes : permet de marquer d'autres éléments de mise en page (tels que les barres d'échelle, les flèches nord, les cartes en médaillon, etc.) actif élément de la carte. Cela empêche que des étiquettes de carte ne soient placées sous ces éléments, ce qui oblige le moteur d'étiquetage à essayer un autre placement pour ces étiquettes ou à les supprimer complètement.

Si une Marge à partir des bords de la carte est définie, les étiquettes de carte ne sont pas placées plus près que la distance spécifiée des éléments de mise en page cochés.

Afficher les étiquettes non placées : peut être utilisé pour déterminer si des étiquettes sont manquantes dans la carte de mise en page (par exemple, en raison de conflits avec d'autres étiquettes de carte ou en raison d'un espace insuffisant pour placer l'étiquette) en les mettant en surbrillance dans une couleur prédéfinie .

Paramètres de découpage : permet de découper l'élément de la carte sur l'entité de l'atlas et sur les éléments de forme et de polygone :

Découper à l'entité d'atlas : vous pouvez déterminer que l'élément de carte de mise en page sera automatiquement découpé à l'entité d'atlas actuelle.

Différents modes de découpage sont disponibles :

Clip pendant le rendu uniquement : applique un clip basé sur le peintre, de sorte que les portions d'entités vectorielles situées à l'extérieur de l'entité atlas deviennent invisibles

Découper l'entité avant le rendu : applique le découpage avant le rendu des entités, de sorte que les bordures des entités qui tombent partiellement en dehors de l'entité de l'atlas seront toujours visibles sur la limite de l'entité de l'atlas

Rendre les entités d'intersection inchangées : rend toutes les entités qui coupent l'entité actuelle de l'atlas, mais sans couper leur géométrie.

Vous pouvez forcer les étiquettes à l'intérieur de la fonction d'atlas. Si vous ne souhaitez pas couper toutes les couches dans la fonction d'atlas, vous pouvez utiliser l'option Couper les couches sélectionnées.

Clip to item : il est possible de changer la forme de l'élément de la carte en utilisant un élément de forme ou de polygone de la mise en page d'impression. Lorsque vous activez cette option, la carte sera automatiquement découpée sur la forme sélectionnée dans la liste déroulante. Encore une fois, les modes de découpage mentionnés ci-dessus sont disponibles et les étiquettes peuvent être forcées à s'afficher uniquement à l'intérieur de la forme de découpage.


Vous utiliserez le géopandas bibliothèque pour travailler avec des données vectorielles dans Python. Vous utiliserez également matplotlib.pyplot pour tracer vos données.

Les fichiers de formes que vous importerez sont :

  • Un fichier de formes de polygones représentant les limites de notre site de terrain,
  • Un fichier de formes de lignes représentant des routes, et
  • Un fichier de formes de points représentant l'emplacement des sites de terrain sur le site de terrain de San Joachin.

Le premier fichier de formes que vous ouvrirez contient les emplacements des points des parcelles où les arbres ont été mesurés. Pour importer des fichiers de formes, vous utilisez la fonction geopandas read_file() . Notez que vous appelez la fonction read_file() en utilisant gpd.read_file() pour dire à python de rechercher la fonction dans la bibliothèque geopandas.


Faire des cartes statiques et traiter des géodonnées avec QGIS

GQIS est la principale application gratuite et open source de systèmes d'information géographique (SIG). Il est capable de traiter et d'analyser des géodonnées sophistiquées et peut également être utilisé pour concevoir des cartes basées sur des données de qualité publication.

Les possibilités sont presque infinies, mais vous n'avez pas besoin d'être un expert en SIG pour l'utiliser efficacement à la fois pour afficher des données géographiques dans des cartes statiques et pour traiter des données à utiliser dans la création de cartes interactives en ligne.

Lancez QGIS, et vous devriez voir un écran comme celui-ci :

Les données que nous utiliserons

Téléchargez les données de cette session à partir d'ici, décompressez le dossier et placez-le sur votre bureau. Il contient plusieurs sous-dossiers, avec les fichiers suivants :

Tremblements de terre

quakes_1964_2013_5+.csv Séismes d'une magnitude de 5 et plus qui se sont produits dans un cercle de 6 000 kilomètres de rayon, s'étendant du centre géographique de la zone continentale des États-Unis. À partir des données de l'U.S. Geological Survey.

seismic_risk Shapefile détaillant le risque de subir un tremblement de terre dommageable par emplacement pour une région géographique centrée sur la zone continentale des États-Unis, de l'U.S. Geological Survey.

seismic_risk_clip Les mêmes données, coupées aux frontières des États-Unis continentaux.

Général
  • ne_50m_admin_0_countries ne_50m_lakes Fichiers de formes globaux de Natural Earth donnant respectivement les limites des nations et des lacs.
  • gdp_pc_2013.csv gdp_pc_2013,csvt Fichier CSV avec les données de la Banque mondiale sur le produit intérieur brut par habitant pour les nations du monde en 2013, en dollars internationaux courants, corrigés du pouvoir d'achat dans différents territoires. Le deuxième fichier est nécessaire pour effectuer une « jointure » de données dans QGIS.
  • sf_test_addresses Shapefile avec des géolocalisations pour les mêmes adresses que nous avons géocodées lors de la session de ce matin.

Tempêtes

Storms.csv Shapefile avec des données sur les tempêtes tropicales et les ouragans dans l'Atlantique Nord compilées par la National Oceanic and Atmospheric Administration (NOAA) des États-Unis. J'ai traité les données brutes pour donner les champs suivants pour les tempêtes à partir de 1990 :

  • nom Nom officiel de chaque tempête Les tempêtes sans nom sont répertoriées comme Sans nom et également numérotées.
  • année mois jour heure minute Champs de date et d'heure pour chaque observation.
  • horodatage Champs de date et d'heure combinés en un horodatage complet pour chaque observation au format AAAA-MM-JJ HH:MM.
  • record_ident L'entrée L indique l'heure à laquelle une tempête a touché terre, définie comme le centre du système traversant une côte, enregistrée à partir de 1991.
  • Les options de statut incluent HU pour ouragan, TS pour tempête tropicale et TD pour dépression tropicale.
  • latitude longitude Coordonnées géographiques du centre du système à chaque observation.
  • max_wind_kts max_wind_kph max_wind_mph Vent maximum soutenu pour chaque observation dans différentes unités.
  • min_press Pression d'air minimale au centre du système pour chaque observation en millibars.

newhurdat-format.pdf Plus d'explications sur les données brutes sur les tempêtes de la NOAA, y compris la liste complète des codes d'état des tempêtes.

Syrie
  • 2013_Q1 Shapefile avec des données sur les événements violents de la guerre civile syrienne du premier trimestre de 2013, dérivées des données du projet GDELT. Voir ici pour en savoir plus sur la façon dont ces événements ont été classés.

Cartographier le risque sismique et les séismes historiques dans la zone continentale des États-Unis

Faire une carte choroplèthe montrant le risque sismique

Nous importerons d'abord un fichier de formes basé sur les données du U.S. Geological Survey, détaillant le risque de subir un tremblement de terre dommageable pour les 48 États inférieurs. Le fichier se trouve dans le sous-dossier seismic_risk_clip .

Sélectionnez Calque>Ajouter un calque vectoriel ou cliquez sur cette icône :

Dans la boîte de dialogue, cliquez sur Parcourir et accédez au fichier seismic_risk_clip.shp . Il est important de sélectionner le fichier avec l'extension .shp. Cliquez ensuite sur Ouvrir, et la carte suivante des États-Unis continentaux devrait apparaître, remplie d'une couleur aléatoire :

Vous pouvez désactiver la visibilité de n'importe quel calque en décochant sa case dans le panneau Calques. Cela peut être utile pour voir l'état des couches qui seraient autrement masquées.

Ces commandes vous permettent d'effectuer un panoramique et un zoom sur l'affichage :

Vous pouvez concentrer l'affichage sur toute l'étendue d'un calque en cliquant dessus avec le bouton droit dans le panneau Calques et en sélectionnant Zoom sur le calque .

Notez EPSG:4326 en bas à droite. Ceci définit la projection de la couche. Cliquez avec le bouton droit sur seismic_risk_clip dans le panneau Calques à gauche et sélectionnez Propriétés>Général . Vous devriez voir ce qui suit sous Système de référence de coordonnées :

EPSG:4326 et WGS 84 sont deux noms pour la vue équirectangulaire non projetée que nous avons vue lors de la session d'ouverture. À proprement parler, il s'agit d'une donnée, pas d'une projection. Nous sélectionnerons une projection pour notre travail plus tard. Cliquez sur Annuler ou sur OK pour fermer les propriétés de cette couche.

Importons maintenant un fond de carte pour ce projet. Pour ce faire, nous utiliserons deux fichiers de formes Natural Earth, dans les sous-dossiers ne_50m_admin_0_countries et ne_50m_lakes . Importez les fichiers de formes comme précédemment, puis faites-les glisser et déposez-les dans le panneau Calques afin qu'ils apparaissent dans l'ordre suivant :

Après avoir importé tous les calques, enregistrez votre projet en sélectionnant Projet>Enregistrer dans le menu du haut. Continuez à enregistrer vos projets à intervalles réguliers.

Nous allons maintenant styliser le fond de carte. Cliquez avec le bouton droit sur ne_50m_admin_0_countries dans le panneau Calques et sélectionnez Propriétés>Style . Nous allons donner à la terre une seule couleur, donc l'option par défaut du symbole unique dans le menu déroulant du haut est correcte. Cliquez sur Remplissage simple pour appeler les options suivantes :

Cliquez sur Couleurs de remplissage pour appeler le sélecteur de couleur de remplissage. Il existe une gamme d'options. Dans l'onglet par défaut, saisissez la valeur HEX #cccccc dans la zone de notation HTML pour sélectionner une couleur grise neutre :

Cliquez sur OK, puis répétez le processus pour Border , en lui donnant la couleur #ffffff pour le blanc. Cliquez sur OK pour fermer les fenêtres Propriétés, en acceptant les modifications :

Nous avons importé ne_50_m_lakes pour inclure les Grands Lacs sur la carte, et non pour afficher les petits lacs. Par conséquent, en stylisant la couche des lacs, nous devons filtrer les petits lacs. Cela signifie un style en fonction des valeurs de données, nous devons donc examiner la table de données attachée à ce fichier de formes.

Sélectionnez ne_50_m_lakes dans le panneau Calques, cliquez avec le bouton droit et sélectionnez Ouvrir la table attributaire , ou cliquez sur cette icône dans la barre d'outils en haut :

Notez que la table contient un champ appelé scalerank , dans lequel les plus grands lacs, y compris les Grands Lacs, ont la valeur 0 .

Cliquez avec le bouton droit sur ne_50_m_lakes dans le panneau Calques et sélectionnez Propriétés>Style . Sélectionnez Catégorisé dans le menu déroulant en haut, et sous Colonne, sélectionnez scalerank . Cliquez sur le bouton Classer, puis sélectionnez tout sauf le symbole avec la valeur 0 :

Cliquez sur le bouton Supprimer pour supprimer les autres symboles, puis double-cliquez sur le symbole restant. Dans la boîte de dialogue suivante, sélectionnez Remplissage simple et remplacez la couleur de remplissage par #4c4c4c et le style de bordure par No Pen :

Pour que la couleur de l'océan d'arrière-plan corresponde aux grands lacs, sélectionnez Projet>Propriétés du projet>Général dans le menu du haut et remplacez la Couleur d'arrière-plan par #4c4c4c :

La carte devrait maintenant ressembler à ceci :

Nous devons maintenant colorer les zones de la couche seismic_risk_clip. Ouvrez sa table attributaire et notez qu'elle contient un champ appelé ACC_VAL . Ces chiffres se réfèrent à l'accélération du sol prévue pour un grand séisme avec une probabilité de 2 % de se produire dans 50 ans, exprimée en pourcentage de g, l'accélération d'un corps tombant sous l'effet de la gravité. Les chiffres vont jusqu'à 200, ce qui signifie un tremblement de terre avec une accélération du sol de deux fois g. Les détails des unités n'ont pas d'importance pour la plupart des gens, nous allons donc simplement diviser les données en cinq catégories, du risque faible à élevé de subir un tremblement de terre dommageable.

Pour ce faire, fermez la table attributaire et appelez Properties>Style pour la couche seismic_risk_clip. Sélectionnez Gradué dans le menu déroulant en haut, qui permet de colorer les données en fonction des valeurs d'une variable continue. Sélectionnez 5 sous Classes , puis Nouveau dégradé de couleurs. sous Rampe de couleurs . Bien que QGIS dispose de nombreuses rampes de couleurs disponibles, nous profiterons de cette opportunité pour appeler un schéma de couleurs séquentiel ColorBrewer. Dans la boîte de dialogue, sélectionnez ColorBrewer puis Reds , puis cliquez sur OK :

Vous devrez donner un nom au dégradé de couleurs - le Reds5 par défaut convient. Sélectionnez ACC_VAL sous Colonne, puis cliquez sur le bouton Classer pour produire l'affichage suivant :

Notez que le menu déroulant Mode propose diverses options pour définir automatiquement les limites entre les cinq classes ou groupes, ce qui inclut les options Intervalle égal et Quantile (nombre égal).

Cependant, dans ce cas, le choix n'a pas d'importance car nous allons définir les bacs manuellement, en utilisant les valeurs que j'ai sélectionnées après avoir consulté la propre carte de l'USGS, pour mettre en évidence les zones à risque sismique le plus élevé.

Double-cliquez sur le premier symbole et sélectionnez 19 pour la valeur supérieure et cliquez sur OK . Ensuite, double-cliquez sur l'étiquette de ce symbole et modifiez le texte en bas . Continuez à modifier les valeurs et les étiquettes jusqu'à ce que l'affichage ressemble à ceci :

(Notez que le champ ACC_VAL ne contient que des valeurs entières, nous n'excluons donc aucun nombre entre 19 et 20, et ainsi de suite. Veillez à ne pas exclure de données importantes lors de la définition des valeurs des bacs de données !)

Cliquez sur Modifier. , puis sélectionnez Remplissage simple et remplacez le style de bordure par Pas de stylo et cliquez sur OK . Cela supprimera les bordures noires entre les zones de couleur.

Si vous êtes susceptible de vouloir styliser les données dans le même format de la même manière à l'avenir, c'est une bonne idée de cliquer sur le bouton Enregistrer le style en bas à droite et d'enregistrer en tant que fichier de style de couche QGIS, qui est une variante de XML. Lorsqu'il est chargé à l'aide du style de chargement . en bas à gauche, il appliquera automatiquement le style enregistré aux futures cartes de données similaires que vous souhaitez styler de la même manière.

Cliquez maintenant sur OK pour fermer la fenêtre Propriétés>Style afin d'accepter les modifications apportées au style de la couche seismic_risk_clip. La carte devrait ressembler à ceci :

C'est le bon moment pour donner une projection au projet. Comme notre carte montre des zones à haut risque sismique pour les États-Unis, une projection Albers Equal Area Conic est un bon choix.

Sélectionnez Project>Project Properties>CRS (pour Coordinate Reference System) dans le menu du haut, et cochez Activer la transformation CRS « à la volée ». Cela convertira également toutes les couches ultérieures que nous importons dans la projection d'Albers.

Tapez Albers dans la zone Filtre et sélectionnez USA_Contiguous_Albers_Equal_Area_Conic , qui a le code EPSG:102003 :

Cliquez sur OK et la carte devrait être reprojetée. Remarquez comment EPSG:102003 apparaît maintenant en bas à droite :

Ajouter une couche montrant les tremblements de terre modérés et importants au cours des 50 dernières années

Les données de cette couche se trouvent dans le fichier quakes_1964_2013_5+.csv , que vous avez créé à l'aide de l'API USGS tremblements de terre lors de la session de ce matin. Comme vous vous en souviendrez, il comprend tous les tremblements de terre d'une magnitude de 5 et plus de 1964 à 2013 inclus, dans un cercle d'un rayon de 6 000 kilomètres à partir du centre des États-Unis continentaux.

Pour importer un fichier CSV ou un autre fichier texte délimité avec des points décrits par des coordonnées de latitude et de longitude, sélectionnez Calque>Ajouter un calque de texte délimité dans le menu du haut ou cliquez sur cette icône :

Accédez au fichier contenant les données sismiques et assurez-vous que la boîte de dialogue est renseignée comme ceci :

(Si votre fichier n'est pas un fichier CSV, vous devrez sélectionner le délimiteur correct, et si vos champs de latitude et de longitude ont d'autres noms, vous devrez peut-être sélectionner le champ X (longitude) et le champ Y (latitude) manuellement.)

Lorsque vous cliquez sur OK, il vous sera demandé de sélectionner une projection, ou CRS, pour les données. Vous pourriez être tenté de sélectionner la même projection d'Albers que celle que nous avons définie pour le projet, mais cela provoquera une erreur. QGIS se chargera de la conversion vers cette projection : étant donné que ces données ne sont pas encore projetées, nous devrions plutôt sélectionner WGS 84 EPSG:4326 :

Cliquez sur OK et un grand nombre de points seront ajoutés à la carte :

Maintenant, nous allons styliser ces points, en leur donnant une seule couleur mais en les dimensionnant en fonction de la quantité de secousses causées par le séisme. Ouvrez la table attributaire de la couche séisme et notez qu'elle contient un champ appelé mag , pour la magnitude du séisme. Il s'agit d'une échelle logarithmique, de sorte qu'une différence de magnitude de 1 correspond à une différence de 10 fois dans le mouvement de la terre, tel qu'enregistré sur un sismogramme, comme le montre cette calculatrice :

Cela signifie que l'équation pour convertir la magnitude en amplitude de la secousse, telle qu'enregistrée sur un sismogramme, est : Amplitude = 10^Magnitude .

Sélectionnez Properties>Style pour la couche séismes et acceptez Single Symbol dans le menu déroulant supérieur, car nous n'allons pas colorer les points en fonction des valeurs des données.

Sélectionnez Marqueur simple, changez le Remplissage en Neige et la Bordure en Fer.

Sélectionnez ensuite Marqueur et ajustez la transparence à 50 % :

Maintenant, cliquez sur le bouton Avancé à droite et sélectionnez le champ Taille à l'échelle , en vous assurant que la zone Echelle est cochée (cela garantira que les cercles que nous allons dessiner sont correctement mis à l'échelle, par zone). Sélectionnez ensuite - expression - et remplissez la boîte de dialogue comme suit :

Cela incorpore la formule ci-dessus, puis divise par 200 000 - ce que j'ai trouvé par essais et erreurs donne un affichage raisonnable.

La carte finale devrait ressembler à ceci :

Exportez la carte finie dans des formats d'images vectorielles ou raster

Nous allons exporter notre carte finie avec une légende expliquant les couleurs, changeons donc le nom de ce champ pour qu'il s'affiche bien. Cliquez avec le bouton droit sur seismic_risk_clip dans le panneau Calques, sélectionnez Renommer et appelez-le Risque sismique .

Pour exporter la carte, sélectionnez Projet>Nouveau compositeur d'impression , attribuez un nom approprié au compositeur et cliquez sur OK . Dans la fenêtre d'édition d'impression, sélectionnez les options suivantes dans l'onglet Composition :

Cliquez maintenant sur l'icône Ajouter une nouvelle carte :

Tracez un rectangle sur la zone de la page et la carte devrait apparaître :

Si vous n'êtes pas satisfait de l'affichage, supprimez la carte ajoutée et ajustez l'affichage principal comme il convient à l'aide des commandes de panoramique et de zoom. Une fois que vous êtes satisfait de l'apparence de votre carte dans l'éditeur d'impression, cliquez sur l'icône Ajouter une légende :

Tracez un rectangle sur la carte à l'endroit où vous souhaitez que la légende apparaisse. Ne vous inquiétez pas pour le redimensionner pour l'instant, car nous allons modifier les entrées qui apparaissent :

Dans l'onglet Propriétés de l'élément, supprimez d'abord le titre et ouvrez les éléments de la légende en cliquant sur le petit triangle à côté :

Sélectionnez et supprimez, à l'aide du symbole moins rouge, chacun des éléments à l'exception du risque sismique . Fermez ensuite les éléments de la Légende en cliquant sur le petit triangle.

Ouvrez Polices et modifiez la couleur de la police. neiger . Notez que le type et les tailles de police peuvent être personnalisés en cliquant sur les autres boutons.

Décochez Arrière-plan et redimensionnez la légende si nécessaire, en faisant glisser les carrés blancs :

Enfin, nous ajouterons du texte pour expliquer les cercles. Cliquez sur l'icône Ajouter une nouvelle étiquette et dessinez un rectangle à l'endroit où vous souhaitez que le texte apparaisse :

Sous l'onglet Propriétés de l'élément, saisissez le texte dans la zone Propriétés principales, supprimez à nouveau l'arrière-plan et ajustez la taille de la police selon vos besoins.

Enfin, la carte peut être exportée aux formats vectoriels SVG et PDF en cliquant sur ces icônes d'exportation :

Notez que l'exportation SVG peut ne pas découper exactement la carte sur la page. Cependant, cela peut être corrigé dans un éditeur de graphiques vectoriels tel qu'Adobe Illustrator ou Inkscape, puis enregistré au format PDF. Cela peut fournir un meilleur rendu de la carte que via une exportation PDF directe.

La carte finale devrait ressembler à ceci :

Vous pouvez enregistrer vos cartes au format d'image raster (JPG, PNG, etc.) à partir de Print Composer en cliquant sur l'icône Enregistrer l'image :

Vous pouvez également enregistrer en tant qu'image à partir de l'affichage principal de la carte (donc sans aucune légende ni annotation ajoutée dans Print Composer) en sélectionnant Projet>Enregistrer en tant qu'image dans le menu du haut.

Enregistrez le projet QGIS, puis sélectionnez Project>New pour ouvrir un nouveau projet.

Traitement des géodonnées avec QGIS

En plus d'afficher des données géographiques, QGIS est un outil puissant de traitement des données à utiliser dans le logiciel lui-même ou par d'autres applications de cartographie. Si vous souhaitez créer des cartes en ligne, par exemple, comme nous le ferons au cours de la deuxième journée de cet atelier, QGIS peut vous aider à mettre vos données sous la bonne forme. Le reste de cette session présente certaines des fonctionnalités de traitement de données de QGIS, mais il y a beaucoup plus à explorer - voir la lecture supplémentaire pour approfondir.

Joindre des données externes à un fichier de formes

Dans votre nouveau projet, importez le fichier de formes ne_50m_admin_0_countries. Faites un clic droit dessus dans le panneau Calques et enregistrez sous . un fichier de formes ESRI , , en conservant le WGS 84 CRS par défaut. Accédez à votre dossier de travail, appelez le nouveau fichier gpd_pc et cochez l'option Ajouter un fichier enregistré à la carte .

Ouvrez sa table attributaire du nouveau fichier de formes et notez qu'il contient un champ appelé iso_a3 , qui est un code à trois lettres pour chaque pays, attribué par l'Organisation internationale de normalisation.

Utilisez maintenant Ajouter une couche vectorielle pour importer le fichier gdp_pc_2013.csv . (Notez que lorsque vous joignez des données externes dans un fichier CSV à un fichier de formes, vous ne pas importer le fichier en tant que fichier texte délimité, comme nous l'avons fait précédemment pour afficher les données sur une carte.)

Après l'importation, ce fichier apparaîtra comme un tableau isolé dans le panneau Calques. Sélectionnez-le et ouvrez la table attributaire pour afficher les données, qui contiennent les noms de pays, les codes de pays à trois lettres et les données sur le PIB par habitant en 2013 :

Notez que certaines cellules contiennent la valeur -99 , qui est ici utilisée pour désigner des valeurs nulles, où il n'y a pas de données.

Le même sous-dossier avec le fichier contient également le fichier gdp_pc_2013.csvt . Celui-ci contient des informations sur le type de données dans chaque champ du fichier CSV, dans ce cas :

Lorsque nous effectuons la jointure, cela indiquera à QGIS quel type de données se trouve dans chaque champ du fichier CSV. String indique une chaîne de texte, Real indique des nombres pouvant inclure des décimales, tandis que Integer indique des nombres entiers. Sans ces informations, QGIS traitera tous les champs du fichier comme du texte.

Fermez à nouveau la table attributaire, cliquez avec le bouton droit sur le fichier de formes gdp_pc et sélectionnez Properties>Joins . Cliquez sur le signe plus vert et remplissez la boîte de dialogue comme suit pour joindre le fichier CSV au fichier de formes par les codes de pays à trois lettres iso_a3 :

Une fois la jointure terminée, ouvrez à nouveau la table attributaire du fichier de formes pour confirmer que les données du fichier CSV sont apparues.

Enregistrer les données jointes dans un autre format de géodonnées

Cliquez avec le bouton droit sur le fichier de formes joint, sélectionnez Enregistrer sous . et notez que les options de format incluent le fichier de formes ESRI, GeoJSON et KML. Vous pouvez également choisir une projection (CRS) pour le nouveau fichier de formes et restreindre son étendue par les coordonnées de latitude et de longitude.

Enregistrez ce fichier sous GeoJSON avec un nom approprié, en conservant le WGS 84 CRS par défaut.

Simplifiez les données jointes et enregistrez à nouveau

Lors de l'affichage de géodonnées en ligne, il est parfois nécessaire de simplifier les données de limites pour donner une taille de fichier plus petite, permettant un chargement plus rapide dans un navigateur Web.

Sélectionnez le fichier de formes joint, puis sélectionnez Vector>Geometry Tools>Simplify geometries , et remplissez la boîte de dialogue comme suit, en l'enregistrant en tant que shapefile avec un nouveau nom :

En pratique, vous souhaiterez expérimenter différentes valeurs pour la tolérance de simplification afin d'obtenir un compromis acceptable entre la taille du fichier et l'apparence à des niveaux de zoom élevés.

Enregistrez le fichier simplifié sous GeoJSON et comparez la taille du fichier avec la version précédemment enregistrée.

Alternativement, vous pouvez également simplifier les géodonnées en dehors de QGIS en utilisant le mapshaper application web. Cela présente l'avantage que vous pouvez déplacer un curseur pour contrôler le degré de simplification et voir l'effet que cela aura avant d'exporter le fichier simplifié.

Utiliser les outils de géotraitement vectoriel de QGIS

Démarrez un nouveau projet et importez à la fois le fichier de formes ne_50m_admin_0_countries et le fichier de formes sismic_risk. Il s'agit de la version originale du fichier que nous avons utilisé pour réaliser la carte du risque sismique, s'étendant au-delà des frontières et du littoral des États-Unis :

Ouvrez la table attributaire du fichier de formes des pays et sélectionnez les États-Unis :

Fermez à nouveau la table attributaire et désactivez brièvement la visibilité de la couche de risque sismique pour confirmer que les États-Unis sont maintenant mis en évidence.

Sélectionnez Vector>Geoprocessing Tools>Clip et remplissez la boîte de dialogue comme suit, en vous assurant que Use only selected features est coché pour le calque Clip :

Cliquez sur OK et un nouveau fichier de formes sera créé, découpé aux frontières et au littoral des États-Unis. C'est ainsi que j'ai créé le fichier de formes que nous avons utilisé pour créer la première carte.

Parfois, vous devrez peut-être dessiner votre propre forme à découper, plutôt que d'utiliser des géodonnées existantes. Lorsque vous dessinez des formes basées sur les rues de la ville, cette application Web peut être un outil utile. Sélectionnez les options Polygone et KML dans le menu déroulant et dessinez votre forme sur le fond de carte.

Collez le code résultant dans un fichier texte et enregistrez-le avec l'extension .kml . Vous pouvez ensuite utiliser ce fichier KML comme couche de clip dans QGIS.

Regardez les autres options dans le menu Vector>Geoprocessing Tools. Leurs icônes donnent une bonne idée de ce qu'ils voient ici pour une explication complète. (Intersect est similaire à Clip , sauf qu'il inclut les données des deux couches dans la nouvelle table attributaire.)

Ouvrez maintenant un nouveau projet et importez le fichier de formes sf_test_addresses . J'ai créé ce shapefile à partir des adresses que nous avons géocodées lors de la session de ce matin. Je l'ai enregistré dans une projection Google Mercator, également connue sous le nom d'EPSG:900913 , utilisée pour Google et d'autres cartes en ligne.

C'est important, car nous allons créer un "tampon" définissant des zones à moins de 1 000 pieds du point le plus proche. Pour cela, nous avons besoin d'une projection avec des unités définies en distance, plutôt qu'en degrés, qui est l'unité du datum WGS 84.

La création d'un fichier de formes tampon est une tâche que vous pouvez effectuer si, par exemple, déterminez les zones interdites aux délinquants sexuels soumis à des restrictions de résidence.

Sélectionnez Vecteur>Outils de géotraitement>Tampon(s). et remplissez la boîte de dialogue comme suit :

La sélection de la valeur maximale de 99 sous Segments à approximer garantit que les formes résultantes sont aussi lisses que possible. La distance tampon est définie sur 304,8 car les unités de projection sont des mètres, cette valeur donne les 1 000 pieds dont nous avons besoin. Cocher les résultats de Dissoudre les tampons fusionne les tampons qui se chevauchent dans le même polygone.

Cliquez sur OK , et ceci devrait être le résultat :

Installer les plugins QGIS

QGIS a une communauté active de développeurs open source qui ont développé
de nombreux plugins qui effectuent des tâches spécifiques. Nous allons installer trois plugins utiles pour compléter notre tutoriel de traitement des géodonnées.

Dans le menu du haut, sélectionnez Plugins>Gérer et installer les plugins. et recherchez MMQGIS . Sélectionnez le plugin et cliquez sur le bouton Installer le plugin. Répétez le processus pour Points2One .

Vous devriez maintenant avoir un menu MMQGIS en haut, et l'icône suivante devrait apparaître dans la barre d'outils de gauche :

Convertir des points en lignes pour les données sur les tempêtes de l'Atlantique Nord

Ouvrez un nouveau projet et importez le fichier de formes Storms. Il se compose de points, chacun correspondant à une seule observation de chaque tempête, que nous devons transformer en pistes pour chaque tempête, à l'aide du plugin Points2One.

Pour ce faire, nous avons besoin d'un champ pour identifier de manière unique chaque tempête, alors ouvrons la table attributaire et regardons les données. Étant donné que les noms de tempête peuvent être réutilisés au cours d'années différentes, cela n'existe pas. Cependant, si nous combinons year et name , ce sera un identifiant unique pour chaque tempête. (En fait, il divisera également une tempête, "Zeta", qui a commencé en décembre 2005 et s'est poursuivie en janvier 2006, en deux, mais nous ne nous en soucierons pas.)

Pour ce faire, sélectionnez l'icône Toggle Editing en haut à gauche, qui ressemble à un crayon :

Cliquez ensuite sur l'icône Open Field Calculator dans la barre d'outils supérieure, qui ressemble à un boulier :

Remplissez la boîte de dialogue comme suit :

La formule que nous utilisons pour créer un nouveau champ est :

Ici, nous « concaténons » les deux champs en une seule chaîne de texte, en les séparant par un tiret. Dans le calculateur de champs de QGIS, les champs existants dans les données sont désignés par des guillemets doubles et les chaînes de texte par des guillemets simples. Notez que vous devez sélectionner Texte (chaîne) pour Type de champ de sortie , car la concaténation est une fonction valide uniquement pour les chaînes de texte. La définition de la largeur du champ de sortie sur 50 garantit qu'aucune des valeurs ne sera tronquée.

Cliquez sur OK , puis cliquez à nouveau sur l'icône Basculer la modification et enregistrez la modification. Ouvrez la table attributaire pour confirmer que le nouveau champ a été créé.

Cliquez maintenant sur l'icône Points2One et remplissez la boîte de dialogue comme suit :

Acceptez l'option d'affichage sur la carte, qui devrait maintenant ressembler à ceci :

Note that most of the entries in the attribute table for the new shapefile will not be valid, as they come from just one of the points used to make each line. If you were to use this file, I suggest editing the attribute table: Use the Delete column option to remove all fields apart from year and name . You can access Delete column with the following icon:

Use hexagonal binning to summarize data on the Syrian conflict

Open a new project and import the 2013_Q1 shapefile from the syria_violence subfolder. This displays violent events in Syria’s civil war from the first quarter of 2013, as displayed on this interactive, and is in a Google Mercator projection.

If you open the attribute table for this shapefile, you will see it contains more than 10,000 entries — so clearly many of the points are lying over the top of one another.

We will use the MMQGIS plugin to create a hexagonal grid over the map, and then count the number of points in each grid cell, to get a better picture of the intensity of the conflict by location.

First use the zoom and pan controls to ensure that there is a little space around the points in the displayed area, giving a view something like this:

Select MMQGIS>Create>Create Grid Layer and fill in the dialog box as follows:

Center X and Middle Y will by default be the longitude and latitutude for the center of the displayed area. Make sure to select Hexagon (polygon) , and then set the H Spacing V Spacing will adjust automatically. Because we are working with a shapefile in Google Mercator projection, the units will be in meters, so here we have set a horizonatal spacing for the hexagons of 20 kilometers if we were working with an unprojected file in the WGS 84 datum, the units would be in degrees.

Click OK to create the grid layer, giving it the same Google Mercator projection. Drag the new grid layer under the points in the Layers panel and the map should look like this:

Now select Vector>Analysis Tools>Points in Polygon and fill in the dialog box as follows:

This will create a new shapefile with a field PNTCNT , giving the number of points in each cell in the grid. Again, give this a Google Mercator projection. Save this file in your working folder in GeoJSON format.

Save the project, as you will need it for the assignment.

Assignment

Use your GeoJSON file of 2013 GDP per capita for the world’s nations to replicate this map:

You will need to change to a World_Robinson EPSG:54030 projection. When you do so, you may find the map transforms to a strange series of geometric shapes. If this happens, right-click on the layer, select Properties>Rendering and uncheck Simplify geometry .

When styling the map, use a ColorBrewer sequential color scheme with 5 classes. Then use the Add class button to add a class/bin for the countries with no data. Remember that these will have the value -99 , so you can then set the values and labels for each bin in the data manually. Use a neutral gray for the countries with no data.

You will find that Antarctica disappears from the map, as it had no value for GDP per capita. But you can add it to the map by importing the world shapefile and moving this layer beneath your styled map.


Computers in the library managed by Penn State Information Technology offer a variety of software applications. A list of software is available through the IT Computer Lab Software webpage. A number of software programs also are available via remote access, so that you have access to the tools you need, no matter your location.

All student computers on library computers at all campuses have access to ArcGIS software (100 concurrent users).

Accessing the current desktop version of ArcGIS
ArcGIS software is available on all windows ITS computers. Some departments provide access to ArcGIS software. AcrGIS Online Basemap and streaming data is accessible via ArcGIS Desktop.

On MAC computers, ArcGIS software is accessible through using the WebApps.

Accessing ArcGIS through WebApps

From other computers (such as your home computer or a computer without the Desktop version), ArcGIS software is available through:

To upload and download files to your pass space (maximum of 10GB) or U drive (maximum storage of 500MB), access:

It is important to consider your data storage options while working with GIS data. A Penn State member may use pass space. To increase your PASS space storage to 10GB, this is the ITS Secure Server&rsquos Directory Quota utility. Pass and U drives are accessible from any Penn State computer.

For assistance using this guide, or to schedule a consultation with a subject-matter expert on the use of GIS in your research, please visit the Request a Consultation page:


Introduction to QGIS¶

Get started with QGIS with this introduction covering everything needed to get you going.

Authors: Professor Scott Madry

QGIS for Hydrological applications¶

Recipes for Catchment Hydrology and Water management

Authors: Hans van der Kwast, Kurt Menke

Discover QGIS 3.x¶

A workbook for Classroom or Independent Study

Hands-On Geospatial Analysis with R and QGIS¶

Practical examples with real-world projects in GIS, Remote sensing, Geospatial data management and Analysis using the R programming language


Qt Creator¶

Qt is a software development framework that is used to develop applications that run on Windows, Mac, Linux as well as various mobile operating systems. QGIS itself is written using the Qt framework. For plugin development, we will use an application called Qt Creator to design the interface for our plugin.

Download and install the Qt Creator installer from Qt Offline Installers. Assurez-vous de sélectionner Qt Creator on the download page. Note that you will have to create a free Qt account to install the package.

OSGeo4w installer for QGIS on Windows include a copy of Qt Designer program which is a lightweight version of Qt Creator and perfectly suitable for building plugins. You may skip downloading Qt Creator and use it instead from C:OSGeo4W64inqgis-designer .

Python Bindings for Qt¶

Since we are developing the plugin in Python, we need to install the python bindings for Qt. The method for installing these will depend on the platform you are using. For building plugins we need the pyrcc5 command-line tool.

Relevant pyhon bindings are included in the QGIS install on Windows. But to use them from the plugin folder, we need to indicate the path to the QGIS install.

Create a Windows Batch file (.bat extension) with the following content and save it on your computer as compile.bat . We will later copy this file to the plugin folder. If you installed QGIS at a different path, replace the C:OSGeo4W64in with your path.

Install the Homebrew package manager. Install PyQt package by running the following command:

Depending on your distribution, find and install the python-qt5 package. On Ubuntu and Debian-based distributions, you can run the following command:

You may find that QGIS has already installed this package.

A Text Editor or a Python IDE¶

Any kind of software development requires a good text editor. If you already have a favorite text editor or an IDE (Integrated Development Environment), you may use it for this tutorial. Otherwise, each platform offers a wide variety of free or paid options for text editors. Choose the one that fits your needs.

This tutorial uses Notepad++ editor on Windows.

Notepad++ is a good free editor for windows. Download and install the Notepad++ editor.

If you are using Notepad++, makes sure to go to Settings ‣ Preferences ‣ Tab Settings and enable Replace by space . Python is very sensitive about whitespace and this setting will ensure tabs and spaces are treated properly.

Plugin Builder plugin¶

There is a helpful QGIS plugin named Plugin Builder which creates all the necessary files and the boilerplate code for a plugin. Find and install the Plugin Builder plugin. See Using Plugins for more details on how to install plugins.

Plugins Reloader plugin¶

This is another helper plugin which allows iterative development of plugins. Using this plugin, you can change your plugin code and have it reflected in QGIS without having to restart QGIS every time. Find and install the Plugin Reloader plugin. See Using Plugins for more details on how to install plugins.

Plugin Reloader is an experimental plugin. Make sure you have checked Show also experimental plugins in Plugin Manager settings if you cannot find it.


Geographical database

PostGIS is an extension of the PostgreSQL Database Management System (DBMS), which enables the manipulation of geographic (spatial) information in the form of geometries (points, lines, polygons), in accordance with the standards established by the Open Geospatial Consortium , and RASTER data. It allows PostgreSQL to be a spatial DBMS for use by geographic information systems.

The PostgreSQL / PostGIS database has a proven track record as a geographic data management system capable of supporting large volumes of data as well as meeting a significant query load. This database management system is for example used by the IGN to manage all the data produced and marketed by the Institute and by Mappy to exploit all the geographic data necessary for web services (map, traffic information, point of interest, course, etc).


Voir la vidéo: Importing Excel file CSV Coordinates in QGIS ENGLISH (Octobre 2021).