- Timestamp:
- 26/09/2011 16:17:55 (13 years ago)
- Location:
- trunk/workshop-foss4g
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-foss4g/about_data.rst
r19 r37 1 1 .. _about_data: 2 2 3 Partie 5 : Ãpropos de nos données3 Partie 5 : A propos de nos données 4 4 ================================== 5 5 6 Les données utilisées dans ces travaux proatiques sont quatre shapefiles de la ville de New York, et une table attributaire des variables socio démographiques. Nous les avons charger sous forme de tables PostGIS et nous ajouterons les données sociédémographiques plus tard.6 Les données utilisées dans ces travaux proatiques sont quatre shapefiles de la ville de New York, et une table attributaire des variables socio-démographiques. Nous les avons charger sous forme de tables PostGIS et nous ajouterons les données socio-démographiques plus tard. 7 7 8 Cette partie fournit le nombre d'enregistrements et les attributs de chacun de nos ensembles de données. Ces valeurs attributaire et les relationsont essentielles pour nos future analyses.8 Cette partie fournit le nombre d'enregistrements et les attributs de chacun de nos ensembles de données. Ces valeurs attributaires et les relations sont essentielles pour nos future analyses. 9 9 10 10 Pour visualiser la nature de vos tables depuis pgAdmin, cliquez avec le bouton droit sur une table et sélectionnez **Properties**. Vous trouverez un résumé des propriétés de la table, incluant la liste des attributs d'une tables dans l'onglet **Columns**. … … 13 13 ----------------- 14 14 15 Un blo que ressencé est la plus petite entité géographique pour laquelle un ressencement est raporté. Toutes les couches représentant les niveaus suppérieurs (régions, zones de métro, comtés) peuvent être contruit à partir de ces bloques. Nous avons attaché des données démographiques au bloques.15 Un bloc ressencé est la plus petite entité géographique pour laquelle un ressencement est raporté. Toutes les couches représentant les niveaus suppérieurs (régions, zones de métro, comtés) peuvent être contruites à partir de ces blocs. Nous avons attaché des données démographiques au bloc. 16 16 17 17 Nombre d'enregistrements : 36592 … … 21 21 22 22 * - **blkid** 23 - Un code à 15 chiffres qui permet d'identifier de maniÚre unique chaque blo que**block**. Eg: 36005000100900023 - Un code à 15 chiffres qui permet d'identifier de maniÚre unique chaque bloc **block**. Eg: 360050001009000 24 24 * - **popn_total** 25 - Nombre total de personnes dans le blo que25 - Nombre total de personnes dans le bloc 26 26 * - **popn_white** 27 - Nombre de personne se déclarant comme de couleur blanche27 - Nombre de personnes se déclarant comme de couleur blanche 28 28 * - **popn_black** 29 - Nombre de personne se déclarant comme de couleur noire29 - Nombre de personnes se déclarant comme de couleur noire 30 30 * - **popn_nativ** 31 - Nombre de personne se déclarant comme natif d'amérique du nord31 - Nombre de personnes se déclarant comme natif d'amérique du nord 32 32 * - **popn_asian** 33 - Nombre de personne se déclarant comme asiatique33 - Nombre de personnes se déclarant comme asiatique 34 34 * - **popn_other** 35 - Nombre de personne se déclarant comme faisant partie d'une autre catégorie35 - Nombre de personnes se déclarant comme faisant partie d'une autre catégorie 36 36 * - **hous_total** 37 - Nombre de piÚce dans le bloque37 - Nombre de piÚces dans le bloc 38 38 * - **hous_own** 39 - Nombre de propriétaires occupant le blo que39 - Nombre de propriétaires occupant le bloc 40 40 * - **hous_rent** 41 - Nombre de locataire occupant le bloque41 - Nombre de locataires occupant le bloc 42 42 * - **boroname** 43 43 - Nom du quartier. Manhattan, The Bronx, Brooklyn, Staten Island, Queens 44 44 * - **the_geom** 45 - Polygone représentant les contours d'un blo que45 - Polygone représentant les contours d'un bloc 46 46 47 47 .. figure:: ./screenshots/nyc_census_blocks.png 48 48 49 *Pourcentage de la population qui est de couleur noire*49 *Pourcentage de la population qui est de couleur noire* 50 50 51 51 .. note:: 52 52 53 To get census data into GIS, you need to join two pieces of information: the actual data (text), and the boundary files (spatial). There are many options for getting the data, including downloading data and boundaries from theCensus Bureau's `American FactFinder <http://factfinder.census.gov>`_.53 Pour obetneir les données d'un recenssement dans votre SIG, vous avez besoin de joindre deux informations: Les données socio-démographiques et les limites géographiques des blocs/quartiers. To get census data into GIS, you need to join two pieces of information: the actual data (text), and the boundary files (spatial). Il existe plusieurs moyen de se les procurer, dans notre cas elles ont été récupérées sur le site Internet du Census Bureau's `American FactFinder <http://factfinder.census.gov>`_. 54 54 55 55 nyc_neighborhoods 56 56 ----------------- 57 57 58 New York has a rich history of neighborhood names and extent. Neighborhoods are social constructs that do not follow lines laid down by the government. For example, the Brooklyn neighborhoods of Carroll Gardens, Red Hook, and Cobble Hill were once collectively known as "South Brooklyn." And now, depending on which real estate agent you talk to, the same four blocks in the-neighborhood-formerly-known-as-Red-Hook can be referred to as Columbia Heights, Carroll Gardens West, or Red Hook!58 Les quartiers de New York 59 59 60 N umber of records: 12960 Nombre d'enregistrements: 129 61 61 62 62 .. list-table:: … … 64 64 65 65 * - **name** 66 - N ame of the neighborhood66 - Nom du quartier 67 67 * - **boroname** 68 - Name of the New York borough. Manhattan, The Bronx, Brooklyn, Staten Island, Queens68 - Name de la section dans New York (Manhattan, The Bronx, Brooklyn, Staten Island, Queens) 69 69 * - **the_geom** 70 - Polygon boundary of the neighborhood70 - Limite polygonale du quartier 71 71 72 72 .. figure:: ./screenshots/nyc_neighborhoods.png 73 73 74 * The neighborhoods of New York City*74 *Les quartiers de New York* 75 75 76 76 nyc_streets 77 77 ----------- 78 78 79 The street centerlines form the transportation network of the city. These streets have been flagged with types in order to distinguish between such thoroughfares as back alleys, arterial streets, freeways, and smaller streets. Desirable areas to live might be on residential streets rather than next to a freeway. 79 Les rues de New York 80 80 81 N umber of records: 1909181 Nombre d'enregistrements: 19091 82 82 83 83 .. list-table:: … … 85 85 86 86 * - **name** 87 - N ame of the street87 - Nom de la rue 88 88 * - **oneway** 89 - Is the street one-way? "yes" = yes, "" = no89 - Est-ce que la rue est à sens unique ? "yes" = yes, "" = no 90 90 * - **type** 91 - Road type. Eg. primary, secondary, residential, motorway91 - Type de voie (Cf: primary, secondary, residential, motorway) 92 92 * - **the_geom** 93 - Li near centerline of the street93 - Ligne du centre de la rue. 94 94 95 95 .. figure:: ./screenshots/nyc_streets.png 96 96 97 * The streets of New York City. Major roads are in red.*97 *Les rues de New York (les rues principales apparaissent en rouge)* 98 98 99 99 … … 101 101 ------------------- 102 102 103 The subway stations link the upper world where people live to the invisible network of subways beneath. As portals to the public transportation system, station locations help determine how easy it is for different people to enter the subway system. 103 Les stations de métro de New York 104 104 105 N umber of records: 491105 Nombre d'enregistrements: 491 106 106 107 107 .. list-table:: … … 109 109 110 110 * - **name** 111 - N ame of thestation111 - Nom de la station 112 112 * - **borough** 113 - N ame of the New York borough. Manhattan, The Bronx, Brooklyn, Staten Island, Queens113 - Nom de la section dans New York (Manhattan, The Bronx, Brooklyn, Staten Island, Queens) 114 114 * - **routes** 115 - Subway lines that run through thisstation115 - Lignes de métro passant par cette station 116 116 * - **transfers** 117 - Li nes you can transfer to via thisstation117 - Lignes de métro accessibles depuis cette station 118 118 * - **express** 119 - Stations where express trains stop, "express" = yes, "" = no119 - Stations ou le train express s'arrête, "express" = yes, "" = no 120 120 * - **the_geom** 121 - Point location of thestation121 - Localisation ponctuelle de la station 122 122 123 123 .. figure:: ./screenshots/nyc_subway_stations.png 124 124 125 * Point locations for New York City subway stations*125 *Localisation ponctuelle des stations de métro de New York* 126 126 127 127 nyc_census_sociodata 128 128 -------------------- 129 129 130 There is a rich collection of social-economic data collected during the census process, but only at the larger geography level of census tract. Census blocks combine to form census tracts (and block groups). We have collected some social-economic at a census tract level to answer some of these more interesting questions about New York City. 130 Données socio-démographiques de la ville de New York 131 131 132 132 .. note:: 133 133 134 The ``nyc_census_sociodata`` is a data table. We will need to connect it to Census geographies before conducting any spatial analysis.135 134 La donnée ``nyc_census_sociodata`` est une table attributaire. Nous devrons nous connecter aux géométries correspondant à la zone du recenssement avant de conduire toute analyse spatiale . 135 136 136 .. list-table:: 137 137 :widths: 20 80 138 138 139 139 * - **tractid** 140 - An 11-digit code that uniquely identifies every census**tract**. Eg: 36005000100140 - Un code à 11 chiffre qui identifie chaque secteur de recessement. **tract**. Eg: 36005000100 141 141 * - **transit_total** 142 - N umber of workers in the tract142 - Nombre de travailleurs dans le secteur 143 143 * - **transit_public** 144 - N umber of workers in the tract who take public transit144 - Nombre de travailleurs dans le secteur utilisant les transports en commun 145 145 * - **transit_private** 146 - N umber of workers in the tract who use private automobiles / motorcycles146 - Nombre de travailleurs dans le secteur utilisant un véhicule privé 147 147 * - **transit_other** 148 - N umber of workers in the tract who use other forms like walking / biking148 - Nombre de travailleurs dans le secteur utilisant un autre moyen de transport 149 149 * - **transit_time_mins** 150 - Total number of minutes spent in transit by all workers in the tract(minutes)150 - Nombre total de minutes passées dans les transports par l'ensemble des travailleurs du secteur (minutes) 151 151 * - **family_count** 152 - N umber of familes in the tract152 - Nombre de familles dans le secteur 153 153 * - **family_income_median** 154 - Median family income in the tract(dollars)154 - Revenu médiant par famille du secteur (dollars) 155 155 * - **family_income_aggregate** 156 - Total income of all families in the tract(dollars)156 - Revenu total de toutes les familles du secteur (dollars) 157 157 * - **edu_total** 158 - N umber of people with educational history158 - Nombre de personnes ayant un parcours scolaire 159 159 * - **edu_no_highschool_dipl** 160 - N umber of people with no highschool diploma160 - Nombre de personnes n'ayant pas de diplÃŽme d'éducation secondaire 161 161 * - **edu_highschool_dipl** 162 - N umber of people with highschool diploma and no further education162 - Nombre de personnes ayant un diplÃŽme d'éducation secondaire 163 163 * - **edu_college_dipl** 164 - N umber of people with college diploma and no further education164 - Nombre de personnes ayant un diplÃŽme de lycée 165 165 * - **edu_graduate_dipl** 166 - N umber of people with graduate school diploma166 - Nombre de personnes ayant un diplÃŽme de collÚge 167 167 -
trunk/workshop-foss4g/creating_db.rst
r19 r37 1 1 .. _creating_db: 2 2 3 Partie 3 : créer une base de données spatiales3 Partie 3 : Créer une base de données spatiales 4 4 =============================================== 5 5 … … 7 7 ----------------------- 8 8 9 Le "Dashboard" est une application centralisant les accÚs aux di verses partiede l'openGeo Suite.9 Le "Dashboard" est une application centralisant les accÚs aux différentes parties de l'openGeo Suite. 10 10 11 11 Lorsque vous démarrez le dashboard pour la premiÚre fois, il vous fournit une indication quand au mot de passe par défaut pour accéder à GeoServer. … … 15 15 .. note:: 16 16 17 La base de données PostGIS a été installée sans la moindre restriction d'accÚs pour les utilisateurs locaux (les util sateurs se connectant sur la même machine que celle faisant tourner le serveur de base de données). Cela signifie qu'il acceptera *toutes* les mots de passe que vous fournirez. Si vous devez vous connecter depuis un ordinateur distant, le mot de passe pour l'utilisateur ``postgres`` a utiliser est : ``postgres``.17 La base de données PostGIS a été installée sans la moindre restriction d'accÚs pour les utilisateurs locaux (les utilisateurs se connectant sur la même machine que celle faisant tourner le serveur de base de données). Cela signifie qu'il acceptera *tout* les mots de passe que vous fournirez. Si vous devez vous connecter depuis un ordinateur distant, le mot de passe pour l'utilisateur ``postgres`` a utiliser est : ``postgres``. 18 18 19 19 Pour ces travaux pratiques, nous n'utilserons que les parties de la section "PostGIS" du Dashboard. … … 21 21 #. PremiÚrement, nous devons démarrer les serveur de base de données PostGIS. Cliquez sur le bouton vert **Start** en haut à droite de la fenêtre du Dashboard. 22 22 23 #. La premiÚre fois que la Suite se démarre, elle initialise un espace de donnée et met en place des modÚles de bases de données. Ceci peut prendre quelque minutes. Une fois la Suite lancée, vous pouvez cliquer sur l'option **Manage** dans le composant *PostGIS* pour lancer l'outilspgAdmin.23 #. La premiÚre fois que la Suite se démarre, elle initialise un espace de données et met en place des modÚles de bases de données. Ceci peut prendre quelque minutes. Une fois la Suite lancée, vous pouvez cliquer sur l'option **Manage** dans le composant *PostGIS* pour lancer l'outil pgAdmin. 24 24 25 25 .. image:: ./screenshots/dashboard_02.png … … 27 27 .. note:: 28 28 29 PostgreSQL a de nombreux outils d'administration différents. Le premier est `psql <http://www.postgresql.org/docs/8.1/static/app-psql.html>`_ un outils en ligne de commande permettant de saisir des requêtes SQL. Un autre outilsd'administation populaire est l'outils graphique libre et gratuit `pgAdmin <http://www.pgadmin.org/>`_. Toutes les requêtes exécutées depuis pgAdmin peuvent aussi être utilisées depuis la ligne de commande avec psql.29 PostgreSQL dispose de nombreux outils d'administration différents. Le premier est `psql <http://www.postgresql.org/docs/8.1/static/app-psql.html>`_ un outil en ligne de commande permettant de saisir des requêtes SQL. Un autre outil d'administation populaire est l'outils graphique libre et gratuit `pgAdmin <http://www.pgadmin.org/>`_. Toutes les requêtes exécutées depuis pgAdmin peuvent aussi être utilisées depuis la ligne de commande avec psql. 30 30 31 #. Si c'est la premiÚre fois que vous lancez pgAdmin, you devriez avoir une entrée du type **PostGIS (localhost:54321)** déjà configurée dans pgAdmine. Double cliquez sur cet élément, et entrez le mot de passe de votre choix pour vous connecter au serveur.31 #. Si c'est la premiÚre fois que vous lancez pgAdmin, vous devriez avoir une entrée du type **PostGIS (localhost:54321)** déjà configurée dans pgAdmin. Double cliquez sur cet élément, et entrez le mot de passe de votre choix pour vous connecter au serveur. 32 32 33 33 .. image:: ./screenshots/pgadmin_01.png … … 40 40 ------------------------- 41 41 42 PostgreSQL fournit ce que l'on appÚle des modÚles de bases de données qui peuvent être utilisés lors de la création d'une nouevelle base. Cette nouvelle base contiendra alors une copie de tout ce qui est présent dans le modÚle. Lorsque vous installez PostGIS, une base de données appelé ``template_postgis`` a été créée. Si nous utilisons ``template_postgis`` comme model lors de la création de notre nouvelle base, la nouvelle base sera une base de données spatiales.42 PostgreSQL fournit ce que l'on appÚle des modÚles de bases de données qui peuvent être utilisés lors de la création d'une nouevelle base. Cette nouvelle base contiendra alors une copie de tout ce qui est présent dans le modÚle. Lorsque vous installez PostGIS, une base de données appelée ``template_postgis`` a été créée. Si nous utilisons ``template_postgis`` comme model lors de la création de notre nouvelle base, la nouvelle base sera une base de données spatiales. 43 43 44 #. Ouvrez l'arbre des bases de données et regardez quelles sont les base de données disponibles. La base ``postgres`` est la base de l'utilisateur (par défaut l'utilisteur postgres et elle n'est pas trÚs interressante pour nous). La base ``template_postgis`` est celle que nous utiliserontpour créer des bases de données spatiales.44 #. Ouvrez l'arbre des bases de données et regardez quelles sont les bases de données disponibles. La base ``postgres`` est la base de l'utilisateur (par défaut l'utilisateur postgres, donc pas trÚs interressante pour nous). La base ``template_postgis`` est celle que nous utiliserons pour créer des bases de données spatiales. 45 45 46 #. Cliquez avec le cli quedroit sur l'élément ``Databases`` et selectionnez ``New Database``.46 #. Cliquez avec le clic droit sur l'élément ``Databases`` et selectionnez ``New Database``. 47 47 48 48 .. image:: ./screenshots/pgadmin_02.png 49 49 50 .. note:: Si vous recevez un message d'erreur indiquant que la base de données (``template_postgis``) est utilisée par d'autre utilisateur , cela signifie que vous l'avez activé par innadvertance. Utilisez alors le cliquedroit sur l'élément ``PostGIS (localhost:54321)`` puis sélectionnez ``Disconnect``. Double cliquez sur le même élément pour vous reconnecter et essayez à nouveau.50 .. note:: Si vous recevez un message d'erreur indiquant que la base de données (``template_postgis``) est utilisée par d'autre utilisateurs, cela signifie que vous l'avez activé par inadvertance. Utilisez alors le clic droit sur l'élément ``PostGIS (localhost:54321)`` puis sélectionnez ``Disconnect``. Double cliquez sur le même élément pour vous reconnecter et essayez à nouveau. 51 51 52 52 #. Remplissez le formulaire ``New Database`` puis cliquez sur **OK**. … … 65 65 .. image:: ./screenshots/pgadmin_03.png 66 66 67 #. Selectionnez la nouvelle base de données ``nyc`` et ouvrez là pour consulter son contenu. Vous verrez le schéma ``public``, et sous cela un e semble de tables de métadonnées spécifiques à PostGIS -- ``geometry_columns`` et ``spatial_ref_sys``.67 #. Selectionnez la nouvelle base de données ``nyc`` et ouvrez là pour consulter son contenu. Vous verrez le schéma ``public``, et sous cela un ensemble de tables de métadonnées spécifiques à PostGIS -- ``geometry_columns`` et ``spatial_ref_sys``. 68 68 69 69 .. image:: ./screenshots/pgadmin_04.png 70 70 71 #. Cliquez sur le bouton SQL query comme présenté ci-dessou (ou allez dans *Tools > Query Tool*).71 #. Cliquez sur le bouton SQL query comme présenté ci-dessous (ou allez dans *Tools > Query Tool*). 72 72 73 73 .. image:: ./screenshots/pgadmin_05.png … … 81 81 .. note:: 82 82 83 C'est notre premiÚre requpete SQL. ``postgis_full_version()`` est une fonction ed'administration qui renvoit le numéro de version et les options de configuration utilisées lors de la compilation.83 C'est notre premiÚre requpete SQL. ``postgis_full_version()`` est une fonction d'administration qui renvoit le numéro de version et les options de configuration utilisées lors de la compilation. 84 84 85 #. Cliquez sur le bouton **Play** dans la bar d'outils (ou utilisez la touche **F5**) pour "exécuter la requête." La requête retournera la chaîne de cractÚres suivante, confirmant que PostGIS est correctement activé dans la base de données.85 #. Cliquez sur le bouton **Play** dans la barre d'outils (ou utilisez la touche **F5**) pour "exécuter la requête." La requête retournera la chaîne de caractÚres suivante, confirmant que PostGIS est correctement activé dans la base de données. 86 86 87 87 .. image:: ./screenshots/pgadmin_06.png 88 88 89 Vous venez de cré éune base de données PostGIS avec succÚs !89 Vous venez de créer une base de données PostGIS avec succÚs ! 90 90 91 91 Liste des fonctions -
trunk/workshop-foss4g/geometries.rst
r20 r37 1 1 .. _geometries: 2 2 3 Partie 8 : les géometries3 Partie 8 : Les géometries 4 4 ===================== 5 5 … … 7 7 ------------ 8 8 9 Dans :ref:`une partie précédente<loading_data>` nous avons charger différentes données. Avant de commencer à jouer avec, commençons par regarder quelques exemples simples. Depuis pgAdmin, choisissez encore la base de donnée **nyc** et ouvrez l'outils de requêtage SQL. Copiez cette exemple de code SQL (aprÚs avoir supprimer le contenu présentdéfaut si nécessaire) puis exécutez-le.9 Dans :ref:`une partie précédente<loading_data>` nous avons charger différentes données. Avant de commencer à jouer avec, commençons par regarder quelques exemples simples. Depuis pgAdmin, choisissez de nouveau la base de donnée **nyc** et ouvrez l'outil de requêtage SQL. Copiez cette exemple de code SQL (aprÚs avoir supprimer le contenu présent par défaut si nécessaire) puis exécutez-le. 10 10 11 11 .. code-block:: sql … … 33 33 Dans le respect de la spécification Simple Features for SQL (:term:`SFSQL`), PostGIS fournit deux tables pour récupérer et s'informer sur les types de géométries disponibles dans une base de données spécifique. 34 34 35 * La premiÚre table, ``spatial_ref_sys``, définit tout les systÚme de projection connude la base de données et sera décrite plus en détals plus tard.35 * La premiÚre table, ``spatial_ref_sys``, définit tout les systÚmes de projection connus de la base de données et sera décrite plus en détals plus tard. 36 36 * La seconde table, ``geometry_columns``, fournit une liste de toutes les "entités" (définit comme un objet avec un attribut géométrique) et les détails de base relatives à ces entités. 37 37 … … 54 54 * La colonne ``type`` définit le type de géométrie comme décrit plus tÃŽt, nous avons déjà vu les points et les lignes. 55 55 56 En interrogeant cette table, les clients SIG et les libraires peuvent déterminer quoi attendre lors de la récup ration des données et peuvent réaliser les opération de reprojection, transformation ou rendu sans avoir ainspecter chaque géométrie.57 58 Réprésenter des objets du mo de réel56 En interrogeant cette table, les clients SIG et les libraires peuvent déterminer quoi attendre lors de la récupération des données et peuvent réaliser les opération de reprojection, transformation ou rendu sans avoir à inspecter chaque géométrie. 57 58 Réprésenter des objets du monde réel 59 59 ----------------------------------- 60 60 61 La spécification Simple Features for SQL (:term:`SFSQL`), le standard ayant guidé le développement de PostGIS, définit comment les objets du monde réel doivent être représentés. En considérant une forme continue à une seule résolution fixe, nous obten u un piÚtre représentation des objets. SFSQL considÚre uniquement les représentations en 2 dimensions. PostGIS a étendu cela en ajoutant les représentation en 3 et 4 dimensions, plus récemment la spécification SQL-Multimedia Part 3 (:term:`SQL/MM`) a officiellement définit sa propre représenation.62 63 Notre table exemple contient différents types de géométries Nous pouvons récupérer les informations de chaque objetsen utilisant les fonctions qui lisent les métadonnées de la géométrie.61 La spécification Simple Features for SQL (:term:`SFSQL`), le standard ayant guidé le développement de PostGIS, définit comment les objets du monde réel doivent être représentés. En considérant une forme continue à une seule résolution fixe, nous obtenons une piÚtre représentation des objets. SFSQL considÚre uniquement les représentations en 2 dimensions. PostGIS a étendu cela en ajoutant les représentation en 3 et 4 dimensions. Plus récemment, la spécification SQL-Multimedia Part 3 (:term:`SQL/MM`) a officiellement définit sa propre représentation. 62 63 Notre table exemple contient différents types de géométries. Nous pouvons récupérer les informations de chaque objet en utilisant les fonctions qui lisent les métadonnées de la géométrie. 64 64 65 65 * :command:`ST_GeometryType(geometry)` retourne le type de la géométrie … … 90 90 :align: center 91 91 92 Un **point** spatiale représente une localisation unique sur la Terre. Ce point est représenté par une seule coordonnée (incluant soit 2, 3 ou 4 dimensions). Les points sont utilisés pour représenter des objets lorsque le détails exact du contour n'est pas important à une échelle donnée. Par exemple, les villes sur une carte du monde pourraient être décrite sous la forme de points alors qu'une carte régionale utiliserait une représentation polygonale des villes.92 Un **point** représente une localisation unique sur la Terre. Ce point est représenté par une seule coordonnée (incluant soit 2, 3 ou 4 dimensions). Les points sont utilisés pour représenter des objets lorsque le détails exact du contour n'est pas important à une échelle donnée. Par exemple, les villes sur une carte du monde peuvent être décrite sous la forme de points alors qu'une carte régionale utiliserait une représentation polygonale des villes. 93 93 94 94 .. code-block:: sql … … 102 102 POINT(0 0) 103 103 104 Cerain ts des fonctions spécifiques pour travailler avec les points sont :104 Ceraines des fonctions spécifiques pour travailler avec les points sont : 105 105 106 106 * :command:`ST_X(geometry)` retourne la composante X … … 115 115 WHERE name = 'Point'; 116 116 117 La table des stations de métro sde la ville de New York (``nyc_subway_stations``) est un ensemble de données représenté sous la forme de points. La requête SQL suivante reverra la géométrie associée à un point (dans la colonne :command:`ST_AsText`).117 La table des stations de métro de la ville de New York (``nyc_subway_stations``) est un ensemble de données représenté sous la forme de points. La requête SQL suivante reverra la géométrie associée à un point (dans la colonne :command:`ST_AsText`). 118 118 119 119 .. code-block:: sql … … 130 130 :align: center 131 131 132 Une **ligne** est un chemin entre plusieurs points. Elle prend la forme d'un tablea y ordonné de deux (ou plus) points. Les routes et les riviÚres sont tipyquement représenté sous la forme de lignes. Une ligne est dire **fermée** si elle commence et se fini en un même point. Elle est dite **simple** si elle ne se coupe pas ni se toucheelle-même (sauf à ses extrémités si elle est fermée). Une ligne peut être à la fois **fermée** et **simple**.133 134 Le réseau des rues de New York (``nyc_streets``) a été chargé plus tÃŽt. Cet ensemble de données contient les détails comme le nom et le type. Une rue du monde réelle pourrait être constituée de plusieurs lignes, chacune représentant une file de laavec différents attributs.132 Une **ligne** est un chemin entre plusieurs points. Elle prend la forme d'un tableau ordonné de deux (ou plusieurs) points. Les routes et les riviÚres sont typiquement représentés sous la forme de lignes. Une ligne est dite **fermée** si elle commence et fini en un même point. Elle est dite **simple** si elle ne se coupe pas ou ne se touche pas elle-même (sauf à ses extrémités si elle est fermée). Une ligne peut être à la fois **fermée** et **simple**. 133 134 Le réseau des rues de New York (``nyc_streets``) a été chargé auparavant. Cet ensemble de données contient les détails comme le nom et le type. Une rue du monde réel pourrait être constituée de plusieurs lignes, chacune représentant une file avec différents attributs. 135 135 136 136 La requête SQL suivante retourne la géométrie associée à une ligne (dans la colonne :command:`ST_AsText`) : … … 174 174 Un polygone est représenté comme une zone. Le contour externe du polygone est représenté par une ligne simple et fermée. Les trous sont représenté de la même maniÚre. 175 175 176 Les polygones sont utilis er pour représenter les objets dont les tailles et la forme sont importants. Les limites de villes, les parks, les batiments ou les cours d'eau sont habituellement représenté par des polygones lorsque l'échelle est suffisament élevée pour voir distinguer leurs zones. Les routes et les riviÚres peuvent parfois être représenté comme des polygones.177 178 La requête SQL suivante retournera la géométrie associée à un polygon (dans la colonne :command:`ST_AsText`).176 Les polygones sont utilisés pour représenter les objets dont les tailles et la forme sont importants. Les limites de villes, les parcs, les bâtiments ou les cours d'eau sont habituellement représenté par des polygones lorsque l'échelle est suffisament élevée pour voir distinguer leurs zones. Les routes et les riviÚres peuvent parfois être représenté comme des polygones. 177 178 La requête SQL suivante retournera la géométrie associée à un polygone (dans la colonne :command:`ST_AsText`). 179 179 180 180 .. code-block:: sql … … 193 193 POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1)) 194 194 195 Le premier polygon a seulement une ligne. Le second a un "trou". La plupart des systÚmes de rendu graphique supportent le concept de "polygone", mais les systÚme SIG sont les seuls a accepter que les polygones puissecontenir des trous.195 Le premier polygone a seulement une ligne. Le second a un "trou". La plupart des systÚmes de rendu graphique supportent le concept de "polygone", mais les systÚme SIG sont les seuls à accepter que les polygones puissent contenir des trous. 196 196 197 197 .. image:: ./screenshots/polygons.png 198 198 199 Certaines des fonctions spatiales spécifique de traitement des polygones sont :199 Certaines des fonctions spatiales spécifiques de traitement des polygones sont : 200 200 201 201 * :command:`ST_Area(geometry)` retourne l'aire de polygones 202 * :command:`ST_NRings(geometry)` retourne le nombre de contour (habituellement 1, plus lorsqu'il y a des trous)203 * :command:`ST_ExteriorRing(geometry)` re ntourne le contour extérieur202 * :command:`ST_NRings(geometry)` retourne le nombre de contours (habituellement 1, plus lorsqu'il y a des trous) 203 * :command:`ST_ExteriorRing(geometry)` retourne le contour extérieur 204 204 * :command:`ST_InteriorRingN(geometry,n)` retourne le contour intérieur numéro n 205 205 * :command:`ST_Perimeter(geometry)` retourne la longueur de tout les contours … … 223 223 ~~~~~~~~~~~~~~~~ 224 224 225 Il y a quatre types de collections, qui regroupe ensembles plusieurs géométries simples.225 Il y a quatre types de collections, qui regroupe plusieurs géométries simples ensemble. 226 226 227 227 * **MultiPoint**, une collection de points 228 228 * **MultiLineString**, une collection de lignes 229 229 * **MultiPolygon**, une collection de polygones 230 * **GeometryCollection**, une collection shétérogÚne de n'importe quelle géométrie (dont d'autre collections)231 232 Les collections sont un concept présents dans les logiciels SIG plus que dans les application de rendu graphique générique. Elles sont utiles pour directement modeler les objets du monde réel comme des objet spatiaux. Par exemple, comment modéliser une parcelle quié coupée par un chemin ? Comme un **MultiPolygon**, ayant une partie de chaque coté du chemin.230 * **GeometryCollection**, une collection hétérogÚne de n'importe quelle géométrie (dont d'autre collections) 231 232 Les collections sont un concept présents dans les logiciels SIG plus que dans les applications de rendu graphique génériques. Elles sont utiles pour directement modeler les objets du monde réel comme des objet spatiaux. Par exemple, comment modéliser une parcelle qui a été coupée par un chemin ? Comme un **MultiPolygon**, ayant une partie de chaque coté du chemin. 233 233 234 234 .. image:: ./screenshots/collection2.png … … 255 255 * :command:`ST_Length(geometry)` retourne la longueur totale des composantes de types lignes 256 256 257 258 259 257 Entré / Sortie des géométries 260 258 ----------------------------- 261 259 262 Dans la base de données, les géométries sont sto quées dans un format utilisé uniquement par le programme PostGIS. Afin que des programmes externes puissent insérer et récupérer les données utiles, elles ont besoin d'être converties dans un format compris par l'application. Heureusement, PostGIS supporte un grand nombre de formats en entrée et en sortie :260 Dans la base de données, les géométries sont stockées dans un format utilisé uniquement par le programme PostGIS. Afin que des programmes externes puissent insérer et récupérer les données utiles, elles ont besoin d'être converties dans un format compris par l'application. Heureusement, PostGIS supporte un grand nombre de formats en entrée et en sortie : 263 261 264 262 * Format texte bien connu (Well-known text :term:`WKT`) … … 321 319 .. image:: ./geometries/represent-06.png 322 320 323 En plus de pouvoir générer les différents formats en sortie (WKT, WKB, GML, KML, JSON, SVG), PostGIS permet aussi de lire 4 de ces formats (WKT, WKB, GML, KML). La plupart des application utilisent des fonctions créant des géométries à l'aide du format WKT ou WKB, mais les autres marchent aussi. Voici un exemple qui lit du GML et retourne du JSON :321 En plus de pouvoir générer les différents formats en sortie (WKT, WKB, GML, KML, JSON, SVG), PostGIS permet aussi de lire 4 de ces formats (WKT, WKB, GML, KML). La plupart des applications utilisent des fonctions créant des géométries à l'aide du format WKT ou WKB, mais les autres marchent aussi. Voici un exemple qui lit du GML et retourne du JSON : 324 322 325 323 .. code-block:: sql … … 332 330 ------------------- 333 331 334 `Populate_Geometry_Columns <http://postgis.org/docs/Populate_Geometry_Columns.html>`_: s'assure que les colonnes géométriques on les contraintes spatiales appropriées et sont présentes dans la table geometry_columns.332 `Populate_Geometry_Columns <http://postgis.org/docs/Populate_Geometry_Columns.html>`_: s'assure que les colonnes géométriques on les contraintes spatiales appropriées et qu'elles sont présentes dans la table geometry_columns. 335 333 336 334 `ST_Area <http://postgis.org/docs/ST_Area.html>`_: retourne l'aire de la surface si c'est un polygon ou un multi-polygone. Pour le type "geometry" l'aire est dans l'unité du SRID. Pour les "geography" l'aire est en mÚtres carrés. … … 346 344 `ST_AsEWKT <http://postgis.org/docs/ST_AsEWKT.html>`_: retourne la représentation de la geometrie au format Well-Known Text (WKT) avec la métadonnée SRID. 347 345 348 `ST_AsGeoJSON <http://postgis.org/docs/ST_AsGeoJSON.html>`_: retourne la géométrie sau format GeoJSON.349 350 `ST_AsGML <http://postgis.org/docs/ST_AsGML.html>`_: retourne la géométrie sau format GML version 2 ou 3.351 352 `ST_AsKML <http://postgis.org/docs/ST_AsKML.html>`_: retourne la géométrie sau format KML. Nombreuses variantes. Par défaut : version=2 et precision=15.353 354 `ST_AsSVG <http://postgis.org/docs/ST_AsSVG.html>`_: retourne la géométrie sau format SVG.346 `ST_AsGeoJSON <http://postgis.org/docs/ST_AsGeoJSON.html>`_: retourne la géométrie au format GeoJSON. 347 348 `ST_AsGML <http://postgis.org/docs/ST_AsGML.html>`_: retourne la géométrie au format GML version 2 ou 3. 349 350 `ST_AsKML <http://postgis.org/docs/ST_AsKML.html>`_: retourne la géométrie au format KML. Nombreuses variantes. Par défaut : version=2 et precision=15. 351 352 `ST_AsSVG <http://postgis.org/docs/ST_AsSVG.html>`_: retourne la géométrie au format SVG. 355 353 356 354 `ST_ExteriorRing <http://postgis.org/docs/ST_ExteriorRing.html>`_: retourne une ligne représentant le contour extérieur du polygone. Retourne NULL si la géométrie n'est pas un polygone. Ne fonctionne pas avec les multi-polygone. … … 382 380 `ST_Perimeter <http://postgis.org/docs/ST_Perimeter.html>`_: retourne la longueur du contours extérieur d'une valeur de type ST_Surface ou ST_MultiSurface (polygone, multi-polygone). 383 381 384 `ST_SRID <http://postgis.org/docs/ST_SRID.html>`_: retourne l'identifiant du systÚme de référence s spatialesdéfinit dans la table spatial_ref_sys d'un objet de type ST_Geometry.382 `ST_SRID <http://postgis.org/docs/ST_SRID.html>`_: retourne l'identifiant du systÚme de référence spatiale définit dans la table spatial_ref_sys d'un objet de type ST_Geometry. 385 383 386 384 `ST_StartPoint <http://postgis.org/docs/ST_StartPoint.html>`_: retourne le premier point d'une ligne. -
trunk/workshop-foss4g/geometries_exercises.rst
r21 r37 1 1 .. _geometries_exercises: 2 2 3 Partie 9 : exercices sur les géométries3 Partie 9 : Exercices sur les géométries 4 4 ====================================== 5 5 6 Voici un petit rappel de toute les fonction que nous avonsjusqu'à présent. Elles devraient être utiles pour les exercices !6 Voici un petit rappel de toutes les fonction que nous avons abordé jusqu'à présent. Elles devraient être utiles pour les exercices ! 7 7 8 8 * :command:`sum(expression)` agrégation retournant la somme d'un ensemble … … 16 16 * :command:`ST_StartPoint(geometry)` retourne le premier point d'une ligne 17 17 * :command:`ST_EndPoint(geometry)` retourne le dernier point d'une ligne 18 * :command:`ST_NPoints(geometry)` retourne le nombre pointd'une ligne18 * :command:`ST_NPoints(geometry)` retourne le nombre de points d'une ligne 19 19 * :command:`ST_Area(geometry)` retourne l'aire d'un polygone 20 20 * :command:`ST_NRings(geometry)` retourne le nombre de contours (1 ou plus si il y a des trous) … … 37 37 * :command:`ST_AsSVG(geometry)` retourne SVG ``text`` 38 38 39 Souvenez-vous aussi des tables qui sontdisponibles:39 Souvenez-vous aussi des tables disponibles: 40 40 41 41 * ``nyc_census_blocks`` … … 55 55 * name, boroname, the_geom 56 56 57 Exerci ses57 Exercices 58 58 --------- 59 59 60 * **" What is the area of the 'West Village' neighborhood?"**60 * **"Quelle est l'aire du quartier 'West Village'?"** 61 61 62 62 .. code-block:: sql … … 72 72 .. note:: 73 73 74 L'aire est donnée sen metres carrés. Pour obtenir l'aire en hectare, divisez par 10000. Pour obrenir l'aire en acres, divisez par 4047.75 76 * **"Quelle est l'aire de Manhattan in acres ?"** (Astuce: ``nyc_census_blocks`` et ``nyc_neighborhoods`` on toutes deux le champ ``boroname``.)74 L'aire est donnée en metres carrés. Pour obtenir l'aire en hectare, divisez par 10000. Pour obrenir l'aire en acres, divisez par 4047. 75 76 * **"Quelle est l'aire de Manhattan en acres ?"** (Astuce: ``nyc_census_blocks`` et ``nyc_neighborhoods`` on toutes deux le champ ``boroname``.) 77 77 78 78 .. code-block:: sql … … 99 99 100 100 101 * **"Combien de blo ques de la ville de New York ont des trous ?"**101 * **"Combien de blocs de la ville de New York ont des trous ?"** 102 102 103 103 .. code-block:: sql … … 122 122 10418.9047172 123 123 124 * **"Quelle est la longueur de 'Columbus Cir' (Columbus Circle) ? **124 * **"Quelle est la longueur de 'Columbus Cir' (Columbus Circle) ?"** 125 125 126 126 .. code-block:: sql … … 166 166 .. note:: 167 167 168 Il n'est pas rare de trouver des éléments de type multi-polygone ne contenant qu'un seul polygone dans des tables. L'utilisation du type multi-polygone permet d'utiliser une seule table pour y sto quer des géométries simples et multiples sans mélanger les types.168 Il n'est pas rare de trouver des éléments de type multi-polygone ne contenant qu'un seul polygone dans des tables. L'utilisation du type multi-polygone permet d'utiliser une seule table pour y stocker des géométries simples et multiples sans mélanger les types. 169 169 170 170 … … 207 207 .. note:: 208 208 209 La clause ``ORDER BY length DESC`` ordonne le résultats par la valeur s des longueurdans l'ordre décroissant. Le résultat avec la plus grande valeur se retrouve au début la liste de résultats.209 La clause ``ORDER BY length DESC`` ordonne le résultats par la valeur des longueurs dans l'ordre décroissant. Le résultat avec la plus grande valeur se retrouve au début la liste de résultats. 210 210 211 211 -
trunk/workshop-foss4g/index.rst
r2 r37 24 24 un répertoire contenant les fichier au format Shapefiles que nous utiliserons 25 25 26 L'ensemble des données présentes dans cette archive sont du domaine publi queet26 L'ensemble des données présentes dans cette archive sont du domaine public et 27 27 librement redistribuables. Toute les applications de l'archive sont des logiciels libres, et 28 librement redistribuables. The document est publié sous licence Creative Commons28 librement redistribuables. Le document est publié sous licence Creative Commons 29 29 "`share alike with attribution <http://creativecommons.org/licenses/by-sa/3.0/us/>`_", 30 et est librement redis ctribuable en respectant les termes de cette license.30 et est librement redistribuable en respectant les termes de cette license. 31 31 32 32 Table des matiÚres -
trunk/workshop-foss4g/installation.rst
r19 r37 1 1 .. _installation: 2 2 3 Partie 2 : installation3 Partie 2 : Installation 4 4 ======================= 5 5 6 Nous utiliserons l'OpenGeo Suite comme application d'installation . Ãtant donné qu'elle contient PostGIS/PostgreSQL dans un seul outil d'installation pour Windows, Apple OS/X et Linux. La suite contient aussi GeoServer, OpenLayers et de nombreuxoutils de visulations sur le web.6 Nous utiliserons l'OpenGeo Suite comme application d'installation, car celle-ci contient PostGIS/PostgreSQL dans un seul outil d'installation pour Windows, Apple OS/X et Linux. La suite contient aussi GeoServer, OpenLayers et d'autres outils de visulations sur le web. 7 7 8 8 .. note:: 9 9 10 Si vous souhaitez installer simplement PostgreSQL, cela peut se faire en téléchargeant directement le code source ou les binaires de PostgreSQL sur le site du projet http://postgresql.org/download/. AprÚs avoir installé PostgreSQL, utilisez l'outils"StackBuilder" pour ajouter l'extension PostGIS à votre installation.10 Si vous souhaitez installer simplement PostgreSQL, cela peut se faire en téléchargeant directement le code source ou les binaires de PostgreSQL sur le site du projet http://postgresql.org/download/. AprÚs avoir installé PostgreSQL, utilisez l'outil "StackBuilder" pour ajouter l'extension PostGIS à votre installation. 11 11 12 12 .. note:: 13 13 14 Les indications précises de ce documents sont propre à WIndows, mais l'installation sous OS/X est largement similaire. Une fois la Suite installée, les instructions relatives au syst!me d'exploitation devraient être identiques.14 Les indications précises de ce documents sont propre à Windows, mais l'installation sous OS/X est largement similaire. Une fois la Suite installée, les instructions relatives au syst!me d'exploitation devraient être identiques. 15 15 16 16 #. Dans le répertoire :file:`postgisintro\\software\\` vous trouverez l'installeur de l'OpenGeo Suite nommé : :file:`opengeosuite-2.4.3.exe` (sur OS/X, :file:`opengeosuite-2.4.3.dmg`). Double cliquez sur cet exécutable pour le lancer. 17 17 18 #. Appréciez le message de bienvenu , et la courtoisie d'OpenGeo, puis cliquez sur **Next**.18 #. Appréciez le message de bienvenue, et la courtoisie d'OpenGeo, puis cliquez sur **Next**. 19 19 20 20 .. image:: ./screenshots/install_01.png 21 21 22 22 23 #. L'OpenGeo Suite est publiée sous licence GPL, ce qui est précisé dans la fenêtre de lice cne. Cliquez sur **I Agree**.23 #. L'OpenGeo Suite est publiée sous licence GPL, ce qui est précisé dans la fenêtre de license. Cliquez sur **I Agree**. 24 24 25 25 .. image:: ./screenshots/install_02.png 26 26 27 27 28 #. Le répertoire où l'OpenGeo Suite sera installé est généralement le répertoire ``C:\Program Files\``. Les données seront placé dans le répertoire personnel de votre utilisateur, dans le répertoire :file:`.opengeo`. Cliquez sur **Next**.28 #. Le répertoire où l'OpenGeo Suite sera installé est généralement le répertoire ``C:\Program Files\``. Les données seront placées dans le répertoire personnel de votre utilisateur, dans le répertoire :file:`.opengeo`. Cliquez sur **Next**. 29 29 30 30 .. image:: ./screenshots/install_03.png 31 31 32 32 33 #. L'installeur créera un certain s nombres de racourcis dans le répertoire OpenGeo du menu démarrer. Cliquez sur **Next**.33 #. L'installeur créera un certain nombre de raccourcis dans le répertoire OpenGeo du menu démarrer. Cliquez sur **Next**. 34 34 35 35 .. image:: ./screenshots/install_04.png 36 36 37 37 38 #. Tout les composants de la Suite sont oblig ratoireà ce niveau. Cliquez sur **Next**.38 #. Tout les composants de la Suite sont obligatoires à ce niveau. Cliquez sur **Next**. 39 39 40 40 .. image:: ./screenshots/install_05.png -
trunk/workshop-foss4g/introduction.rst
r19 r37 1 1 .. _introduction: 2 2 3 Partie 1 : introduction3 Partie 1 : Introduction 4 4 ************************ 5 5 … … 7 7 ============================================ 8 8 9 PostGIS est une base de données spatiale s. Oracle Spatial et SQL Server 2008 sont aussi des bases de données spatiales. Mais qu'est-ce que cela signifie, qu'est-ce qui différentie un serveur de base de données spatiales d'un non spatiale ?9 PostGIS est une base de données spatiale. Oracle Spatial et SQL Server 2008 sont aussi des bases de données spatiales. Mais qu'est-ce que cela signifie? Qu'est-ce qui différentie un serveur de base de données spatiales d'un non spatiale ? 10 10 11 11 La réponse courte, est ... 12 12 13 **Les base de données spatiales permettent les stoc age et la manipulation des objets spatiaux comme les autres objets de la base de données.**13 **Les base de données spatiales permettent les stockage et la manipulation des objets spatiaux comme les autres objets de la base de données.** 14 14 15 15 Ce qui suit présente briÚvement l'évolution des base de données spatiales, puis les liens … … 17 17 18 18 #. **Types de données spatiales** fait référence aux géométries de type point, ligne et polygone; 19 #. L'**indexation spatiale** est utilisée pour améliorer les performance d'exécution des opérations spatiales;20 #. Les **fonctions spatiales**, au sens :term:`SQL`, sont util sées pour accéder à des propriétées oudes relations spatiales.21 22 Conbiné, les types de données spatiales, les indexes et les fonctions fournissent une structure flexible pour optimiser les performanceet les analyses.19 #. L'**indexation spatiale** est utilisée pour améliorer les performances d'exécution des opérations spatiales; 20 #. Les **fonctions spatiales**, au sens :term:`SQL`, sont utilisées pour accéder à des propriétés ou à des relations spatiales. 21 22 Utilisés de maniÚre combinée, les types de données spatiales, les indexes et les fonctions fournissent une structure flexible pour optimiser les performances et les analyses. 23 23 24 24 Au commencement 25 25 ---------------- 26 26 27 Dans les premiÚres implémentations :term:`SIG` historiques, toutes les données28 spatiales étaient sto quées sous la forme de fichiers plats et certaines applications29 :term:`SIG` spécifiques étaient nécessaires pour interpréter et manipuler les données.30 Ces outils de gestion de premiÚre génération , avaient été conçupour répondre aux31 besoins des utilisateurs pour lesquels toute les données étaient localisé au sein de leur32 agence. C 'est outils étaient propriétaire, des systÚme specifiquement créépour gérer les27 Dans les premiÚres implémentations :term:`SIG`, toutes les données 28 spatiales étaient stockées sous la forme de fichiers plats et certaines applications 29 :term:`SIG` spécifiques étaient nécessaires les interpréter et les manipuler. 30 Ces outils de gestion de premiÚre génération avaient été conçus pour répondre aux 31 besoins des utilisateurs pour lesquels toute les données étaient localisées au sein de leur 32 agence. Ces outils propriétairse étaient des systÚmes specifiquement créés pour gérer les 33 33 données spatiales. 34 34 35 La seconde génération des systÚmes de gestion de données spatiales sto quaient certaines données dans une base de données relationelle (habituellement les "attributs" ou autres parties non spatiales) mais ne founissaient pas encore la fléxibilité offerte par une intégration complÚte des données spatiales.36 37 **Effectivement, les bases de données spatiales sont né s lorsque les gens ont commencé à considérer les objet spatiaux comme les autres objets d'une base de données .**38 39 Les bases de données spatiales intÚgre les données spatiales sous formes d'objets de la base de données relationelle. Le changement opéré passe d'une vision centrée sur le SIG à une vision centrée sur les bases de données.35 La seconde génération des systÚmes de gestion de données spatiales stockaient certaines données dans une base de données relationelle (habituellement les "attributs" ou autres parties non spatiales) mais ne founissaient pas encore la fléxibilité offerte par une intégration complÚte des données spatiales. 36 37 **Effectivement, les bases de données spatiales sont nées lorsque les gens ont commencé à considérer les objet spatiaux comme les autres objets d'une base de données .** 38 39 Les bases de données spatiales intÚgrent les données spatiales sous formes d'objets de la base de données relationelles. Le changement opéré passe d'une vision centrée sur le SIG à une vision centrée sur les bases de données. 40 40 41 41 .. image:: ./introduction/beginning.png 42 42 43 .. note:: Un systÚme de gestion de base de données peut être utilisé e dans d'autre cadre que celui des SIG. Les bases de données spatiales sont utilisées dans divers domaines : l'anatomie humaine, les circuits intégrés de grandes envergures, les structures moléculaires, les champs electomaniétiques et bien d'autre encore.43 .. note:: Un systÚme de gestion de base de données peut être utilisé dans d'autre cadre que celui des SIG. Les bases de données spatiales sont utilisées dans divers domaines : l'anatomie humaine, les circuits intégrés de grandes envergures, les structures moléculaires, les champs electro-magnétiques et bien d'autre encore. 44 44 45 45 … … 47 47 ------------------------------ 48 48 49 Une base de données classique propose les types chaînes de caractÚres et date par exemple. Une base de données spatiales ajoute les types de données (spatiales) pour représenter les **entités géographiques**. Ces types de données spatiales permettre d'accéder à des propriétés de l'entité géographique comme les contours ou la dimension. Pour bien des aspects, les types de données spatiales peuvent être vu simplement comme des formes.49 Une base de données classique propose par exemple les types chaînes de caractÚres et date. Une base de données spatiales ajoute les types de données (spatiales) pour représenter les **entités géographiques**. Ces types de données spatiales permettre d'accéder à des propriétés de l'entité géographique comme ses contours ou sa dimension. Pour bien des aspects, les types de données spatiales peuvent être vu simplement comme des formes. 50 50 51 51 .. image:: ./introduction/hierarchy.png 52 52 :align: center 53 53 54 Les types de données spatiales sont organisés par une hierarchie de type. Chaque sous-types hérite de la structure (les atrributs) et du comportement (les méthodes et fonctions) de son type supérieur dans hierarchie.54 Les types de données spatiales sont organisés par une hierarchie de type. Chaque sous-types hérite de la structure (les atrributs) et du comportement (les méthodes et fonctions) de son type supérieur dans la hierarchie. 55 55 56 56 … … 58 58 --------------------------- 59 59 60 Une base de données ordinaire fournit des "méthodes d'accÚs" -- connues sous le nom d'**index** -- pour permettre un accÚs efficace et non séquentiel à un sous ensemble de données. L'indexation des type non géographique(nombre, chaînes de caractÚres, dates) est habituellement faite à l'aide des index de type `arbres binaires <http://en.wikipedia.org/wiki/B-tree>`__. Un arbre binaire est un partitionnement des données utilisant l'ordre naturel pour stoquer les données hierarchiequement.60 Une base de données ordinaire fournit des "méthodes d'accÚs" -- connues sous le nom d'**index** -- pour permettre un accÚs efficace et non séquentiel à un sous ensemble de données. L'indexation des types non géographiques (nombre, chaînes de caractÚres, dates) est habituellement faite à l'aide des index de type `arbres binaires <http://en.wikipedia.org/wiki/B-tree>`__. Un arbre binaire est un partitionnement des données utilisant l'ordre naturel pour stoquer les données hierarchiequement. 61 61 62 62 L'ordre naturel des nombres, des chaînes de caractÚres et des dates est assez simple à déterminer -- chaque valeur est inférieure, plus grande ou égale à toutes les autres valeurs. Mais, étant donné que les polygones peuvent se chevaucher, peuvent être contenu dans un autre et sont représenté par un tableau en deux dimensions (ou plus), un arbre binaire ne convient pas pour indexer les valeurs. Les vraies bases de données spatiales fournissent un "index spatial" qui répond plutÃŽt à la question : "quel objet se trouve dans une étendue spécifique ?" … … 69 69 Les étendues sont utilisées car répondre à la question : "est-ce que A se trouve à 'intérieur de B ? " est une opération couteuse pour les polygones mais rapide dans le cas ou ce sont des rectangles. Même des polgones et des lignes complex peuvent être représenté par une simple étendue. 70 70 71 Les index spatiaux doivent réalisé leur ordanencement rapidement afin d'être utile. Donc au lien de fournir des résultats extacts, comme le font les arbres binaires, les index spatiaux fournisse des résultats approximatifs. La question "quelles lignes sont à l'intérieur de ce polygone" sera interprété par un index spatial comme : "quelles lignes ont une étendue qui est contenue dans l'étendue de ce polygone ?"72 73 Les incréments spatiaux réels mis en application par d e diverses bases de données varient considérablement.74 Les index spatiaux actuellement utilisés par les différents systÚme de gestion de bases de données varient considérablement. L'implémentation la plus commune est l'`arbre R <http://en.wikipedia.org/wiki/R-tree>`_ (utilisé dans PostGIS), mais il existe aussi des implémentations de type `Quadtrees <http://en.wikipedia.org/wiki/Quadtree>`_, et des `indexes basés sur une grille <http://en.wikipedia.org/wiki/Grid_(spatial_index)>`_.71 Les index spatiaux doivent réalisé leur ordanencement rapidement afin d'être utile. Donc au lien de fournir des résultats extacts, comme le font les arbres binaires, les index spatiaux fournissent des résultats approximatifs. La question "quelles lignes sont à l'intérieur de ce polygone" sera interprété par un index spatial comme : "quelles lignes ont une étendue qui est contenue dans l'étendue de ce polygone ?" 72 73 Les incréments spatiaux réels mis en application par diverses bases de données varient considérablement. 74 Les index spatiaux actuellement utilisés par les différents systÚmes de gestion de bases de données varient considérablement. L'implémentation la plus commune est l'`arbre R <http://en.wikipedia.org/wiki/R-tree>`_ (utilisé dans PostGIS), mais il existe aussi des implémentations de type `Quadtrees <http://en.wikipedia.org/wiki/Quadtree>`_, et des `indexes basés sur une grille <http://en.wikipedia.org/wiki/Grid_(spatial_index)>`_. 75 75 76 76 Les Fonctions spatiales 77 77 ------------------- 78 78 79 Pour manipuler les données lors d'une requête, une base de données classique fournit des **fonctions** comme la concaténation de chaînes de caractÚres, le cacul de la clef md5 d'une chaîne, la réalisation d'opérations mathématiques sur les nombres ou l'extraction d'informations spécifiques sur une date. Une base de données spatiales fournit un ensemble complet de fonctions pour analyser les composants géographiques, déterminer les relations spatiales et manipuler les objets géographiques. Ces fonctions spatiales s ervent de piÚce de légo pour de noombreux projet SIG.79 Pour manipuler les données lors d'une requête, une base de données classique fournit des **fonctions** comme la concaténation de chaînes de caractÚres, le cacul de la clef md5 d'une chaîne, la réalisation d'opérations mathématiques sur les nombres ou l'extraction d'informations spécifiques sur une date. Une base de données spatiales fournit un ensemble complet de fonctions pour analyser les composants géographiques, déterminer les relations spatiales et manipuler les objets géographiques. Ces fonctions spatiales sont utilisées comme des piÚces de légo pour de nombreux projet SIG. 80 80 81 81 La majorité des fonctions spatiales peuvent être regroupées dans l'une des cinq catégories suivantes : 82 82 83 #. **Conversion**: fonctions qui *convertissent* les données géographiques dans un format externe. .83 #. **Conversion**: fonctions qui *convertissent* les données géographiques dans un format externe. 84 84 #. **Gestion**: fonctions qui permettre de *gérer* les informations relatives aux tables spatiales et l'administration de PostGIS. 85 #. **Récupération**: fonctions qui permettent de *récupérer* les propriété et les mesures d'une géométrie.86 #. **Comparaison**: fonctions qui permettent de *comp rer* deux géométries en respectant leur relations spatiales.87 #. **Contruction**: fonctions qui permettent de *construire* de nouvelles géométrie à partir d'autre.85 #. **Récupération**: fonctions qui permettent de *récupérer* les propriétés et les mesures d'une géométrie. 86 #. **Comparaison**: fonctions qui permettent de *comparer* deux géométries en respectant leur relations spatiales. 87 #. **Contruction**: fonctions qui permettent de *construire* de nouvelles géométries à partir d'autre. 88 88 89 89 La liste des fonctions possibles est trÚs vaste, mais un ensemble communs à l'ensemble des implémentation est défini par la spécification term:`OGC` :term:`SFSQL` et sont implémentées (ainsi que certaines supplémentaires) dans PostGIS. … … 93 93 ====================== 94 94 95 PostGIS confÚre au `systÚme de gestion de base de données PostgreSQL <http://www.postgresql.org/>`_ le status de base de données spatiales en ajoutant les trois supports suivants : les types de données spatiales, les indexes et les fonctions. Ãtant donné qu e celaest basé sur PostgreSQL, PostGIS bénéficie automatiquement des capacités orienté "entreprise" ainsi que le respect des standards de cette implémentation.95 PostGIS confÚre au `systÚme de gestion de base de données PostgreSQL <http://www.postgresql.org/>`_ le status de base de données spatiales en ajoutant les trois supports suivants : les types de données spatiales, les indexes et les fonctions. Ãtant donné qu'il est basé sur PostgreSQL, PostGIS bénéficie automatiquement des capacités orienté "entreprise" ainsi que le respect des standards de cette implémentation. 96 96 97 97 Mais qu'est-ce que PostgreSQL ? 98 98 ------------------------------- 99 99 100 PostgreSQL est un e puissant systÚme de gestion de données relationel à objets (SGBDRO). Il a été publié sous la licence de style BSD et est donc un logiciel libre. Comme avec beaucoup de logiciels libres, PostgreSQL n'est pas controlé par une société unique mais par une communauté de développeurs et de sociétés qui le développer.101 102 PostgreSQL a été conçu depuis le début en conservant à l'esprit qu'il serait potentiellement nécessaire de l'étendre à l'aide d'extensions particuliÚres -- la possibilité d'ajouter de nouveau types, des nouvelles fonctions et des méthodes d'accÚs à chaud. Grâce à cela, une extension de PostgreSQL peut être développé par une équipe de développement séparé, bien que le lien soit encoretrÚs fortement lié au coeur de la base de données PostgreSQL.100 PostgreSQL est un puissant systÚme de gestion de données relationel à objets (SGBDRO). Il a été publié sous la licence de style BSD et est donc un logiciel libre. Comme avec beaucoup de logiciels libres, PostgreSQL n'est pas controlé par une société unique mais par une communauté de développeurs et de sociétés qui le développe. 101 102 PostgreSQL a été conçu depuis le début en conservant à l'esprit qu'il serait potentiellement nécessaire de l'étendre à l'aide d'extensions particuliÚres -- la possibilité d'ajouter de nouveau types, des nouvelles fonctions et des méthodes d'accÚs à chaud. Grâce à cela, une extension de PostgreSQL peut être développé par une équipe de développement indépendante, bien que le lien soit trÚs fortement lié au coeur de la base de données PostgreSQL. 103 103 104 104 Pourquoi choisir PostgreSQL ? 105 105 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 106 106 107 Une question que se pose souvent les gens familliés avec les bases de données libres est : "Pourquoi PostGIS n'a pas été basé sur MySQL ?"107 Une question que se posent souvent les gens déja familiarisés avec les bases de données libres est : "Pourquoi PostGIS n'a pas été basé sur MySQL ?" 108 108 109 109 PostgreSQL a: 110 110 111 * prouvé sa fiabilité et respectl'intégrité des données ( propriétés ACID)111 * prouvé sa fiabilité et son respect de l'intégrité des données ( propriétés ACID) 112 112 * un support soigneux des standard SQL (respecte la norme SQL92) 113 113 * un support pour le développement d'extensions et de nouvelles fonctions 114 * un modÚle de développement orienté communauté114 * un modÚle de développement communautaire 115 115 * pas de limite sur la taille des colonne (les tuples peuvent être "TOAST"és) pour supporter des objets géographiques 116 116 * un structure d'index générique (GiST) permettant l'indéxation à l'aide d'abres R 117 * facil eajout de fonctions personalisées118 119 Tout ceci combiné, PostgreSQL permet un cheminement simple du développement nécessaire à l'ajout des types spatiaux. Dans le monde propriétaire s, seul Illustra (maintenant Informix Universal Server) permet une extension aussi simple. Ceci n'est pas une cohincidence, Illustra estune version propriétaire modifiéesdu code original de PostgreSQL publié dans les années 1980.120 121 Puisque le cheminement du développement nécessaire à l'ajout de types à PostgreSQL est direct, il semblé naturel de commencer par là . Lorsque MySQL a publié des types de données spatiales de base dans sa version 4.1, l'équipe de PostGIS a jeuté un coup d'oueil dans leur code et cela a confirmé le choix initial d'utiliser PostgreSQL. Puisque les objets géographiques de MySQL doivent être considérés comme un cas particulier de chaînes de caractÚres, le code de MySQL a été diffus dans l'intégralité du code de base. Le développement de PostGIS version 0.1 a prit un mois. Réaliser un projet "MyGIS" 0.1 aurait pritbeaucoup plus de temps, c'est sans doute pourquoi il n'a jamais vu le jour.122 123 Pourquoi pas des fichier Shapefile ?117 * facilité ajout de fonctions personalisées 118 119 Tout ceci combiné, PostgreSQL permet un cheminement simple du développement nécessaire à l'ajout des types spatiaux. Dans le monde propriétaire, seul Illustra (maintenant Informix Universal Server) permet une extension aussi simple. Ceci n'est pas une coincidence, Illustra est une version propriétaire modifiée du code original de PostgreSQL publié dans les années 1980. 120 121 Puisque le cheminement du développement nécessaire à l'ajout de types à PostgreSQL est direct, il semblé naturel de commencer par là . Lorsque MySQL a publié des types de données spatiales de base dans sa version 4.1, l'équipe de PostGIS a jetté un coup d'oeil dans leur code source et cela a confirmé le choix initial d'utiliser PostgreSQL. Puisque les objets géographiques de MySQL doivent être considérés comme un cas particulier de chaînes de caractÚres, le code de MySQL a été diffus dans l'intégralité du code de base. Le développement de PostGIS version 0.1 a pris un mois. Réaliser un projet "MyGIS" 0.1 aurait pris beaucoup plus de temps, c'est sans doute pourquoi il n'a jamais vu le jour. 122 123 Pourquoi pas des fichiers Shapefile ? 124 124 ------------------------------------ 125 125 126 Les fichiers `shapefile <http://en.wikipedia.org/wiki/Shapefile>`_ (et les autres formats) ont été la maniÚre standard de sto quer et d'interragir avec les données spatiales depuis l'origine des SIG. Néanmoins, ces fichiers "plats" ont les inconvénients suivants :127 128 * **Les fichier au formats SIG requiÚrent un logiciel spécifique pour les lire et les écrire.** Le langage SQL est une abstraction de l'accÚs alléatoire au données et à leur analyse. Sans cette bastraction, vous devrez développer l'accÚs et l'anayse par cos propre moyens.129 * **L'accÚs concurent au données peut entraine foier un stoquage de données corrompues.** Alors qu'il est possible d'écrire du code supplémentaire afin de garantir la cohérence des données, une fois ce problÚme solutionné et celui de la performance associée, vous aurez re-écrit la partie la plus importantd'un systÚme de base de données. Pourquoi ne pas simplement utilisé une base de données standard dans ce cas ?126 Les fichiers `shapefile <http://en.wikipedia.org/wiki/Shapefile>`_ (et les autres formats) ont été la maniÚre standard de stockuer et d'interragir avec les données spatiales depuis l'origine des SIG. Néanmoins, ces fichiers "plats" ont les inconvénients suivants : 127 128 * **Les fichier au formats SIG requiÚrent un logiciel spécifique pour les lire et les écrire.** Le langage SQL est une abstraction de l'accÚs alléatoire au données et à leur analyse. Sans cette abstraction, vous devrez développer l'accÚs et l'anayse par vos propre moyens. 129 * **L'accÚs concurent aux données peut parfois entrainer un stockage de données corrompues.** Alors qu'il est possible d'écrire du code supplémentaire afin de garantir la cohérence des données, une fois ce problÚme solutionné et celui de la performance associée, vous aurez re-écrit la partie la plus importante d'un systÚme de base de données. Pourquoi ne pas simplement utilisé une base de données standard dans ce cas ? 130 130 * **Les questions compliquées nécessitent des logiciels compliqués pour y répondre.** Les question intéressantes et compliquées (jointures spatiales, aggrégations, etc) qui sont exprimables en une ligne de SQL grâce à la base de données, nécessitent une centaines de lignes de code spécifiques pour y répondre dans le cas de fichiers. 131 131 132 La plupart des utilisateurs de PostGIS ont mis en place des systÚmes où diverses applications sont succeptible d'accéder aux données, donc avoir les méthodes d'accÚs SQL standard simplifit le déploiement et le développement. Certains utilisateurs travaille avec de grand jeux de données, avec des fichiers, qui peuvent être segmenté en plusieurs fichiers, mais dans une base de données ces données peuvent être stoquédans une seule grande table.133 134 En résumé, la combinaison du support de l'accÚs co curent, des requêtes complexes spécifiques et de la performance sur de grand jeux de données sont ce qui différencies les basede données spatiales des systÚmes utilisant des fichiers.135 136 Un bref histo irique de PostGIS132 La plupart des utilisateurs de PostGIS ont mis en place des systÚmes où diverses applications sont succeptibles d'accéder aux données, et donc d'avoir les méthodes d'accÚs SQL standard, qui simplifient le déploiement et le développement. Certains utilisateurs travaillent avec de grands jeux de données sous forme de fichiers, qui peuvent être segmentés en plusieurs fichiers, mais dans une base de données ces données peuvent être stockées dans une seule grande table. 133 134 En résumé, la combinaison du support de l'accÚs concurent, des requêtes complexes spécifiques et de la performance sur de grand jeux de données différencient les bases de données spatiales des systÚmes utilisant des fichiers. 135 136 Un bref historique de PostGIS 137 137 ------------------------------ 138 138 139 En mai 2001, la société `Refractions Research <http://www.refractions.net/>`_ publie la permiÚre version de PostGIS. PostGIS 0.1 fournissait les objets, les indexes et des fonctions util ies. Le résultat était une base de données permettant le stockage et l'accÚs mais pas encore l'analyse.140 141 Comme le nombre de fonctions augment é, le besoin d'un principe d'organisation devint clair. La spécification "Simple Features for SQL" (:term:`SFSQL`) publiée par l'Open Geospatial Consortium fournit une telle structure avec des indications pour le nommage des fonctions et les pré-requis.142 143 Avec le support dans PostGIS de simples fonctions d'anal ises et de jointures spatiales,139 En mai 2001, la société `Refractions Research <http://www.refractions.net/>`_ publie la permiÚre version de PostGIS. PostGIS 0.1 fournissait les objets, les indexes et des fonctions utiles. Le résultat était une base de données permettant le stockage et l'accÚs mais pas encore l'analyse. 140 141 Comme le nombre de fonctions augmentait, le besoin d'un principe d'organisation devint clair. La spécification "Simple Features for SQL" (:term:`SFSQL`) publiée par l'Open Geospatial Consortium fournit une telle structure avec des indications pour le nommage des fonctions et les pré-requis. 142 143 Avec le support dans PostGIS de simples fonctions d'analyses et de jointures spatiales, 144 144 `Mapserver <http://mapserver.org/>`_ devint la premiÚre application externe permettant de visualiser les données de la base de données. 145 145 146 Au cours de ces derniÚres années le nombre de fo cntions fournies par PostGIS grandit, mais sa puissance restait limité. La plupart des fonctions interressantes (ex : ST_Intersects(), ST_Buffer(), ST_Union()) étaient difficileà implémenter. Les écrire en repartant du début promettait des années de travail.147 148 Heureusement un second projet, nommé "Geometry Engine, Open Source" o r `GEOS <http://trac.osgeo.org/geos>`_ vit le jour. Cette librairie fournit l'ensemble des algorythmes nécessaireà l'implémentation de la spécification :term:`SFSQL` . En se liant à GEOS, PostGIS fournit alors le support complet de la :term:`SFSQL` depuis la version 0.8.149 150 Comme la capacité de PostGIS grandit, un autre problÚme fit surface : la représentation utilisée pour stoquer les géométrie n'était pas assez afficace. Pour de petits objets comme les points ou de courtes lignes, les métadonnées dans la représentation occupé plus de 300% supplémentaires. Pour des raisons de performance, il fut nécessaire de faire faire un régime à la représentation. En réduisant l'entête des métadonnées et les dimensions requises, l'espace supplémentaire fut réduit drastiquement. Dans PostGIS 1.0 cette nouvelle, plus rapide et plus légÚre représentationdevint la représentation par défaut.151 152 Les mises à jour récentes de PostGIS ont permit d'éttendre la compatibilité avec les standard , d'ajouter les géométries courbes et les signatures de fonctions spécifiées dans la norme ISO :term:`SQL/MM`. Dans un soucis de performance, PostGIS 1.4 augmenta considérablement la rapidité d'exécution des fonctions de testssur les géométries.146 Au cours de ces derniÚres années le nombre de fonctions fournies par PostGIS grandit, mais sa puissance restait limité. La plupart des fonctions interressantes (ex : ST_Intersects(), ST_Buffer(), ST_Union()) étaient difficiles à implémenter. Les écrire en repartant du début promettait des années de travail. 147 148 Heureusement un second projet, nommé "Geometry Engine, Open Source" ou `GEOS <http://trac.osgeo.org/geos>`_ vit le jour. Cette librairie fournit l'ensemble des algorithmes nécessaires à l'implémentation de la spécification :term:`SFSQL` . En se liant à GEOS, PostGIS fournit alors le support complet de la :term:`SFSQL` depuis la version 0.8. 149 150 Alors que les capacités de PostGIS grandissaient, un autre problÚme fit surface : La représentation utilisée pour stocker les géométries n'était pas assez efficace. Pour de petits objets comme les points ou de courtes lignes, les métadonnées dans la représentation occupaient plus de 300% supplémentaires. Pour des raisons de performance, il fut nécessaire de faire faire un régime à la représentation. En réduisant l'entête des métadonnées et les dimensions requises, l'espace supplémentaire fut réduit drastiquement. Dans PostGIS 1.0, cette nouvelle représentation plus rapide et plus légÚre devint la représentation par défaut. 151 152 Les mises à jour récentes de PostGIS ont permit d'éttendre la compatibilité avec les standards, d'ajouter les géométries courbes et les signatures de fonctions spécifiées dans la norme ISO :term:`SQL/MM`. Dans un soucis de performance, PostGIS 1.4 augmenta considérablement la rapidité d'exécution des fonctions de test sur les géométries. 153 153 154 154 Qui utilisent PostGIS ? … … 160 160 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 161 162 L'IGN utilise PostGIS pour sto quer des cartes topographiques de grande résolutions du pays : la "BDUni". La BDUni a plus de 100 millions d'entités, et est maintenu par une équipe de 100 persnone qui vérifie les observations et ajoute de nouvelles données à la base tout les jours. L'installation de l'IGN utilise le systÚme transactionel de la base de données pour assurer la consistance durant les phases de mises à jour et utilise un `serveur de rtandby par transfert de journaux <http://docs.postgresql.fr/9.1/warm-standby.html>`_ afin de conserver un état cohérent en cas de défaillance du systÚme.162 L'IGN utilise PostGIS pour stocker des cartes topographiques de grande résolution de la France : la "BDUni". La BDUni a plus de 100 millions d'entités, et est maintenue par une équipe de 100 personnes qui vérifie les observations et ajoute quotidiennement de nouvelles données à la base. L'installation de l'IGN utilise le systÚme transactionel de la base de données pour assurer la consistance durant les phases de mises à jour et utilise un `serveur de rtandby par transfert de journaux <http://docs.postgresql.fr/9.1/warm-standby.html>`_ afin de conserver un état cohérent en cas de défaillance du systÚme. 163 163 164 164 GlobeXplorer 165 165 ~~~~~~~~~~~~ 166 166 167 GlobeXplorer est un service web fournissant un accÚs en ligne à une imagerie satellite et photos aériennes de plusieures petabytes. GlobeXplorer utilise PostG US poru gérer les métadonnées associées avec le catalogue d'images, donc les requêtes pour accéder aux images recherche d'abort dans le catalogue PostGIS pour récupérer la localisation des imagess demandées, puis récupÚre ces images et les retourne au client. Lors du proeccessus de mise en place de leur systÚme, GlobeXplorer essaya d'autre systÚme de base de données spatiales mais conservaPostGIS à cause de la combinaison du prix et de la performance qu'il offre.167 GlobeXplorer est un service web fournissant un accÚs en ligne à une imagerie satellite et photos aériennes de plusieures petabytes. GlobeXplorer utilise PostGIS pour gérer les métadonnées associées avec le catalogue d'images. Les requêtes pour accéder aux images recherchent d'abord dans le catalogue PostGIS pour récupérer la localisation des images demandées, puis récupÚrent ces images et les retournent au client. Lors du proeccessus de mise en place de leur systÚme, GlobeXplorer a essayé d'autre systÚme de base de données spatiales mais a conserver PostGIS à cause de la combinaison du prix et de la performance qu'il offre. 168 168 169 169 Quest-ce qu'un application qui supporte PostGIS ? 170 170 ------------------------------------------------- 171 171 172 PostGIS est devenu une base de données spatiale s communément utilisée, et le nombre d'application tierce qui support le stoquage ou la récupération des donées n'a séssé d'augmenter. `Les application qui supportent PostGIS <http://trac.osgeo.org/postgis/wiki/UsersWikiToolsSupportPostgis>`_ contiennent à la fois des applications libres et des application propriétaires tournant sur un serveur ou localement depuis votre bureau.172 PostGIS est devenu une base de données spatiale communément utilisée, et le nombre d'applications tierces qui supportent le stockage ou la récupération des données n'a céssé d'augmenter. `Les application qui supportent PostGIS <http://trac.osgeo.org/postgis/wiki/UsersWikiToolsSupportPostgis>`_ contiennent à la fois des applications libres et des application propriétaires tournant sur un serveur ou localement depuis votre bureau. 173 173 174 174 La table suivante propose une liste des logiciels qui tirent profit de PostGIS : -
trunk/workshop-foss4g/loading_data.rst
r19 r37 1 1 .. _loading_data: 2 2 3 Partie 4 : charger des données spatiales3 Partie 4 : Charger des données spatiales 4 4 ========================================= 5 5 6 Supporté dans une grande variété de librairies et d'applications, PostGIS fournit de nombreux outils pour charger des données. Cette partie traitera uniquement sur du chargement basique de données, chargement de fichiers Shaefile en utilisant l'outil de chargement shapefilede PostGIS.6 Supporté dans une grande variété de librairies et d'applications, PostGIS fournit de nombreux outils pour charger des données. Cette partie traitera uniquement du chargement basic de données, c'est à dire le chargement de fichiers Shapefile en utilisant l'outil dédié de PostGIS. 7 7 8 8 #. PremiÚrement, retournez sur le Dashboard et cliquez sur le lien **Import shapefiles** de la section PostGIS. L'interface d'import de données Shapefile pgShapeLoader se lance. … … 29 29 Affecter le numéro de port **54321** est trÚs important ! Le serveur PostGIS d'OpenGeo utilise ce port et non le port par défaut (5432). 30 30 31 #. S isissez les détails de la section *Configuration*.31 #. Saisissez les détails de la section *Configuration*. 32 32 33 33 .. list-table:: … … 48 48 #. Pour finir, cliquez sur le bouton **Import** et regardez l'importation s'exécuter. Cela peut prendre plusieurs minutes pour charger, mais ce fichier est le plus gros que nous aurons à charger. 49 49 50 #. Repétez la méthode afin d'importer les autres données présentes dans le répertoire data. Ormis le nom du fichier et le nom de la table de sortie, les autres paramÚtres de pgShapeLoader devrait rester les même :50 #. Repétez la méthode afin d'importer les autres données présentes dans le répertoire data. Ormis le nom du fichier et le nom de la table de sortie, les autres paramÚtres de pgShapeLoader devrait rester les mêmes : 51 51 52 52 * ``nyc_streets.shp`` … … 54 54 * ``nyc_subway_stations.shp`` 55 55 56 #. Lorsque tout les fichiers sont chargé , cliquez sur le bouton "Refresh" de pgAdmin pour mettre à jour l'arbre affiché. Vous devriez voir vos quatre nouvellles tables s'affichées dans la section **Tables** de l'arbre.56 #. Lorsque tout les fichiers sont chargés, cliquez sur le bouton "Refresh" de pgAdmin pour mettre à jour l'arbre affiché. Vous devriez voir vos quatre nouvellles tables affichées dans la section **Tables** de l'arbre. 57 57 58 58 .. image:: ./screenshots/refresh.png 59 59 60 60 61 Sha file ? Qu'est-ce que c'est ?61 Shapefile ? Qu'est-ce que c'est ? 62 62 ------------------------------- 63 63 64 Il est possible que vous vous demandiez "Qu'est-ce que c'est ce shapefile truc?" On utilise communément le terme "Shapefile" pour parler d'un ensemble de fichiers d'extension ``.shp``, ``.shx``, ``.dbf``, ou autre ayant un nom commun (ex: nyc_census_blocks). Le fichier Shapefile est en réalité le fichier d'extension ``.shp``, mais ce fichier seul n'est pas complet sans ses fichiers associés.64 Il est possible que vous vous demandiez "Qu'est-ce que c'est ce shapefile ?" On utilise communément le terme "Shapefile" pour parler d'un ensemble de fichiers d'extension ``.shp``, ``.shx``, ``.dbf``, ou autre ayant un nom commun (ex: nyc_census_blocks). Le fichier Shapefile est en réalité le fichier d'extension ``.shp``, mais ce fichier seul n'est pas complet sans ses fichiers associés. 65 65 66 66 Fichiers obligatoires : 67 67 68 68 * ``.shp`` â les formes; les entités géographiques elle-mêmes 69 * ``.shx`` â l'index de formes; un index base sur les position des entitégéographiques70 * ``.dbf`` â les attributs; les données attributaires associé s à chaque formes, au format dBase III69 * ``.shx`` â l'index de formes; un index base sur les positions des entités géographiques 70 * ``.dbf`` â les attributs; les données attributaires associées à chaque formes, au format dBase III 71 71 72 Les fichiers optionels possibles 72 Les fichiers optionels possibles: 73 73 74 74 * ``.prj`` â la projection; le systÚme de coordonnées et l'information de projection, un fichier texte décrivant la projection utilisant le format text bien connu (WKT) … … 82 82 La plupart des paramÚtres de l'importation de données sont explicites mais même les proffessionnels du SIG peuvent rencontrer des difficulté à propos du **SRID**. 83 83 84 "SRID" signifie "IDentifiant de Référénce Spatiale". Il définit tout les paramÚtres de nos données decoordonnées géographiques et la projection. Un SRID est pratique car il encapsule sous la forme d'un nombre toutes les informations à propos de la projection de la carte (ce qui peut être trÚs compliqué).84 "SRID" signifie "IDentifiant de Référénce Spatiale". Il définit tout les paramÚtres de nos données, telles les coordonnées géographiques et la projection. Un SRID est pratique car il encapsule sous la forme d'un nombre toutes les informations à propos de la projection de la carte (ce qui peut être trÚs compliqué). 85 85 86 Vou pouvez consulte zla définition de la projection de la carte en consultant la base de données en ligne suivante :86 Vou pouvez consulter la définition de la projection de la carte en consultant la base de données en ligne suivante : 87 87 88 88 http://spatialreference.org/ref/epsg/26918/ … … 96 96 .. note:: 97 97 98 La table ``spatial_ref_sys`` de PostGIS est une table standard OGC qui définit tout les systÚmes de références spatiales connus par la base de données. Les données livrées avec PostGIS, contiennent 3000 systÚmes de références spatiales et précise les informations nécessaireà la tranformation ou la reprojection.98 La table ``spatial_ref_sys`` de PostGIS est une table standard OGC qui définit tout les systÚmes de références spatiales connus par la base de données. Les données livrées avec PostGIS, contiennent 3000 systÚmes de références spatiales et précisent les informations nécessaires à la tranformation ou la reprojection. 99 99 100 100 Dans les deux cas, vous obtiendrez une représentation du systÚme de références spatiales **26918** (affiché sur plusieurs lignes ici pour plus de clarté). … … 125 125 Un problÚme auquel se confronte la plupart des débutants en PostGIS est de savoir quel SRID il doit utiliser pour ses données. Tout ce qu'ils ont c'est un fichier ``.prj``. Mais comment un humain peut-il reconnaitre le numéro de SRID correct en lisant le contenu du fichier ``.prj`` ? 126 126 127 La réponse simple est d'utiliser un ordinateur. Copiez le contenu du fichier ``.prj`` dans le formulaire du site http://prj2epsg.org. Cela vous donnera le nombre (ou la liste de nombres) qui correspondentle plus à votre définition de projection. Il n'y a pas de nombre pour *toutes* les projections de cartes existantes dans le monde, mais les plus courants sont disponibles dans la base de données de prj2epsg.127 La réponse simple est d'utiliser un ordinateur. Copiez le contenu du fichier ``.prj`` dans le formulaire du site http://prj2epsg.org. Cela vous donnera le nombre (ou la liste de nombres) qui correspond le plus à votre définition de projection. Il n'y a pas de nombre pour *toutes* les projections de cartes existantes dans le monde, mais les plus courants sont disponibles dans la base de données de prj2epsg. 128 128 129 129 .. image:: ./screenshots/prj2epsg_01.png 130 130 131 Les données que vous recevez des agences locales de l'état - comme la ville de New York - utilise ront la plupart du temps des projections locales noté "state plane" ou "UTM". Dans notre cas, la projection est "Universal Transverse Mercator (UTM) Zone 18 North" soit EPSG:26918.131 Les données que vous recevez des agences locales de l'état - comme la ville de New York - utilisent la plupart du temps des projections locales noté "state plane" ou "UTM". Dans notre cas, la projection est "Universal Transverse Mercator (UTM) Zone 18 North" soit EPSG:26918. 132 132 133 133 134 Les choses à essayer : rendre spatiale une base de données existante134 Les choses à essayer : Rendre spatiale une base de données existante 135 135 -------------------------------------------------------------------- 136 136 … … 141 141 .. note:: 142 142 143 N'oubliez pas saisir le nom de l'utilisateur et le numéro de port losque vous créer une base de données en ligne de command .143 N'oubliez pas saisir le nom de l'utilisateur et le numéro de port losque vous créer une base de données en ligne de commande. 144 144 145 145 Les choses à essayer : Visualiser se données avec uDig 146 146 ------------------------------------------------------ 147 147 148 `uDig <http://udig.refractions.org>`_, (User-friendly Desktop Internet GIS), est outils bureautique de visualisation/edition SIG permettant de visualiser rapidement se données. Vous pouvez visualiser un grand nombre de formats de données différents dont les Shapefiles et les bases de données PostGIS. Son interface graphique vous permet d'explorer vos données facilement mais aussi de les tester et les s yler rapidement.148 `uDig <http://udig.refractions.org>`_, (User-friendly Desktop Internet GIS), est outils bureautique de visualisation/edition SIG permettant de visualiser rapidement se données. Vous pouvez visualiser un grand nombre de formats de données différents dont les Shapefiles et les bases de données PostGIS. Son interface graphique vous permet d'explorer vos données facilement mais aussi de les tester et les styler rapidement. 149 149 150 150 Utilisez cette application pour vous connecter à votre base de données PostGIS. L'application est contenu dans le répertoire ``software``. … … 152 152 .. rubric:: Footnotes 153 153 154 .. [#PostGIS_Install] "Chapter 2.5. Installation" PostGIS Documentation. Ma y2010 <http://postgis.org/documentation/manual-1.5/ch02.html#id2786223>154 .. [#PostGIS_Install] "Chapter 2.5. Installation" PostGIS Documentation. Mai 2010 <http://postgis.org/documentation/manual-1.5/ch02.html#id2786223> 155 155 -
trunk/workshop-foss4g/simple_sql.rst
r19 r37 1 1 .. _simple_sql: 2 2 3 Partie 6 : requêtes SQL simples3 Partie 6 : Requêtes SQL simples 4 4 =============================== 5 5 6 :term:`SQL`, pour "Structured Query Language", définit comment interroger et mettre des données dans une base. Vous vez déjà du SQL lorsque nous avonsnotre premiÚre base de données. Rappel:6 :term:`SQL`, pour "Structured Query Language", définit la maniÚre d'interroger et de mettre des données dans une base. Vous avez déjà rédigé du SQL lorsque nous avons créer notre premiÚre base de données. Rappel: 7 7 8 8 .. code-block:: sql … … 10 10 SELECT postgis_full_version(); 11 11 12 Mai s ici c'était une question à propose de la base de données. Maintenant que nous avons carger des données dans notre base, essayons d'utiliser SQL pour interroger les données !Par exemple,12 Maintenant que nous avons charger des données dans notre base, essayons d'utiliser SQL pour les interroger. Par exemple, 13 13 14 14 "Quel sont les noms des quartier de la ville de New York ?" … … 53 53 54 54 55 Les ``colonnes`` sont soit des noms de colonnes soit des fonctions utilisant les valeurs des colonnes. Les ``données`` sont soit une table seule, ou plusieures tables reliés ensemble en réalisant une jointure sur une clef ou une autre condition. Les ``conditions`` représentent le filtre qui restreint le nombre de lignes a retourner.55 Les ``colonnes`` sont soit des noms de colonnes soit des fonctions utilisant les valeurs des colonnes. Les ``données`` sont soit une table seule, soit plusieures tables reliées ensemble en réalisant une jointure sur une clef ou une autre condition. Les ``conditions`` représentent le filtre qui restreint le nombre de lignes a retourner. 56 56 57 57 "Quel sont les noms des quartier de Brooklyn ?" 58 58 59 Nous retournons à notre table ``nyc_neighborhoods`` avec le filtre en main. La table contient tout les quartiers de New Yor l et nous ne voulons queceux de Brooklyn.59 Nous retournons à notre table ``nyc_neighborhoods`` avec le filtre en main. La table contient tout les quartiers de New York et nous voulons uniquement ceux de Brooklyn. 60 60 61 61 .. code-block:: sql … … 65 65 WHERE boroname = 'Brooklyn'; 66 66 67 La requête prendra encore quequelque (mili)secondes et retournera les 23 éléments résultants.67 La requête prendra à nouveau quelque (mili)secondes et retournera les 23 éléments résultants. 68 68 69 Parfois nous aurons besoin d'appliquer des fonctions sur le résultats d'une de nos requête . Par exemple,69 Parfois nous aurons besoin d'appliquer des fonctions sur le résultats d'une de nos requêtes. Par exemple, 70 70 71 71 "Quel est le nombre de lettres dans les noms des quarties de Brooklyn ?" 72 72 73 Heureusement PostgreSQL fournit une fonction calculant la l angueur d'une chaîne de caractÚres : :command:`char_length(string)`.73 Heureusement PostgreSQL fournit une fonction calculant la longueur d'une chaîne de caractÚres : :command:`char_length(string)`. 74 74 75 75 .. code-block:: sql … … 79 79 WHERE boroname = 'Brooklyn'; 80 80 81 Bien souvent nous sommes moins interressé par une ligne particuliÚre mais plus par un calcul statistique sur l'ensemble résultant. Donc connaitre la longueur des noms de quartiers serait moins interressant que de calculer la moyenne des ces longueurs. Les fonctions qui renvoit un résultat unique en utilisant un ensemble de valeurs sont appelée des "fonctions d'aggrégations".81 Bien souvent nous sommes moins interressés par une ligne particuliÚre mais plus par un calcul statistique sur l'ensemble résultant. Donc connaitre la longueur des noms de quartiers est moins interressant que de calculer la moyenne des ces longueurs. Les fonctions qui renvoit un résultat unique en utilisant un ensemble de valeurs sont appelée des "fonctions d'aggrégations". 82 82 83 83 PostgreSQL fournit un ensemble de fonctions d'aggrégations, parmis lesquelles :command:`avg()` pour calculer la moyenne, and :command:`stddev()` pour l'écart type. … … 125 125 `avg(expression) <http://www.postgresql.org/docs/current/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: fonction d'agrégation de PostgreSQL qui retourne la valeur moyenne d'une colonne. 126 126 127 `char_length(string) <http://www.postgresql.org/docs/current/static/functions-string.html>`_: fonction s'applicant aux chaînes de caractÚre de PostgreSQL qui retourne le nombre de lettre dans une chaîne.127 `char_length(string) <http://www.postgresql.org/docs/current/static/functions-string.html>`_: fonction s'applicant aux chaînes de caractÚre de PostgreSQL qui retourne le nombre de lettres dans une chaîne. 128 128 129 129 `stddev(expression) <http://www.postgresql.org/docs/current/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-STATISTICS-TABLE>`_: fonction d'aggrégation de PostgreSQL qui retourne l'écart type d'un ensemble de valeurs. -
trunk/workshop-foss4g/simple_sql_exercises.rst
r19 r37 1 1 .. _simple_sql_exercises: 2 2 3 Partie 7 : exercices simples de SQL3 Partie 7 : Exercices simples de SQL 4 4 =================================== 5 5 6 En utilisant la table ``nyc_census_blocks``, répondez au questions suivantes ( n'allez pas directement auréponses ! ).6 En utilisant la table ``nyc_census_blocks``, répondez au questions suivantes (et n'allez pas directement aux réponses ! ). 7 7 8 8 Vous trouverez ci-dessous des informations utiles pour commencer. Référez-vous à la partie `à propos des nos données <about_data>` pour la définition de notre table ``nyc_census_blocks``. … … 12 12 13 13 * - **blkid** 14 - Un code à 15 chiffres qui définit de maniÚre unique chaque **bloc k** ressencé . Ex: 36005000100900014 - Un code à 15 chiffres qui définit de maniÚre unique chaque **bloc** ressencé . Ex: 360050001009000 15 15 * - **popn_total** 16 - Nombre total de personnes dans un bloc kressensé16 - Nombre total de personnes dans un bloc ressensé 17 17 * - **popn_white** 18 18 - Nombre de personnes se déclarant "blancs" … … 34 34 - Nom du quartier de New York. Manhattan, The Bronx, Brooklyn, Staten Island, Queens 35 35 * - **the_geom** 36 - Polygone délimitant le bloc k36 - Polygone délimitant le bloc 37 37 38 38 Ici se trouvent certaines des fonctions d'aggrégation qui vous seront utiles pour répondre aux questions : … … 42 42 * count() - le nombre d'élément contenu dans un ensembe d'enregistrements. 43 43 44 Maintenant les question :44 Maintenant les questions : 45 45 46 46 * **"Quelle est la population de la ville de New York ?"**
Note: See TracChangeset
for help on using the changeset viewer.