Binoclard (aka Je peux blogguer à nouveau) !

Juste un mot pour dire que mon problème de vue s'est arrangé... en mettant des lorgnons ! Il n'y a pas photo, sans je vois trouble très vite. Avec, c'est plus net pendant une partie de la journée. Toutefois, je m'attends à ce que ça ne suffise pas complètement avec le temps. Le problème c'est que je n'aime pas ma tête avec des lorgnons... Binoclard que je suis ! Mais bon, je me console en codant: je n'ai jamais autant corriger de bugs sur différents projets (celui-ci dans Qgis, ces propositions de patch dans Elinks, etc...) !

Au passage, j'ai moyennement apprécié mon passage chez l'ophtalmo qui m'a limite mis dehors au bout de 15 minutes de consultation malgré mes questions... surtout après avoir attendu près de 2 mois pour avoir un rendez-vous (certains trouverons que j'avais bien de la chance d'avoir un rendez-vous aussi rapidement et je leur répondrais que là n'est pas la question: le conseil, l'écoute du patient et la réponse au question sur la santé fait partie du boulot de docteur en médecine, eût-il le temps ou pas !).

Du coup, je vais enfin pouvoir me remettre à publier... et j'ai beaucoup de choses à dire !

Posted sam. 24 juil. 2010 03:46:28 Tags:

Des jeux vidéos des années 90

Introduction:

Je suis un enfant des années 80... et un ado des années 90 ! Les ordinateurs ont marqué ma jeunesse et j'ai grandi à leur contact. A l'époque, j'étais émerveillé par ces engins hors du commun capables de réaliser ce que je prenais pour des prouesses. Cette époque des débuts de la micro-informatique (enfin, disons la période du début de l'industrialisation du sujet) était vraiment particulière. Comme j'étais jeune, je n'avais pas le recul que j'ai aujourd'hui et maintenant que j'ai un peu de bouteille, je peux enfin avoir un regard un peu critique et construit sur le sujet. Ce qui m'excitait outre mesure étaient les jeux vidéos. Combien d'heures passées sur ces logiciels en mode 2D, pleins de sprites et de pixels ? Sans doute beaucoup trop...

Il n'y a pas si longtemps, je me suis pris à retrouver des vielles émissions de MicroKids. Le travail des gens de abandonware-videos.org est impressionnant. Grâce à leurs efforts, j'ai pu re-visionner ce que j'avais vu étant gamin. Je me suis souvenu de certains épisodes et cela m'a permis de me rendre compte à quel point le cerveau a de la mémoire pour des choses futiles (il y a presque 20 ans les amis tout de même !). Au fil des émissions, j'ai été frappé par ce que je n'avais pas ressenti ou simplement compris à l'époque. Cette surprise étant tellement immense, je tiens à vous faire part ici et maintenant de tout ces éléments de la période 1991-1997...

Premier constat: c'est déjà l'heure du professionnalisme !

Hé oui, on aurait pu s'attendre qu'à l'époque, il était possible de se lancer comme auteur de jeux vidéos en amateur et de faire fortune en vendant son soft. Mais en fait, l'industrie du jeu vidéo a déjà eu le temps de se mettre en place et les auteurs qui percent sont tous "sous contrat" avec un éditeur. De nos jours, ça semble extraordinaire: n'importe quel quidam peut faire du logiciel libre et le publier et rencontrer un succès certain (pas forcément du fric à la clef). Désormais, la diffusion des logiciels se fait principalement via l'effort communautaire et pas par des éditeurs. Anoter que tout ceci n'est que de mon petit point de vue: j'utilise quasi-exclusivement des logiciels libres donc pour moi, les éditeurs sont des gens peu connus. Toutefois, le simple fait que ça existe comme ça prouve à quel point c'est possible et à quel point la diffusion se fait potentiellement en dehors des éditeurs.

