Index: trunk/workshop-foss4g/geometry_returning.rst
===================================================================
--- trunk/workshop-foss4g/geometry_returning.rst	(revision 50)
+++ trunk/workshop-foss4g/geometry_returning.rst	(revision 62)
@@ -4,8 +4,8 @@
 ====================================================
 
-Toute les fonctions que nous avons vu jusqu'Ã  prÃ©sent traitent les gÃ©omÃ©tries "comme elles sont" et retournent: 
- 
-* une analyse des objets (:command:`ST_Length(geometry)`, :command:`ST_Area(geometry)`), 
-* une sÃ©rialisation des objets (:command:`ST_AsText(geometry)`, :command:`ST_AsGML(geometry)`), 
+Toute les fonctions que nous avons vu jusqu'Ã  prÃ©sent traitent les gÃ©omÃ©tries "comme elles sont" et retournent:
+
+* une analyse des objets (:command:`ST_Length(geometry)`, :command:`ST_Area(geometry)`),
+* une sÃ©rialisation des objets (:command:`ST_AsText(geometry)`, :command:`ST_AsGML(geometry)`),
 * une partie de l'objet (:command:`ST_RingN(geometry,n)`) ou
 * un rÃ©sultat vrai/faux (:command:`ST_Contains(geometry,geometry)`, :command:`ST_Intersects(geometry,geometry)`).
@@ -17,9 +17,9 @@
 -------------------------------
 
-Un besoin commun lors de la crÃ©ation de requÃªtes spatiales est de remplacer une entitÃ© polygonale par un point reprÃ©sentant cette entitÃ©. Cela esr utile pour les jointures spatiales (comme indiquÃ© ici : :ref:`polypolyjoins`) car utiliser :command:`ST_Intersects(geometry,geometry)` avec deux polygones impliquera un double comptage : un polygone pour le contour externe intersectera dans les deux senses; le replacer par un point le forcera Ã  Ãªtre dans un seul sens, pas les deux.
+Un besoin commun lors de la crÃ©ation de requÃªtes spatiales est de remplacer une entitÃ© polygonale par un point reprÃ©sentant cette entitÃ©. Cela est utile pour les jointures spatiales (comme indiquÃ© ici : :ref:`polypolyjoins`) car utiliser :command:`ST_Intersects(geometry,geometry)` avec deux polygones impliquera un double comptage : un polygone pour le contour externe intersectera dans les deux sens; le remplacer par un point le forcera Ã  Ãªtre dans un seul sens, pas les deux.
 
- * :command:`ST_Centroid(geometry)` retourne le point qui est approximativement au centre de la masse de la gÃ©omÃ©trie passÃ© en paramÃštre. C'est un calcul simle et rapide, mais parfois non proftable, car le point retournÃ© peut se trouver Ã  l'extÃ©rieur de l'entitÃ© elle-mÃªme. Si l'entitÃ© fournie est convee (imaginez la lettre 'C') le centroÃ¯de renvoyÃ© pourrait ne pas Ãªtre Ã  l'intÃ©rieur du polygone.
- * :command:`ST_PointOnSurface(geometry)` retourne un point qui est obligatoirement dans l'entitÃ© passÃ©e en paramÃštre. Cette fonction coÃ»te plus cher en ressource que le calcul du centroÃ¯d.
- 
+ * :command:`ST_Centroid(geometry)` retourne le point qui est approximativement au centre de la masse de la gÃ©omÃ©trie passÃ©e en paramÃštre. C'est un calcul simple et rapide, mais parfois non profitable, car le point retournÃ© peut se trouver Ã  l'extÃ©rieur de l'entitÃ© elle-mÃªme. Si l'entitÃ© fournie est convexe (imaginez la lettre 'C') le centroÃ¯de renvoyÃ© pourrait ne pas Ãªtre Ã  l'intÃ©rieur du polygone.
+ * :command:`ST_PointOnSurface(geometry)` retourne un point qui est obligatoirement dans l'entitÃ© passÃ©e en paramÃštre. Cette fonction coÃ»te plus cher en ressource que le calcul du centroÃ¯de.
+
 .. image:: ./geometry_returning/centroid.jpg
 
