Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
specialspatial [2015/04/30 15:40] glaroc [Fonctions de bases pour des requêtes sur des couches uniques] |
specialspatial [2017/02/20 21: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_toothes_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. |