Donc, je disais, l'industrie était déjà en place. Quels en étaient les signaux ? D'abord, on peut noter qu'il y avait déjà de nombreux salons professionnels: le CES de Las-Vegas, Imagina, des trucs en Angleterre ou en France, etc... C'est déjà la marque qu'il y a des gens qui désirent faire des shows ou mettre en place une structure de promotion et d'échange d'information. C'est aussi le signe qu'il y a de l'argent dans la balance car, faire un salon n'est pas gratuit. De plus, j'ai pu remarquer que les salons permettaient, comme aujourd'hui, d'alimenter les ragots sur les futures sorties qui vont cartonner avec des previews et des prototypes. De quoi appâter le chaland !

En terme de représentation, un signe qui ne trompe pas: dans les émissions de MicroKids, les directeurs de la communication des éditeurs et constructeurs étaient déjà des vieux ringards sortis des écoles de commerces ou d'ingénieurs... on est loin des jeunes passionnés qui se lancent dans la création de jeux vidéos et on est déjà tombés dans l'escarcelle des pro qui ont déjà pris les rennes de ces entreprises de l'époque.

Début 90, on peut encore noter des jeux qui cartonnent et qui sont lancés par une équipe très réduite de développeurs. Par exemple, Another World d'Eric Chahi fait un malheur sur de nombreuses plateformes. Même s'il est édité par Delphine Software, la réalisation des graphismes, des sons, des animations et du moteur de jeux est le fruit d'un petit groupe de personnes (sans doute un seul en fait). Même topo pour Prince of Persia de Jordan Mechner. Toutefois, rapidement, les équipes se spécialisent: certains bossent sur le moteur de jeu, d'autres sont spécialisés dans les graphismes, d'autres sont de purs musiciens initiés à l'informatique pour la partie sonore... bref, ça se professionnalise à tour de bras et on industrialise le processus de création du jeu. Par exemple, Dune de Cryo était un monstre pour la partie graphisme et c'était bien dû à la séparation des équipes de développement mais aussi grâce au sens novateur des créateurs.

Même si les amateurs peuvent encore percer, les éditeurs s'imposent largement dans cet univers nouveau. Parmi cette pléthore de boîtes, les français tirent leur épingle du jeu. Ainsi, les fondateurs de ERE informatique, devenue Exxos puis Cryo sont des français qui publient dans le monde entier. Déjà, certains groupes font parler d'eux. Parmi eux, on peut citer les Bitmap Brothers qui ont pondu quelques jeux emblématiques de l'époque tels que Speedball, Gods.

Mais d'une manière générale, le monde du jeux vidéo est déjà pourri par le fric: les éditeurs choisissent ou non de sortir un jeu suivant son potentiel de vente. La publicité s'y met et on ne compte déjà plus les goodies pour tel ou tel jeu vidéo. En résumé, c'est déjà un monde bien orienté...

Deuxième élément: rien n'a beaucoup changé !

A l'époque on n'avait pas HADOPI mais on avait déjà DADVSI en concret: les éditeurs utilisaient déjà des procédés pour empêcher la copie... et les crackers savaient déjà les contourner ! Déjà, il y avait un discours des professionnels qui indiquait que le prix du logiciel est bien plus élevé que le prix du média, sous réserve de comprendre qu'une disquette vierge n'est pas chère mais que les frais de dév, de recherche, de toussa, ça coûte plus que le média. Déjà, le même discours anti-copie et protection de la ressource avec l'entretien artificiel de la rareté si cher à nos amis de la musique. Mais bon, à l'époque, on va dire que c'était le début. Depuis, ça fait 15 ans qu'on cherche à protéger ce modèle à grands coups de pompes liberticides dans les textes de loi.

Lors de leur arrivée massive dans la population, les consoles de jeux ont inventé le modèle de développement fermé: Nintendo faisait ses propres jeux et "interdisait" à quiconque de le faire. C'était la même chose pour Sega. De leur côté, les ordinateurs étaient bien plus ouverts: il existait de nombreux éditeurs indépendant des constructeurs. Ce modèle de développement a été quelque peu mis à mal et c'est tant mieux. Empêcher abusivement des gens de coder... non mais, vous vous rendez-compte ! Remarquez, lorsqu'un constructeur prévoit qu'on ne puisse pas installer ce qu'on veut sur sa propre machine, c'est un peu la même censure non ?