@@ -28,9 +28,9 @@
 ---------
 
-L'opÃ©ration de zone tampon est souvent disponible dans les outils SIG, il est aussi disponible dans PostGIS. La fonction :command:`ST_Buffer(geometry,distance)` prend en paramÃštre une gÃ©omÃ©trie et une distance et retourne une zone tampon dont le contour est Ã  une distance donnÃ©es de la gÃ©omÃ©trie d'origine.
+L'opÃ©ration de zone tampon est souvent disponible dans les outils SIG, il est aussi disponible dans PostGIS. La fonction :command:`ST_Buffer(geometry,distance)` prend en paramÃštre une gÃ©omÃ©trie et une distance et retourne une zone tampon dont le contour est Ã  une distance donnÃ©e de la gÃ©omÃ©trie d'origine.
 
 .. image:: ./geometry_returning/st_buffer.png
 
-Par exemple, si les services des parks amÃ©ricains souhaitaient renforcer la zone du traffique maritime autour de l'Ã®le 'Liberty', ils pourraient construire une zone tampon de 500 mÃštres autour de l'Ã®le. L'Ã®le de 'Liiberty' est reprÃ©sentÃ© par un seul bloque dans notre table ``nyc_census_blocks`, nous pouvons donc facilement rÃ©aliser ce calcul. 
+Par exemple, si les services des parcs amÃ©ricains souhaitaient renforcer la zone du traffic maritime autour de l'Ã®le 'Liberty', ils pourraient construire une zone tampon de 500 mÃštres autour de l'Ã®le. L'Ã®le de 'Liberty' est reprÃ©sentÃ©e par un seul bloc dans notre table ``nyc_census_blocks``, nous pouvons donc facilement rÃ©aliser ce calcul.
 
 .. code-block:: sql
@@ -38,14 +38,14 @@
   -- CrÃ©ation d'une nouvelle table avec une zone tampon de 500 m autour de 'Liberty Island'
   CREATE TABLE libery_island_zone AS
-  SELECT ST_Buffer(the_geom,500) AS the_geom 
-  FROM nyc_census_blocks 
+  SELECT ST_Buffer(the_geom,500) AS the_geom
+  FROM nyc_census_blocks
   WHERE blkid = '360610001009000';
 
   -- Mise Ã  jour de la table geometry_columns
-  SELECT Populate_Geometry_Columns(); 
-  
+  SELECT Populate_Geometry_Columns();
+
 .. image:: ./geometry_returning/liberty_positive.jpg
 
-La fonction :command:`ST_Buffer` permet aussi d'utiliser des valeur nÃ©gative pour le paramÃštre distance et construit un polygone inclue dans celui passÃ© en paramÃštre. Pour les points et les lignes vous obtiendrez simplement un rÃ©sultat vide.
+La fonction :command:`ST_Buffer` permet aussi d'utiliser des valeurs nÃ©gatives pour le paramÃštre distance et construit un polygone inclus dans celui passÃ© en paramÃštre. Pour les points et les lignes vous obtiendrez simplement un rÃ©sultat vide.
 
 .. image:: ./geometry_returning/liberty_negative.jpg
@@ -55,7 +55,7 @@
 ---------------
 
-Une autre opÃ©ration classique prÃ©sente dans les SIGS - le chevauchement - crÃ©e une nouvelle entitÃ© en calculant la zone correpondant Ã  l'intersection de deux polygones supperposÃ©s. Le rÃ©sultat Ã  la propriÃ©tÃ© de permettre de reconstruire les entitÃ© de base Ã  l'aide de ce rÃ©sultat.
+Une autre opÃ©ration classique prÃ©sente dans les SIG - le chevauchement - crÃ©e une nouvelle entitÃ© en calculant la zone correspondant Ã  l'intersection de deux polygones superposÃ©s. Le rÃ©sultat Ã  la propriÃ©tÃ© de permettre de reconstruire les entitÃ©s de base Ã  l'aide de ce rÃ©sultat.
 
