Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/workshop-foss4g/projection.rst

    r62 r1  
    11.. _projection: 
    22 
    3 Partie 15 : Projections des données 
    4 =================================== 
     3Section 15: Projecting Data 
     4=========================== 
    55 
    6 La Terre n'est pas plate et il n'y a pas de moyen simple de la poser à plat sur une carte en papier (ou l'écran d'un ordinateur). Certaines projections préservent les aires, donc tous les objets ont des tailles relatives aux autres, d'autre projections conservent les angles (conformes) comme la projection Mercator. Certaines projections tentent de minimiser la distorsion des différents paramÚtres. Le point commun entre toutes les projections est qu'elles transforment le monde (sphérique) en un systÚme plat de coordonnées cartésiennes, et le choix de la projection dépend de ce que vous souhaitez faire avec vos données. 
     6The earth is not flat, and there is no simple way of putting it down on a flat paper map (or computer screen), so people have come up with all sorts of ingenious solutions, each with pros and cons. Some projections preserve area, so all objects have a relative size to each other; other projections preserve angles (conformal) like the Mercator projection; some projections try to find a good intermediate mix with only little distortion on several parameters. Common to all projections is that they transform the (spherical) world onto a flat cartesian coordinate system, and which projection to choose depends on how you will be using the data. 
    77 
    8 Nous avons déjà rencontré des projections, lorsque nous avons chargé les données de la ville de Ney York .Rappelez-vous qu'elles utilisaient le SRID 26918. Parfois, vous aurez malgré tout besoin de transformer et de reprojeter vos données d'un systÚme de projection à un autre, en utilisant la fonction  :command:`ST_Transform(geometry, srid)`. Pour manipuler les identifiants de systÚme de référence spatiale à partir d'une géométrie, PostGIS fournit les fonctions :command:`ST_SRID(geometry)` et :command:`ST_SetSRID(geometry, srid)`. 
     8We've already encountered projections when we :ref:`loaded our nyc data <loading_data>`.  (Recall that pesky SRID 26918).  Sometimes, however, you need to transform and re-project between spatial reference systems. PostGIS includes built-in support for changing the projection of data, using the :command:`ST_Transform(geometry, srid)` function. For managing the spatial reference identifiers on geometries, PostGIS provides the :command:`ST_SRID(geometry)` and :command:`ST_SetSRID(geometry, srid)` functions. 
    99 
    10 Nous pouvons vérifier le SRID de nos données avec la commande :command:`ST_SRID` : 
     10We can confirm the SRID of our data with the :command:`ST_SRID` command: 
    1111 
    1212.. code-block:: sql 
    1313 
    1414  SELECT ST_SRID(the_geom) FROM nyc_streets LIMIT 1; 
    15  
     15   
    1616:: 
    1717 
    1818  26918 
    19  
    20 Et quelle est la définition du "26918" ? Comme nous l'avons vu lors de la partie ":ref:`chargement des données<loading_data>`", la définition se trouve dans la table ``spatial_ref_sys``. En fait, **deux** définitions sont présentes. La définition au format :term:`WKT` dans la colonne ``srtext`` 
     19   
     20And what is definition of "26918"? As we saw in ":ref:`loading data section <loading_data>`", the definition is contained in the ``spatial_ref_sys`` table. In fact, **two** definitions are there. The "well-known text" (:term:`WKT`) definition is in the ``srtext`` column, and there is a second definition in "proj.4" format in the ``proj4text`` column. 
    2121 
    2222.. code-block:: sql 
    2323 
    2424   SELECT * FROM spatial_ref_sys WHERE srid = 26918; 
    25  
    26 En fait, pour les calculs internes de re-projection, c'est le contenu de la colonne ``proj4text`` qui est utilisé. Pour notre projection 26918, voici la définition au format proj.4 : 
     25    
     26In fact, for the internal PostGIS re-projection calculations, it is the contents of the ``proj4text`` column that are used. For our 26918 projection, here is the proj.4 text: 
    2727 
    2828.. code-block:: sql 
    2929 
    3030  SELECT proj4text FROM spatial_ref_sys WHERE srid = 26918; 
    31  
     31   
    3232:: 
    3333 
    34   +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs 
     34  +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs  
     35   
     36In practice, both the ``srtext`` and the ``proj4text`` columns are important: the ``srtext`` column is used by external programs like `GeoServer <http://geoserver.org>`_, `uDig <udig.refractions.net>`_, and `FME <http://www.safe.com/>`_  and others; the ``proj4text`` column is used internally. 
    3537 
    36 En pratique, les deux colonnes ``srtext`` et ``proj4text`` sont importantes : la colonne ``srtext`` est utilisée par les applications externes comme `GeoServer <http://geoserver.org>`_, uDig <udig.refractions.net>`_, `FME <http://www.safe.com/>`_  et autres, alors que la colonne ``proj4text`` est principalement utilisée par PostGIS en interne. 
     38Comparing Data 
     39-------------- 
    3740 
    38 Comparaison de données 
    39 ---------------------- 
     41Taken together, a coordinate and an SRID define a location on the globe. Without an SRID, a coordinate is just an abstract notion. A “Cartesian” coordinate plane is defined as a “flat” coordinate system placed on the surface of Earth. Because PostGIS functions work on such a plane, comparison operations require that both geometries be represented in the same SRID. 
    4042 
    41 Combinés, une coordonnée et un SRID définissent une position sur le globe. Sans le SRID, une coordonnée est juste une notion abstraite. Un systÚme de coordonnées "cartésiennes" est définit comme un systÚme de coordonnées "plat" sur la surface de la Terre. Puisque les fonctions de PostGIS utilisent cette surface plane, les opérations de comparaison nécessitent que l'ensemble des objets géométriques soient représentés dans le même systÚme, ayant le même SRID. 
    42  
    43 Si vous utilisé des géométries avec différents SRID vous obtiendrez une erreur comme celle-ci : 
     43If you feed in geometries with differing SRIDs you will just get an error: 
    4444 
    4545.. code-block:: sql 
     
    5454  ERROR:  Operation on two geometries with different SRIDs 
    5555  CONTEXT:  SQL function "st_equals" statement 1 
    56  
     56   
    5757 
    5858.. note:: 
    5959 
    60    Faites attention de pas utiliser la transformation à la volée à l'aide de :command:`ST_Transform` trop souvent. Les index spatiaux sont construits en utilisant le SRID inclus dans les géométries. Si la comparaison est faite avec un SRID différent, les index spatiaux ne seront pas (la plupart du temps) utilisés. Il est reconnu qu'il vaut mieux choisir **un SRID** pour toutes les tables de votre base de données. N'utilisez la fonction de tranformation que lorsque vous lisez ou écrivez les données depuis une application externe. 
     60   Be careful of getting too happy with using :command:`ST_Transform` for on-the-fly conversion. Spatial indexes are built using SRID of the stored geometries.  If comparison are done in a different SRID, spatial indexes are (often) not used. It is best practice to choose **one SRID** for all the tables in your database. Only use the transformation function when you are reading or writing data to external applications. 
    6161 
    6262 
    63 Transformer les données 
    64 ----------------------- 
     63Transforming Data 
     64----------------- 
    6565 
    66 Si vous retournez à la définition au format proj4 du SRID 26918, vous pouvez voir que notre projection actuelle est de type UTM zone 18 (Universal Transvers Mercator), avec le mÚtre comme unité de mesure. 
     66If we return to our proj4 definition for SRID 26918, we can see that our working projection is UTM (Universal Transverse Mercator) of zone 18, with meters as the unit of measurement. 
    6767 
    6868:: 
    6969 
    70    +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs 
     70   +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs  
    7171 
    72 Essayons de convertir certaines données de notre systÚme de projection dans un systÚme de coordonnées géographiques connu comme "longitude/latitude". 
     72Let's convert some data from our working projection to geographic coordinates -- also known as "longitude/latitude".  
    7373 
    74 Pour convertir les données d'un SRID à l'autre, nous devons dans un premier temps vérifier que nos géométries ont un SRID valide. Une fois que nous avons vérifié cela, nous devons ensuite trouver le SRID dans lequel nous souhaitons re-projeter. En d'autre terme, quel est le SRID des coordonnées géographiques ? 
     74To convert data from one SRID to another, you must first verify that your geometry has a valid SRID. Since we have already confirmed a valid SRID, we next need the SRID of the projection to transform into. In other words, what is the SRID of geographic coordinates? 
    7575 
    76 Le SRID le plus connu pour les coordonnées géographiques est le 4326, qui correspond au couple "longitude/latitude sur la sphéroïde WGS84". Vous pouvez voir sa définition sur le site http://spatialreference.org. 
     76The most common SRID for geographic coordinates is 4326, which corresponds to "longitude/latitude on the WGS84 spheroid". You can see the definition at the spatialreference.org site: 
    7777 
    7878  http://spatialreference.org/ref/epsg/4326/ 
    79  
    80 Vous pouvez aussi récupérer les définitions dans la table  ``spatial_ref_sys`` : 
     79   
     80You can also pull the definitions from the ``spatial_ref_sys`` table: 
    8181 
    8282.. code-block:: sql 
    8383 
    8484  SELECT srtext FROM spatial_ref_sys WHERE srid = 4326; 
    85  
     85   
    8686:: 
    8787 
     
    9494    AUTHORITY["EPSG","4326"]] 
    9595 
    96 Essayons de convertir les cordonnées de la station 'Broad St' : 
     96Let's convert the coordinates of the 'Broad St' subway station into geographics: 
    9797 
    9898.. code-block:: sql 
    9999 
    100   SELECT ST_AsText(ST_Transform(the_geom,4326)) 
    101   FROM nyc_subway_stations 
     100  SELECT ST_AsText(ST_Transform(the_geom,4326))  
     101  FROM nyc_subway_stations  
    102102  WHERE name = 'Broad St'; 
    103  
     103   
    104104:: 
    105105 
    106106  POINT(-74.0106714688735 40.7071048155841) 
    107107 
    108 Si vous chargez les données ou créez une nouvelle géométrie sans spécifier de SRID, la valeur du SRID prendra alors la valeur -1. Rappelez-vous que dans les :ref:`geometries`, lorsque nous avons créé nos tables géométriques nous n'avions pas spécifié un SRID. Si nous interrogeons la base, nous devons nous attendre à ce que toutes les tables préfixées par ``nyc_`` aient le SRID 26918, alors que la table ``geometries`` aura la valeur -1 par défaut. 
     108If you load data or create a new geometry without specifying an SRID, the SRID value will be -1.  Recall in :ref:`geometries`, that when we created our ``geoemetries`` table we didn't specify an SRID. If we query our database, we should expect all the ``nyc_`` tables to have an SRID of 26918, while  the ``geometries`` table defaulted to an SRID of -1. 
    109109 
    110 Pour visualiser la table d'assignation des SRID, interrogez la table ``geometry_columns`` de la base de données. 
     110To view a table's SRID assignment, query the database's ``geometry_columns`` table. 
    111111 
    112112.. code-block:: sql 
    113113 
    114   SELECT f_table_name AS name, srid 
     114  SELECT f_table_name AS name, srid  
    115115  FROM geometry_columns; 
    116  
     116   
    117117:: 
    118118 
    119           name         | srid 
     119          name         | srid   
    120120  ---------------------+------- 
    121121   nyc_census_blocks   | 26918 
     
    125125   geometries          |    -1 
    126126 
    127  
    128 Néanmoins, si vous connaissez le SRID de vos données, vous pouvez l'affecter par la suite en utilisant la fonction :command:`ST_SetSRID` sur les géométries. Ensuite vous pourrez les transformer dans d'autres systÚmes de projections. 
     127   
     128However, if you know what the SRID of the coordinates is supposed to be, you can set it post-facto, using :command:`ST_SetSRID` on the geometry. Then you will be able to transform the geometry into other systems. 
    129129 
    130130.. code-block:: sql 
     
    137137   FROM geometries; 
    138138 
    139 Liste des fonctions 
    140 ------------------- 
     139Function List 
     140------------- 
     141`ST_AsText <http://postgis.org/docs/ST_AsText.html>`_: Returns the Well-Known Text (WKT) representation of the geometry/geography without SRID metadata. 
    141142 
    142 `ST_AsText <http://postgis.org/docs/ST_AsText.html>`_: retourne la représentation au format Well-Known Text (WKT) sans la métadonnée SRID. 
     143`ST_SetSRID(geometry, srid) <http://postgis.org/docs/ST_SetSRID.html>`_: Sets the SRID on a geometry to a particular integer value. 
    143144 
    144 `ST_SetSRID(geometry, srid) <http://postgis.org/docs/ST_SetSRID.html>`_: affecte une valeur au SRID d'une géométrie. 
     145`ST_SRID(geometry) <http://postgis.org/docs/ST_SRID.html>`_: Returns the spatial reference identifier for the ST_Geometry as defined in spatial_ref_sys table. 
    145146 
    146 `ST_SRID(geometry) <http://postgis.org/docs/ST_SRID.html>`_: retourne l'identifiant du systÚme de référence spatiale d'un objet ST_Geometry comme défini dans la table spatial_ref_sys. 
    147  
    148 `ST_Transform(geometry, srid) <http://postgis.org/docs/ST_Transform.html>`_: retourne une nouvelle géométrie aprÚs avoir re-projeté  les données dans le systÚme correspondant au SRID passé en paramÚtre. 
    149  
     147`ST_Transform(geometry, srid) <http://postgis.org/docs/ST_Transform.html>`_: Returns a new geometry with its coordinates transformed to the SRID referenced by the integer parameter. 
Note: See TracChangeset for help on using the changeset viewer.