Les jeux de l'époque valaient déjà 300-400F soit 45-60€: c'est bizarre mais le prix n'a pas varié malgré l'inflation et pourtant, c'était il y a 20 ans ! Qu'est-ce-qui peut bien expliquer ça ? Je pense que faire un jeu vidéo aujourd'hui mobilise un grand nombre de personnes, plus que dans les années 90. Pourtant, le prix du jeu n'a pas explosé... C'est donc que soit les développeurs sont sous-payés, soit les éditeurs de l'époque s'en foutaient plein les poches, soit ce niveau de prix est le meilleur compromis entre l'effort de développement et ce que les gens sont prêts à payer pour ça !

Toujours au rayon des prix, une machine moyenne de l'époque genre console de jeux coûtait environ 3000-4000 F soit, à la louche, un bon 1000€ de maintenant. Effectivement, les prix ont sans doute baissé. Le prix des PC de l'époque tournait autour de 9000-10000F, à comparer à nos 400€... de ce côté, c'est plutôt positif.

En terme de diversité, c'était déjà l'heure de la repompe. Dès qu'un style de jeu marchait bien, des déclinaisons multiples étaient lancées. Par exemple, Street Fighter 2 a connu de nombreuses "imitations": Mortal Combat et d'autres jeux de baston. Je ne parle pas des Shoot'em Up... parce qu'entre Nemesis, Gradius, Parodius et R-Type, la différence ne saute pas vraiment aux yeux !

Déjà, les gosses étaient intoxiqués avec les jeux vidéos. Dans MicroKids, il y avait de nombreux enfants qui participaient au match pendant l'émission. Ils avaient chacun une voire plusieurs machines et on sentait assez facilement que les parents étaient complètement à l'ouest sur les temps d'utilisation. Pour avoir fait partie de ce groupe d'enfants, avec le recul, je pense que c'est une mauvaise chose. On a beau dire que le jeux vidéo c'est un truc bon pour le cerveau et qu'on y est moins passif qu'à la télé, je perçois que l'addiction vient facilement prendre le dessus et que finalement, elle vient saper le côté positif de la participation active: c'est de la participation par défaut, de la participation parce qu'obligé... Consacrer une très grande partie de son temps à simplement jouer, c'est à dire, exécuter un programme prévu pour, est bien loin de l'acte de création si difficile et si exigeant pour le codeur. A mon avis, seul ce dernier est réellement participatif et libère l'être humain de ses addictions passives qui finissent par le ronger.

Vers 1994, on voit apparaître les premiers jeux en 3D calculée en temps réel. 1994, ça fait 16 ans tout de même ! Certes à l'époque, la qualité était vraiment pas terrible: on avait surtout des objets cubiques avec une simple texture dessus mais on peut dire qu'une grosse partie du travail était déjà réalisé (merci SGI). Depuis cette date, la 3D semble avoir pris le pas sur le pixel art... mais est-ce-vraiment essentiel ? On peut très bien faire un jeu de daube en 3D, là n'est pas le problème.

Toujours à cette date, il y avait déjà des machines en 64bits ! La Jaguar d'Atari était du mouvement... sauf qu'en fait, seuls certains coprocesseurs étaient 64bits. N'oublions pas le contexte de l'époque: plus t'as de bits, mieux c'est ! Enfin, ça me rassure de voir que 16 ans plus tard, Flash ne tourne toujours pas (bien) sur une plateforme 64bits...

Sur le registre du commerce, Micromania faisait déjà de la pub. Je pense qu'ils finançaient indirectement l'émission MicroKids avec leur bandeaux de pub placés au début et à la fin de l'épisode. Aujourd'hui, ils ont carrément pleins de magasins avec pléthore de jeux vidéos: c'est devenu un peu l'usine... Mais comme j'utilise des logiciels libres, je m'en fous un peu en fait!

Troisième truc: Internet et les standards n'existaient pas... encore !

