Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 >

mardi 24 avril 2007

La WishList pour PostGIS 2.0

Ayé, Paul a publié la liste des souhaits pour PostGIS 2.0 disponible à http://docs.google.com/Doc?id=dg99qr76_2dgt26j. Le moins que l'on puisse dire est que la liste est des plus intéressantes. A mon sens chaque point a été passé en revue: geocoding, routing/réseau, conformité au SFSQL2, amélioration de la documentation, faire de geometry_columns une vue ou autre manipulation.

Je ne passerais pas ici tout en revue mais je citerais par exemple quelques points qui ont attiré mon attention:

  1. renommer les fonctions et les préfixer: Use ST_ for SQL/MM, SE_ for ESRI, SP_ for PostGIS specific. Comme souligné dans ce passage, celà peut porter à la plus grande confusion. Personnellement, je ne me suis pas encore penché sur le cas du SQL/MM qui apparaît comme un sur-ensemble des «objets» de PostGIS. Lire les spécifications c'est long!
  2. que faire de geometry_columns? comme dit le résumé, il faudra attendre que PostgreSQL supporte les triggers sur les tables-système. A quand? A voir!

Il semblerait que la route soit assez longue avant de voir apparaître une première ébauche d'une 2.0 mais la liste des souhaits me semble plus que correcte.

lundi 23 avril 2007

Guide de l'utilisateur PostgreSQL/PostGIS, version 11.1: annexe sur dblink

Suite à mon précédent billet sur dblink, j'ai mis ce billet en forme en tant qu'annexe dans ma documentation. On peut ainsi le retrouver à l'URL http://www.davidgis.fr/documentation/win32/html/apc.html. Contrairement à ce que j'avais annoncé vendredi vu que je n'ai pas eu le temps, j'incluerais l'annexe sur tsearch2 au cours de cette semaine.

Utilisation de Dblink pour interroger des serveurs PostgreSQL distants

Dblink est un module de PostgreSQL qui permet d'interroger des serveurs distants. Il est fournit dans les sources de PostgreSQL

pour la simulation

Ici je vais supposer que j'ai deux bases réparties sur deux serveurs distants:

  1. bremko: IP 192.168.0.4, base: testgis, table:communes_lr;
  2. jenna: IP 192.168.0.5, base: testgis2, table:departements_lr;

Mes deux bases.
Le suffixe "_lr" désigne la région Languedoc-Roussillon. Il s'agit donc des communes et des départements du Languedoc-Roussillon. Mon but ici est de connaître l'ensemble des communes de la région limitrophes au département de l'Hérault (code insee=34).C'est sur bremko que je décide d'installer le module dblink. Pour gagner du temps, je vais supposer ici que mes deux tables sont convenablement indexées sur leur champ géométrique respectif. Je vais aussi supposer que les deux table sont dans le schéma public de leur base respective.

En bleu: communes limitrophes à l'Hérault que je souhaite en interrogeant les deux tables.
Compilation et installation
Pour compiler dblink, rien de plus simple que de se rendre dans les sources de PostgreSQL et de faire en tant que root:
cd /chemin/vers/sources/de/PostgreSQL/contrib/dblink
make
make install
Maintenant, je deviens propriétaire de la base tesgis - ici postgres - sur bremko et je dote ma base des fonctionnalités de dblink
su postgres
psql -d testgis -f /repertoire/racine/de/PostgreSQL/share/contrib/dblink.sql
Premiers tests

Je me connecte à la base testgis sur bremko.

psql testgis
Grâce à dblink, je vais essayer de me connecter à la base testgis2 sur jenna. Sur jenna, l'utilisateur est damien ayant le mot de passe morphine. Ma connexion je vais l'appeler c1. Je commence par ouvrir la connexion en utilisant la fonction dblink_connect():

N.B: Si vous voulez un descriptif de toutes les fonctionnalités de dblink, rendez-vous dans le sous-répertoire doc des sources.

testgis=# SELECT * from dblink_connect('c1','hostaddr=192.168.0.5 port=5432 dbname=testgis2 user=damien password=morphine');
 dblink_connect
----------------
 OK