-La fonction :command:`ST_Intersection(geometry A, geometry B)` retourne la zone gÃ©ographique (ou une ligne, ou un point) que les deux gÃ©omÃ©tries on en commun. Si les gÃ©omÃ©tries sont disjointes, la fontion retourne une gÃ©omÃ©trie vide.
+La fonction :command:`ST_Intersection(geometry A, geometry B)` retourne la zone gÃ©ographique (ou une ligne, ou un point) que les deux gÃ©omÃ©tries ont en commun. Si les gÃ©omÃ©tries sont disjointes, la fonction retourne une gÃ©omÃ©trie vide.
 
 .. code-block:: sql
@@ -63,5 +63,5 @@
   -- Quelle est l'aire que ces deux cercles ont en commun ?
   -- Utilisons la fonction ST_Buffer pour crÃ©er ces cercles !
-  
+
   SELECT ST_AsText(ST_Intersection(
     ST_Buffer('POINT(0 0)', 2),
@@ -76,32 +76,32 @@
 --------
 
-Dans l'exemple prÃ©cÃ©dent nous intersections des gÃ©omÃ©tries, crÃ©ant une nouvelle gÃ©omÃ©trie unique Ã  partir de deux entitÃ©s. La commade :command:`ST_Union` fait l'inverse, elle prend en paramÃštre des gÃ©omÃ©tries et supprime les parties communes. Il y a deux versions possibles de la fonction  :command:`ST_Union` : 
+Dans l'exemple prÃ©cÃ©dent, nous intersections des gÃ©omÃ©tries, crÃ©ant une nouvelle gÃ©omÃ©trie unique Ã  partir de deux entitÃ©s. La commande :command:`ST_Union` fait l'inverse, elle prend en paramÃštre des gÃ©omÃ©tries et supprime les parties communes. Il y a deux versions possibles de la fonction  :command:`ST_Union` :
 
- * :command:`ST_Union(geometry, geometry)`: une version avec deux paramÃštres qui prend les gÃ©omÃ©tries et rentourne l'union des deux. Par exemple, nos deux cercles ressemble Ã  ce qui suit si nous utilisons l'opÃ©ration union plutÃŽt que l'intersection.
- 
+ * :command:`ST_Union(geometry, geometry)`: une version avec deux paramÃštres qui prend les gÃ©omÃ©tries et retourne l'union des deux. Par exemple, nos deux cercles ressemblent Ã  ce qui suit si nous utilisons l'opÃ©ration union plutÃŽt que l'intersection.
+
    .. code-block:: sql
 
-     -- Quelle est l'aire totale des ces deux cercles ?
+     -- Quelle est l'aire totale de ces deux cercles ?
      -- Utilisons ST_Buffer pour crÃ©er les cercles !
- 
+
      SELECT ST_AsText(ST_Union(
        ST_Buffer('POINT(0 0)', 2),
        ST_Buffer('POINT(3 0)', 2)
      ));
-  
+
    .. image:: ./geometry_returning/union.jpg
-   
 
- * :command:`ST_Union([geometry])`: une version agrÃ©gÃ©e qui prendre un ensemble de gÃ©omÃ©tries et retourne une gÃ©omÃ©trie contenant l'ensemble des gÃ©omÃ©tries rassemblÃ©es. La fonction Ã©grÃ©gÃ©e ST_Union peut Ãªtre utilisÃ© grÃ¢ce au SQL ``GROUP BY`` our crÃ©er un ensemble rassemblant des sous-ensembles de gÃ©omÃ©tries basiques. Cela est trÃšs puissant,
 
-Par exemple la fonction d'agrÃ©gation  :command:`ST_Union`, considÃšrons notre table ``nyc_census_blocks``. 
-As an example of :command:`ST_Union` aggregation, consider our ``nyc_census_blocks`` table. Census geography is carefully constructed so that larger geographies can be built up from smaller ones. So, we can create a census tracts map by merging the blocks that form each tract (as we do later in :ref:`creatingtractstable`). Or, we can create a county map by merging blocks that fall within each county.
+ * :command:`ST_Union([geometry])`: une version agrÃ©gÃ©e qui prendre un ensemble de gÃ©omÃ©tries et retourne une gÃ©omÃ©trie contenant l'ensemble des gÃ©omÃ©tries rassemblÃ©es. La fonction agrÃ©gÃ©e ST_Union peut Ãªtre utilisÃ© grÃ¢ce au SQL ``GROUP BY`` pour crÃ©er un ensemble rassemblant des sous-ensembles de gÃ©omÃ©tries basiques. Cela est trÃšs puissant.
 
-To carry out the merge, note that the unique key ``blkid`` actually embeds information about the higher level geographies. Here are the parts of the key for Liberty Island we used earlier:
+Comme exemple pour la fonction d'agrÃ©gation  :command:`ST_Union`, considÃ©rons notre table ``nyc_census_blocks``.
+Les gÃ©ographie du recensement sont construites de maniÃšre Ã  ce qu'on puisse crÃ©er d'autres gÃ©ographies Ã  partir des premiÃšres. ainsi, nous pouvons crÃ©er une carte des secteurs de recensement en fusionnant les blocs que forme chaque secteur (comme nous le ferons aprÃšs dans :ref:`la crÃ©ation des tables secteurs<creatingtractstable>`). Ou, nous pouvons crÃ©er une carte du comtÃ© en fusionnant les blocs qui relÃšvent de chaque comtÃ©.
+
+Pour effectuer la fusion, notez que la clÃ© unique ``blkid`` incorpore des informations sur les gÃ©ographies de niveau supÃ©rieur. Voici les parties de la clÃ© pour Liberty Island que nous avons utilisÃ© prÃ©cÃ©demment.
 
 ::
 
   360610001009000 = 36 061 00100 9000
-  
+
   36     = State of New York
   061    = New York County (Manhattan)
@@ -109,33 +109,33 @@
   9      = Census Block Group
   000    = Census Block
-  
-So, we can create a county map by merging all geometries that share the same first 5 digits of their ``blkid``.
+
+Ainsi, nous pouvons crÃ©er une carte du comtÃ© en fusionnant toutes les gÃ©omÃ©tries qui partagent les 5 premiers chiffres de  ``blkid``.
 
 .. code-block:: sql
 
-  -- CrÃ©ation d'une table nyc_census_counties en regroupant les bloques
+  -- CrÃ©ation d'une table nyc_census_counties en regroupant les blocs
   CREATE TABLE nyc_census_counties AS
-  SELECT 
-    ST_Union(the_geom) AS the_geom, 
+  SELECT
+    ST_Union(the_geom) AS the_geom,
     SubStr(blkid,1,5) AS countyid
   FROM nyc_census_blocks
   GROUP BY countyid;
-  
+
   -- Mise Ã  jour de la table geometry_columns
   SELECT Populate_Geometry_Columns();
-  
+
 .. image:: ./geometry_returning/union_counties.png
 
-An area test can confirm that our union operation did not lose any geometry. First, we calculate the area of each individual census block, and sum those areas grouping by census county id.
+Un test de surface peut confirmer que notre opÃ©ration d'union n'a pas perdu de gÃ©omÃ©tries. Tout d'abord, nous calculons la surface de chacun des blocs de recensement et faisons la somme de ces surfaces en les groupant par l'identifiant de recensement des comtÃ©s.
 
 .. code-block:: sql
 
   SELECT SubStr(blkid,1,5) AS countyid, Sum(ST_Area(the_geom)) AS area
-  FROM nyc_census_blocks 
+  FROM nyc_census_blocks
   GROUP BY countyid;
 
 ::
 
-  countyid |       area       
+  countyid |       area
  ----------+------------------
   36005    | 109807439.720947
@@ -145,5 +145,5 @@
   36085    | 149806077.958252
 
-Ensuite nous calculons l'aire de chaque zone de nos nouveaux polygones de rÃ©gions de la table count :
+Ensuite nous calculons l'aire de chaque zone de nos nouveaux polygones de rÃ©gion de la table count :
 
 .. code-block:: sql
@@ -154,5 +154,5 @@
 ::
 
-  countyid |       area       
+  countyid |       area
  ----------+------------------
   36005    | 109807439.720947
@@ -167,13 +167,14 @@
 -------------------
 
-`ST_AsText(text) <http://postgis.org/docs/ST_AsText.html>`_: retourne la reprÃ©sentation Well-Known Text (WKT) de la geometry/geography sans mÃ©tadonnÃ©e SRID.
+`ST_AsText(text) <http://postgis.org/docs/ST_AsText.html>`_: retourne la reprÃ©sentation Well-Known Text (WKT) de la gÃ©omÃ©trie/gÃ©ographie sans mÃ©tadonnÃ©e SRID.
 
-`ST_Buffer(geometry, distance) <http://postgis.org/docs/ST_Buffer.html>`_: For geometry: Returns a geometry that represents all points whose distance from this Geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper. 
+`ST_Buffer(geometry, distance) <http://postgis.org/docs/ST_Buffer.html>`_: Pour les gÃ©omÃ©tries: retourne une gÃ©omÃ©trie qui reprÃ©sente tous les points dont la distance depuis cette gÃ©omÃ©trie est infÃ©rieure ou Ã©gale Ã  la distance utilisÃ©e. Les calculs se font dans le systÃšme de rÃ©fÃ©rence spatial de cette gÃ©omÃ©trie. Pour les gÃ©ographies: utilise une fonction de transformation planaire pour effectuer le calcul.
 
-`ST_Intersection(geometry A, geometry B) <http://postgis.org/docs/ST_Intersection.html>`_: Returns a geometry that represents the shared portion of geomA and geomB. The geography implementation does a transform to geometry to do the intersection and then transform back to WGS84.
+`ST_Intersection(geometry A, geometry B) <http://postgis.org/docs/ST_Intersection.html>`_: retourne une gÃ©omÃ©trie qui reprÃ©sente la portion commune des gÃ©omÃ©tries A et B. L'implÃ©mentation du type gÃ©ographie fait une transformation vers une gÃ©omÃ©trie pour faire l'intersection puis reprojette le rÃ©sultat en WGS84.
 
-`ST_Union() <http://postgis.org/docs/ST_Union.html>`_: Returns a geometry that represents the point set union of the Geometries.
+`ST_Union() <http://postgis.org/docs/ST_Union.html>`_: Renvoie un objet gÃ©omÃ©trique qui reprÃ©sente l'ensemble d'union des objets gÃ©omÃ©triques dÃ©signÃ©s.
 
-`substring(string [from int] [for int]) <http://www.postgresql.org/docs/8.1/static/functions-string.html>`_: PostgreSQL string function to extract substring matching SQL regular expression.
+`substring(string [from int] [for int]) <http://www.postgresql.org/docs/8.1/static/functions-string.html>`_: Fonction de chaÃ®ne PostgreSQL pour extraire une sous-chaÃ®ne de caractÃšres.
 
-`sum(expression) <http://www.postgresql.org/docs/8.2/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: PostgreSQL aggregate function that returns the sum of records in a set of records.
+`sum(expression) <http://www.postgresql.org/docs/8.2/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: Fonction d'agrÃ©gation PostgreSQL qui retourne la somme des valeurs d'une colonne dans un ensemble d'enregistrements.
+