Tout cela abouti à la production massive de jeux vidéos divers et variés sur un groupe importants de plateformes différentes. Hé oui, à l'époque, un jeu qui marchait bien se devait d'être porté sur les plateformes suivantes: Amstrad CPC, MSX, PC, Atari ST, Amiga, Nintendo NES, Sega Mastersystem, Game Boy, Game Gear, Lynx, Apple, etc...). Par comparaison, les plateformes "populaires" d'aujourd'hui sont les suivantes: GNU/Linux, MS Windows, Apple MacOsX, Nintendo Wii, Sony Playstation 3 et MS XBox 360. Quelle uniformité ! D'autant plus que ces machines ont souvent des points communs importants (familles de CPU). D'ailleurs, on peut presque dire que la différence de plateformes ne tient plus vraiment au matériel: MS Windows tourne sur des machines Apple et surtout, GNU/Linux tourne sur quasi-toute machine, de la même manière.

Dans toute cette tambouille de l'époque, on peut noter de francs échecs qui ont contribué à la réduction du nombre de plateformes:

  • l'Amiga CD32 qui verra la perte de Commodore
  • la console Konix qui ne sera qu'une annonce foireuse
  • la 3DO ou une tentative de standard moderne mais qui échoue
  • le MSX, même combat mais quelques années auparavant
  • L'Atari Jaguar qui signe la mort de cette boîte
  • j'en passe et des meilleures...

Combien de travaux, d'essais, de tentatives, de larmes, d'efforts sacrifiés sur l'autel de la concurrence ? C'est dommage car l'industrie du jeux vidéo s'est construite non pas sur une standardisation à la mode W3C mais bien sur la simple mise en concurrence pure et dure qui se solde par l'arrêt brutal de l'activité. Par exemple, je me souviens que l'Amiga de Commodore était une machine super répandue et quasi adulée par ses utilisateurs (je n'en ai jamais possédé un et d'ailleurs, je trouvais qu'en dehors des ShootemUp ou des plateformes, les jeux étaient tous les mêmes). Et pourtant, en quelques années, Commodore a plié boutique ! C'est dommage, ils avaient eu de bonnes idées et ont permis une certaine démocratisation de l'informatique. Pourtant, l'apparition de nouvelles machines et de trucs incompatibles ont eu raison de ce succès. Avec le recul,on se dit que c'était du nivellement par le pire !

Toutefois, quelquechose m'interpelle dans cette profusion de plateformes: on est en train de refaire la même chose avec les téléphones portables. Hé oui, il y a pléthore de plateformes différentes: iPhone, Symbian, Maemo/Meego, Android, WebOs, OpenMoko, BlackBerry, Windows Mobile... Tout ça, sur du matériel très variable d'un téléphone à l'autre. Mon petit doigt me dis que l'évolution se fera comme dans les années 90: par des arrêts brutaux et la domination de quelques plateformes.

Conclusion:

C'était une ère finalement assez proche de celle qu'on connaît. Les jeux de l'époque tournaient sur du matériel un peu complexe à manier et les développeurs devaient être avant tout talentueux pour faire tourner des logiciels qui pompaient beaucoup sur les ressources systèmes. De nos jours, le poids des graphismes et de la musique écrase un peu la dimension du code. Il suffit pour s'en rendre compte de voir le nombre de moteurs de jeux qui existent, qui sont libres ou libérés mais dont les graphismes et la musiques sont fermés. Je pense que les éditeurs misent sur ces ressources et non plus sur le moteur... Ce qui explique pourquoi on a finalement assez peu de jeux libres.