(1 ligne)
J'effectue une requête simple qui me renvoit les données attributaires de la table departements_lr
testgis=# SELECT * from dblink('c1','select gid,id,nom,numero from departements_lr',true) as foo(gid int,id int,nom text,numero text) order by nom;
 gid | id |        nom        | numero
-----+----+-------------------+--------
   4 |  4 | Aude              | 11
   2 |  2 | Gard              | 30
   1 |  1 | Herault           | 34
   3 |  3 | Lozre             | 48
   5 |  5 | Pyrnes Orientales | 66
(5 lignes)
Je ferme ensuite ma connexion grâce à dblink_disconnect().
testgis=# SELECT * from dblink_disconnect('c1');
 dblink_disconnect
-------------------
 OK
(1 ligne)
Le test attendu
Bien sûr ici, je suppose que j'ai un connexion ouverte
testgis=# SELECT c.nom,c.insee FROM communes_lr c, 
dblink('c1','SELECT nom,the_geom FROM departements_lr',true) AS foo(nom text,the_geom geometry) 
WHERE   foo.nom='Herault' 
AND c.the_geom && foo.the_geom 
AND touches(c.the_geom,foo.the_geom) 
AND c.nom NOT LIKE '34%';
On notera ici que
  • WHERE foo.nom='Herault' est utilisé pour ne retourner que le contour département héraultais de la table departements_lr;
  • c.the_geom && foo.the_geom est utilisé pour tirer profit des index spatiaux;
  • AND c.nom NOT LIKE '34%' pour ne pas retourner les communes internes de l'Hérault.

dimanche 22 avril 2007

Journée bien chargée et soirée dessins-animés

Mise à jour du billet: mardi 2007-04-24
J'avais oublié de mettre la journée de dimanche.
Samedi

Samedi, nous sommes passés au Crès, à Jacou etc...pour faire toutes les courses dont nous avions besoin: médecin, acheter des croissants pour le week-end, etc...

Depuis au moins deux semaines, Gully a modifié sa grille des programmes pour le samedi soir . Du coup, j'ai du noté les horaires des divers épisodes pour Oggy et les cafards. Par exemple pour l'épisode de 16h55, comme nous devions sortir Simba -notre chat - pour aller se promener à Assan, j'ai du programmer l'enregistrement de cet épisode. Rien de compliquer en faisant

mencoder -v tv:// -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp:norm=pal:input=1 \
-ovc lavc -oac mp3lame -vf lavcdeint  -o /var/www/video.avi -endpos 1800
J'avais programmé 30 minutes (1800 secondes) histoire de ne pas rater l'épisode au cas d'un décalage dans les horaires. Va falloir que je réfléchisse à programmer tout celà par cron. J'ai pu regarder en soirée l'épisode de 20h30. Je laisse ici quelques screenshot de l'épisode.



J'ai terminé la soirée en regardant des épisodes de Ken le survivant et d'Ulysse 31 sur Manga. Belle petite soirée
Dimanche

Dimanche, il faisait un beau soleil! Comme nous avions prévu depuis vendredi de sortir notre choix c'est porter sur un petit pique-nique vers Ganges. Sur la route, je me suis trompé à un moment d'itinéraire mais nous avons rattrapé le coup ensuite . On est arrivé sur les coups de 15h15-15h45. Le temps de garer la voiture, on s'est assis à la terrasse d'un café qui longe l'Hérault. Purée ça faisait du bien d'être assis là; Loin des tracas de ces temps-ci, un petit souffle bien mérité! Quoique l'abruti que je suis à oublier de prendre l'appareil numérique [no comment!]!

Nous sommes retournés à la voiture récupérer les affaires du pique-nique: serviettes, le taboulé faite par Madame, et un poulet fumé. Manger à 16h00 de l'après-midi avec ce beau temps, quel plaisir !... Mais bon la pluie guettait: le ciel s'est obscurci! Nous avons eu le temps de manger, de fumer une petite clope. Nous avons juste eu le temps de rentrer dans la voiture avant que la pluie ne fasse des siennes.

En rentrant, nous avons amplement le temps de tout déballer et de nous installer pour suivre les résultats des élections 2007.