Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
specialspatial [2017/02/16 15:19] glaroc [Importer des données de QGIS dans PostGIS] |
specialspatial [2017/02/20 16:59] (current) glaroc [Exercice 6] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Atelier du CSBQ sur l'utilisation des logiciels libres pour l'analyse spatiale avancée. ====== | ====== Atelier du CSBQ sur l'utilisation des logiciels libres pour l'analyse spatiale avancée. ====== | ||
- | 30 avril 2015, Université McGill, Montréal. | + | 23 février 2017, Université du Québec à Rimouski. |
* [[https://prezi.com/gtw8-gwn8gqt/atelier-du-csbq-sur-lutilisation-des-logiciels-libres-pour-lanalyse-spatiale-avancee/|Lien vers la présentation Prezi]] | * [[https://prezi.com/gtw8-gwn8gqt/atelier-du-csbq-sur-lutilisation-des-logiciels-libres-pour-lanalyse-spatiale-avancee/|Lien vers la présentation Prezi]] | ||
Line 21: | Line 21: | ||
Then type | Then type | ||
<file> | <file> | ||
- | sudo gedit /etc/postgresql/9.3/main/postgresql.conf | + | sudo gedit /etc/postgresql/9.5/main/postgresql.conf |
</file> | </file> | ||
enlevez le # devant #listen_addresses = 'localhost' | enlevez le # devant #listen_addresses = 'localhost' | ||
Line 58: | Line 58: | ||
- Assurez-vous que l'extension DB Manager est activée dans la liste des extensions (plugins). | - Assurez-vous que l'extension DB Manager est activée dans la liste des extensions (plugins). | ||
- Allez à Database... DB Manager. Cliquez sur PostGIS et naviguez vers la base de données spatiales (spatialdb) que vous avez créé plus tôt. | - Allez à Database... DB Manager. Cliquez sur PostGIS et naviguez vers la base de données spatiales (spatialdb) que vous avez créé plus tôt. | ||
- | - Cliquez sur l'icône Import Layer/File et choisissez le fichier "obis_toothed_whales.shp". Choisissez "Create spatial index" et laissez les autres options inchangées. Nommez la nouvelle table "obis_whales" en minuscules. Souvenez-vous que les noms de tables PostgreSQL ne devraient jamais inclure de lettres majuscules, d'espaces, de caractères spéciaux ou d'accents. | + | - Cliquez sur l'icône Import Layer/File et choisissez le fichier "obis_toothed_whales.shp". Choisissez "Create spatial index" et "Create single-part geometries instead of multi-part" et laissez les autres options inchangées. Nommez la nouvelle table "obis_whales" en minuscules. Souvenez-vous que les noms de tables PostgreSQL ne devraient jamais inclure de lettres majuscules, d'espaces, de caractères spéciaux ou d'accents. |
- Répétez ces étapes pour importer EEZ_IHO_union_V2.shp (nommez là eez_iho), meow_ecos.shp (nommez là meow) et TM_WORLD_BORDERS.shp (nommez là tm_world). | - Répétez ces étapes pour importer EEZ_IHO_union_V2.shp (nommez là eez_iho), meow_ecos.shp (nommez là meow) et TM_WORLD_BORDERS.shp (nommez là tm_world). | ||
Line 92: | Line 92: | ||
Extraire les latitudes et longitudes de chaque occurrence de "Delpinus delphis". Note: nous devons utiliser une sous-requête et la fonction ST_Dump dans ce cas car les occurrences d'odontocètes ont été importées en format MULTIPOINT et les fonctions ST_X/ST_Y exigent des POINT. | Extraire les latitudes et longitudes de chaque occurrence de "Delpinus delphis". Note: nous devons utiliser une sous-requête et la fonction ST_Dump dans ce cas car les occurrences d'odontocètes ont été importées en format MULTIPOINT et les fonctions ST_X/ST_Y exigent des POINT. | ||
<file postgresql> | <file postgresql> | ||
- | SELECT ST_X(geom), ST_Y(geom) FROM (SELECT (ST_Dump(geom)).geom FROM obis_whales WHERE tname='Delphinus delphis') a | + | SELECT ST_X(geom), ST_Y(geom) FROM obis_whales WHERE tname='Delphinus delphis'; |
- | </file> | + | |
- | + | ||
- | Nous pouvons créer une colonne de type POINT au lieu de MULTIPOINT | + | |
- | <file postgresql> | + | |
- | ALTER TABLE obis_whales ADD COLUMN geompt GEOMETRY(POINT,4326); | + | |
- | UPDATE obis_whales SET geompt=(ST_Dump(geom)).geom; | + | |
</file> | </file> | ||
Distance au plus proche voisin pour chaque localisation de béluga | Distance au plus proche voisin pour chaque localisation de béluga | ||
<file postgresql> | <file postgresql> | ||
- | SELECT DISTINCT ON(a.id_0) a.id_0, b.id_0 as nn, ST_Distance(a.geom,b.geom) as dist FROM obis_whales a, obis_whales b WHERE a.id_0 <> b.id_0 AND a.tname='Delphinapterus leucas' AND b.tname='Delphinapterus leucas' ORDER BY a.id_0,dist | + | SELECT DISTINCT ON(a.id) a.id, b.id as nn, ST_Distance(a.geom,b.geom) as dist FROM obis_whales a, obis_whales b WHERE a.id <> b.id AND a.tname='Delphinapterus leucas' AND b.tname='Delphinapterus leucas' ORDER BY a.id,dist |
</file> | </file> | ||
- | **EXERCICE 1** Trouvez le pays qui a la plus gros ratio entre son la racine carrée de son aire et son périmètre. Quel pays a le plus petit ratio? | + | **EXERCICE 1** Trouvez le pays qui a la plus gros ratio entre la racine carrée de son aire et son périmètre. Quel pays a le plus petit ratio? |
++++ Réponse | | ++++ Réponse | | ||
Line 215: | Line 209: | ||
\\ | \\ | ||
\\ | \\ | ||
- | ===== Utilisation de PostGIS et GRASS dans R ===== | + | ===== Utilisation de PostGIS, QGIS et GRASS dans R ===== |
{{::special_spatial_code_r.r|Téléchargez le fichier R contenant le code pour cette partie de l'atelier}}. | {{::special_spatial_code_r.r|Téléchargez le fichier R contenant le code pour cette partie de l'atelier}}. | ||
+ | * Package [[http://cran.r-project.org/web/packages/RQGIS/index.html|RQGIS]] | ||
* Package [[http://cran.r-project.org/web/packages/spgrass6/index.html|spgrass6]] | * Package [[http://cran.r-project.org/web/packages/spgrass6/index.html|spgrass6]] | ||
* Package [[http://cran.r-project.org/web/packages/RPostgreSQL/index.html|RPostgreSQL]] | * Package [[http://cran.r-project.org/web/packages/RPostgreSQL/index.html|RPostgreSQL]] | ||
* Package [[http://cran.r-project.org/web/packages/rgdal/index.html|rgdal]] | * Package [[http://cran.r-project.org/web/packages/rgdal/index.html|rgdal]] | ||
+ | |||
===== Utilisation de Processing dans QGIS ===== | ===== Utilisation de Processing dans QGIS ===== | ||
- | * [[http://docs.qgis.org/2.6/en/docs/training_manual/processing/index.html|QGIS Training manual. Processing Guide. ]] | + | * [[http://docs.qgis.org/2.14/fr/docs/training_manual/processing/index.html|QGIS Training manual. Guide du module Traitements. ]] |
- | * [[http://docs.qgis.org/2.6/en/docs/user_manual/processing/index.html|QGIS User manual - Processing framework.]] | + | * [[http://docs.qgis.org/2.14/en/docs/user_manual/processing/index.html|QGIS User manual - Processing framework.]] |
Line 283: | Line 279: | ||
7 - Ajoutez "Extract by attributes" au modèle (sous QGIS geoalgorithms). Spécifiez "Pays" comme "Input Layer", = comme opérateur, NAME comme "Selection Attribute" et "Nom du pays" comme "Value". | 7 - Ajoutez "Extract by attributes" au modèle (sous QGIS geoalgorithms). Spécifiez "Pays" comme "Input Layer", = comme opérateur, NAME comme "Selection Attribute" et "Nom du pays" comme "Value". | ||
- | 8 - Ajoutez un "Fixed Distance Buffer" au modèle. Spécifiez "Output from Extract by Attributes" comme "Input", et mettre la distance à 0.5 (c'est en degrés puisque la carte est en degrés). Choisissez de "dissolve the output". | + | 8 - Ajoutez un "Fixed Distance Buffer" au modèle. Spécifiez "Extracted (attribute)" comme "Input", et mettre la distance à 0.5 (c'est en degrés puisque la carte est en degrés). À "dissolve the output", choisissez 'No'. |
9 - Ajoutez un autre vecteur au modèle. Nommez-le "Zones". Spécifiez "Polygon" comme "shape type". | 9 - Ajoutez un autre vecteur au modèle. Nommez-le "Zones". Spécifiez "Polygon" comme "shape type". | ||
- | 10 - Ajoutez "Intersection" au modèle. Spécifiez une intersection entre "output of the Buffer" et la couche "Zones". | + | 10 - Ajoutez "Intersection" au modèle. Spécifiez une intersection "output of the Buffer" comme Input et "Zones" comme couche d'intersection. |
- | 11 - Ajoutez Field Calculator au modèle. Spécifiez new_area comme "Result Field Name" et $area comme Formule. Ceci calculera l'aire des polygones de chaque section de mer dans la zone tampons autour du pays en degrés. | + | 11 - Ajoutez Field Calculator au modèle. Spécifiez Intersection comme Input. Spécifiez new_area comme "Result Field Name" et $area comme Formule. Ceci calculera l'aire des polygones de chaque section de mer dans la zone tampons autour du pays en degrés. |
12 - Maintenant, ajoutez le script R créé plus haut à l'étape 2 au modèle. "Input" est la sortie de l'étape 11 (Field Calculator). Appelez le fichier sortant "Pays_Mers" | 12 - Maintenant, ajoutez le script R créé plus haut à l'étape 2 au modèle. "Input" est la sortie de l'étape 11 (Field Calculator). Appelez le fichier sortant "Pays_Mers" | ||
Votre modèle devrait ressembler à ceci: | Votre modèle devrait ressembler à ceci: | ||
+ | {{::graphical_modeler3_processing.png?direct&200|}} | ||
- | {{::graphical_modeler1.png?direct&200|}} | ||
- | 13 - Vous êtes maintenant prêt à rouler le modèle! Sauvez d'abord le modèle et appelez le Pays_mers. Ensuite, fermez le "Graphical Modeler" et double-cliques sur votre modèle dans le Toolbox sous Models. Spécifiez TM_World_Borders comme Pays and EEZ_IHO_union_v2 Pour les Zones. Spécifiez le nom d'un pays de votre choix (ex. Canada). | + | 13 - Vous êtes maintenant prêt à rouler le modèle! Sauvez d'abord le modèle et appelez le Pays_mers. Ensuite, fermez le "Graphical Modeler" et double-cliquez sur votre modèle dans le Toolbox sous Models. Spécifiez TM_World_Borders comme Pays and EEZ_IHO_union_v2 Pour les Zones. Spécifiez le nom d'un pays de votre choix (ex. France). |
- | 14 - Quand l’algorithme cesse de rouler, vous devriez vois un graphique montrant l'aire de chanque mer le long de la côte du pays choisi. | + | 14 - Quand l’algorithme cesse de rouler, vous devriez voir un graphique montrant l'aire de chaque mer le long de la côte du pays choisi. |