Pas de logiciel libre du tout à l'époque. Normal, on était au début du mouvement lancé par Linus Torvalds et Linux même si la FSF avait initié le projet GNU depuis 1984. C'est ce qui m'a le plus manqué finalement: avec le logiciel libre, je pense que de nombreux "amateurs" se seraient lancé à faire des jeux vidéos et on ne serait pas tombé dans l'industrie d'aujourd'hui (enfin disons qu'elle ne serait sans doute pas pareil que maintenant).

Néanmoins, tout n'était pas aussi noir que ça et il existait déjà les germes de ce qui allait devenir le logiciel libre plus tard. Dans ce monde déjà sclérosé par le fric et la rentabilité, un élément notoirement différent sortait son épingle du jeu. Un élément fait par des codeurs "amateurs", diffusé au plus grand nombre de manière gratuite et dont le rapport à l'argent est complètement nul... Cet élément, c'est celui de la scène des demomakers. Hé oui, les démos c'était le bon temps. Ce genre de réalisation est carrément de l'art numérique. Pensez-donc, de la musique bien rythmée, des graphismes qui font ce que vous voulez avec du code hyper optimisé, le tout dans des tailles hyper compactées, si ce n'est pas de l'art, je ne sais pas ce que c'est. Et sur ce plan, la liberté est grande: les démomakers sont des gens comme vous et moi: aucun éditeur ne publie leur job et ce qui compte est la diffusion au plus grand nombre.

Pour terminer, je tiens aussi à rappeler l'existence des fanzines. Ces petits journaux fait à la main avec une diffusion restreinte était le coeur d'expression libre de gens de l'époque autour d'un sujet commun. Les fanzines sur les jeux vidéos me rappellent aujourd'hui à quels point ils sont proches des blogs des individus d'aujourd'hui, preuve de ce besoin d'expression qui nous apporte tant !

Mince, dans le feu de l'action, j'ai oublié un élément essentiel: la liste des jeux de ma jeunesse:

  • Alone in the dark 1 et 2.
  • Another World
  • B.A.T.
  • Beneath a steel sky
  • Commanche
  • Conquest of the longbow
  • Defender of the crown.
  • Dune 2
  • Dune
  • Epic
  • Eternam
  • Flashback
  • Gods
  • Golden Axe.
  • Kyrandia
  • KGB
  • Ishar 1 et 2.
  • Indiana Jones and the Fate of Atlantis.
  • La série des King Quest (Le 6 date de 1992)
  • L'arche du capitaine Blood
  • Laura Bow 2
  • Legend of Kyrandia.
  • Les aventures de Moktar
  • Les voyageurs du temps
  • Little Big Adventure
  • Populous
  • Prehistorik
  • Quest for glory 4
  • Sensible soccer
  • Serpent Isle.
  • Shadow of the beast.
  • Speed Ball 2
  • Star Trek Next Generation
  • Tie Fighter
  • The Settlers
  • The lost files of sherlock Holmes
  • Vroom
  • Ultima Underworld et 7
  • Wing Commander 2
  • Wing Commander Privateer
  • Wing Commander 3
  • X-Wing
Posted sam. 24 juil. 2010 12:49:07 Tags:

HOWTO: Utiliser QGis et ftools pour faire des requêtes géographiques

Introduction:

QGis est un logiciel de SIG bureautique. Avec le temps, il se bonifie et commence à faire beaucoup de choses. Toutefois, j'ai quelques difficultés à l'utiliser pour faire "parler" des données. En effet, je suis trop habitué à certaines opérations sous d'autres logiciels ce qui vient me brouiller l'esprit. En matière de traitement d'information, QGis s'appuie sur le plugin ftools (livré par défaut dans l'application) pour tout ce qui traite des couches en vecteur.

Ce petit article a comme objectif d'illustrer comment utiliser ftools à travers un exemple concret. Nous allons essayer de répondre à la question "quelles sont les communes qui ont plus de 20% de leur surface dans un territoire donné ?". A notre disposition, nous avons la couche du territoire en question, la couche des communes (Copyright IGN), QGis version 1.5.0 (j'utilise la version trunk car la sortie de cette version est proche) et ftools 0.5.10.

Comment faire ?

En temps normal, pour répondre à la question, je serais tenté de dire: "faisons une requête géographique". Mais, nous allons voir que QGis propose une autre réponse. Effectivement, la requête spatiale n'est facilement envisageable que si je dispose de couches sous PostgreSQL (avec PostGIS). Ce n'est pas le cas, les couches étant dans un format MapInfo. Rapidement, voici le cheminement retenu:

  • Sélectionner le territoire concerné avec une clause Where.
  • Sélectionner les communes qui s'intersectent avec le territoire concerné.
  • Nettoyer les champs non utiles dans la couche des communes avec l'extension TableManager.
  • Ajouter les champs de calcul de surfaces dans la couche des communes => Donne la surface totale de la commune.
  • Découper avec ftools le territoire avec les communes => donne la géométrie des surfaces communes entre le territoire et les communes.
  • Ajouter les champs de calcul de surface dans la couche des communes découpées.
  • Utiliser le calculateur de champs pour calculer le rapport: surface dans le territoire/surface totale de la commune.

Présentation des données:

La couche des communes (BD Carto de l'IGN mais vous pouvez utiliser une extraction d'OpenStreetMap):

La couche du territoire en question:

Couche MAET

Préalable: activer les bonnes extensions:

Pour suivre les instructions qui vont suivre, vous aurez besoin des extensions suivantes:

  • ftools (mais c'est installé par défaut)
  • TableManager qui permet de modifier le contenu de certaines tables.

Pour installer cette extension, vous devez activer le plugin "plugin installer" (si ce n'est déjà fait) dans Extensions->Gestionnaire d'extensions. Lorsque ce plugin sera activé, vous pourrez utiliser l'installeur d'extension Python pour QGis (Menu Extensions->Récupération des extensions Python...) et y sélectionner le plugin TableManager.

Sélectionner le territoire concerné avec une clause Where:

Dans la couche du territoire, il n'y a qu'un seul territoire qui nous concerne. Il faut donc le sélectionner. On peut le faire à la main mais on peut également le faire à l'aide d'une clause Where dans les propriétés de la couche:

  • Ajouter la couche vecteur du territoire
  • Clic-droit sur la couche -> Requête...
  • Sélectionner le champ sur lequel on veut faire la restriction
  • Dans notre cas, on souhaite que le champ CODE_MAET soit filtré sur trois valeurs distinctes: 'PL_VALL', 'PL_LAYO' et 'PL_LOAM'.
  • La clause Where devient donc: CODE_MAET IN ('PL_VALL','PL_LAYO','PL_LOAM').
  • Cliquer sur valider
  • Ne s'affichent que les territoires concernés.

Clause Where

Si on avait voulu sélectionner sur un seul territoire, on aurait utilisé CODE_MAET = 'PL_VALL'

Voici le résultat comprenant uniquemement les territoires qui nous intéressent et la couche des communes.

Communes MAET

Sélectionner les communes qui s'intersectent avec le territoire

concerné:

Histoire de travailler sur le bon sous-ensemble de communes, nous allons créer une couche de travail qui contiendra uniquement les communes qui s'intersectent avec le territoire concerné. Le tout, au format ESRI Shape pour faciliter la suite des opérations (certaines opérations sont impossibles avec QGis dans un autre format: par exemple, la modification d'objets).

  • Menu "Vecteur"
  • Outils de recherche
  • Sélection par localisation
  • Sélection d'entités dans la couche des communes
  • Qui s'intersectent avec la couche des territoires
  • Créer une nouvelle sélection

Communes sélectionnées - Menu "Couche" - Enregistrer la sélection en tant que fichier vectoriel - Choisir le nom et l'emplacement de la nouvelle couche (COM_MAET.shp dans notre exemple) - Ne pas oublier de rajouter la couche de travail sur notre projet "Ajouter une couche vecteur"

Communes MAET select

Nettoyer les champs de la table de travail des communes:

Pour la suite des opérations, certains champs de la table des communes viennent "polluer" un peu la vision et l'efficacité des opérations. De plus, nous allons ajouter des champs et il est bon d'y voir clair. Pour réaliser ce travail, nous allons utiliser l'extension TableManager.

  • Sélectionner la couche COM_MAET et veiller à ce qu'elle ne soit pas en mode édition.
  • Lancer TableManager (par l'icône ou par Extension->Table->TableManager).
  • Cliquez sur les champs qui vous embêtent
  • Cliquer sur l'icône "Delete"
  • N'oubliez pas de sauvegarder vos modifications

Ajouter les champs de calcul de surfaces dans la couche des communes:

Il faut maintenant calculer la surface des communes. Pour cela, on utilise un outil très simple de ftools: l'ajout des attributs de géométrie qui sont la surface et le périmètre. Cet outil va générer une nouvelle couche (et donc de nouveaux fichiers) contenant deux colonnes de données supplémentaires: la surface de l'objet (AREA) et le périmètre (ici, on s'en fout).

  • Menu "Vecteur" -> Outils Géométriques -> Exporter/Ajouter des colonnes de géométrie
  • Choisir la couche COM_MAET
  • Choisir le nom et l'emplacement du fichier (dans notre cas, COM_MAET_SURF)
  • Ajouter automatiquement la nouvelle couche au projet en cours.

Nous avons donc dans la colonne en question, la surface totale de chaque commune dans le nouveau champ 'AREA'. Muni de cette information, il nous reste à calculer la surface de la commune qui est dans le territoire.

Note: On aurait pu également utiliser le calculateur de champs qui permet de calculer la surface ($area) mais c'était pour illustrer une fonction de Ftools !

Communes MAET select

Découper le territoire avec les communes:

Nous allons maintenant découper le territoire concerné avec les communes. Cette opération nous permettra de récupérer des polygones issus des communes et donc, comportant leurs attributs qui correspondront à la surface commune entre le territoire et la commune. Ces polygones seront stockés dans une nouvelle couche de travail

  • Menu "Vecteur" -> Outils de Géotraitement -> Découper
  • La "Couche Vectorielle de saisie" correspond à la couche qui servira de "ciseaux".
  • La "Couche de découpage" correspond au "papier": c'est elle qui sera découpée.
  • Choisir le nom et l'emplacement de cette couche de travail (DECOUPE_COM_MAET dans notre cas)

Communes MAET select

Calculer le rapport de surface pour les communes

Nous allons maintenant utiliser le calculateur de champs pour calculer le rapport: surface de l'objet/surface totale de la commune.

  • Clic-droit sur la couche DECOUPE_COM_MAET
  • Aller dans l'onglet "Attributs"
  • Basculer en mode édition
  • Cliquer sur l'icône calculatrice de champ:

  • Indiquer le nom du nouveau Champ ainsi que son type (réel car on a besoin d'un pourcentage)

  • Remplir la partie expression avec ce qui suit: ($area/AREA)*100
  • Dans cette expression, on divise la surface de l'objet ($area) par la surface totale de la commune (champ AREA) et on multiplie le tout par 100.
  • Lancer le calcul en cliquant sur OK
  • En consultant la table des attributs, vous pouvez constater que le calcul est déjà réalisé.
  • Sauvergarder le résultat en fermant le mode édition.

Communes MAET select

Les résultats sont dans la colonne RAPPORT_MAET de la table DECOUPE_COM_MAET. Reste maintenant à exporter ça dans un tableur pour livrer le tableau de données.

  • Ouvrir la table d'attributs.
  • Tout désélectionner (première icône en bas à gauche).
  • Inverser la sélection (troisième icône en bas à gauche).
  • Copier les lignes dans le presse-papiers (quatrième icône en bas à gauche).
  • Ouvrir un tableur (Ooo Calc fonctionne bien pour ça).
  • Coller les données: l'import se déroule comme l'ouverture d'un fichier CSV.
  • Attention, même les données géographiques sont exportées: il faudra penser à virer la première colonne !

Voilà, vous avez la réponse à votre question en faisant un tri sur le rapport de surface. A vous la gloire !!!

Conclusion

Répondre à la question du départ est donc possible avec QGis et ftools, sans avoir besoin d'un backend spatial comme PostGIS... Mais c'est long et pénible. Pour parvenir à nos fins, il nous a fallu créer 5 couches temporaires quand même (ou aurait pu en faire une de moins) !

Mais, il est toujours possible de faire un travail correct en utilisant ces quelques astuces.

Posted mer. 28 juil. 2010 07:49:24 Tags: