Comment intégrer des données DWG dans QGis

Le format DWG est un format binaire propriétaire d’Autocad. Quand on veut charger des couches dans QGis à partir de ce format, plusieurs problèmes se posent.

QGis utilise la librairie GDAL pour lire/écrire les formats externes, tels que DWG.

Tout d’abord une précision: il ne faut pas confondre le format DWG et le format DXF. Souvent on trouve des références au format DWG/DXF ce qui est un abus de langage. Les deux formats sont différents. Le format DWG est le format natif du logiciel Autocad. C’est un format propriétaire et, en principe, soumis à licence. Le format DXF est un format d’exportation de données du logiciel Autocad. Il est public et non soumis à licence.

Si vous disposez de fichiers DXF, aucun des problèmes soulevés dans cet article ne s’applique.

Version de DWG

Le premier souci vient du fait qu’il en existe plusieurs versions du format DWG.

La bibliothèque GDAL utilisée par QGis, est compilée avec la bibliothèque libopencad qui gère certaines de ces versions, mais pas toutes. Vous obtiendrez alors un message de type

Dans le cas où la version est supportée par libopencad vous aurez une fenêtre de type:

Logiciel de dessin/Logiciel SIG

Dans la fenêtre précédente on voit la différence conceptuelle entre un logiciel de CAD et un logiciel SIG. Dans le logiciel de dessin, les objets sont regroupés dans des « calques », appelés « couches » dans cette fenêtre. Il ne faut pas confondre la notion de calque avec celle de couche SIG.

GDAL essaye de passer d’une notion à l’autre et c’est pourquoi vous avez dans cette fenêtre une proposition de couches SIG construite à partir des calques du fichier dessin DWG.

La première ligne propose une couche 0-FB1-archive avec 7 entités de type linéaire. Elle correspond à un calque de ce nom où le dessinateur a mis que des objets linéaires. Pour ce calque/couche il n’y a pas de problème, a priori.

Par contre, un peu plus bas, on a une couche « BORNES » avec 39 entités mais avec une géométrie de type « Geometry Collection ». Ceci veut dire en termes plus clairs que les objets dessinés sur ce calque sont de types différents: lignes, points, texte, etc…

GDAL ne peut pas créer une seule couche de type SIG à partir de ce calque sans perdre, éventuellement, des informations importantes. Pour l’instant, QGis ne gère pas des couches avec des géométries différentes (Je pense que seul Geomedia d’Intergraph gère des géométries multi-types). Si vous sélectionnez BORNES et vous cliquez OK, vous verrez une nouvelle couche dans le panneau couches, mais de type DATASET

Vous ne verrez aucune entité sur votre fenêtre cartographique. Par contre si vous ouvrez la table attributaire vous pourrez voir le contenu de ce DATASET

Vous pouvez voir que le calque original était constitué de cercles et de textes. Par contre cette couche est inutilisable dans QGis car aucune géométrie n’est associée à la couche et on ne peut donc pas l’afficher sur la carte.

Contenu des entités

L’autre problème qui se pose, mais en général quand on importe des données en provenance des logiciels CAD, est la manière de gérer la symbologie des entités. Dans un SIG la symbologie est gérée en dehors des données des entités. Elle n’est pas stockée sous forme de données, tout au plus elle peut être stockée dans des fichiers séparés comme les fichiers QML ou SLD.

Dans un fichier de dessin, les mises en formes sont des entités à part entière. Dans la liste des couches affichée plus haut vous pouvez voir un calque FAS-hachures-bati qui contient les hachures des bâtiments.

Ces couches sont inutiles lors de l’intégration dans un SIG.

Une solution de contournement

En attendant que GDAL puisse résoudre tous ces inconvénients un jour, voici une solution de contournement.

Vous pouvez installer et utiliser un programme gratuit pour transformer les fichiers DWG en DXF, avant de les charger dans QGIS.

ODA File Converter (Open Design Alliance) permet d’une part, de convertir les différentes versions de DWG vers le format DXF.

Vous pouvez le télécharger en suivant ce lien.

Une fois installé, à l’exécution vous aurez la fenêtre suivante:

Vous pouvez sélectionner la version la plus récente du format DXF car elle ne pose aucun problème d’intégration avec GDAL et QGIS. Le programme converti tous les fichiers DWG d’un répertoire, et éventuellement des sous-répertoires (si vous cochez la case Recursive folders).

Outre le fait d’avoir un fichier dans un format lisible par QGis, le programme regroupe toutes les entités en trois types d’entités: points, lignes et polygones, plus une classe Geometry Collection.

Contrairement à GDAL et Libopencad, vous verrez un nombre réduit de Geometry Collections. Seules les collections dont ODA n’arrive pas à interpréter (par exemple les CADAttdef) resteront sous forme de collections.

Les autres, comme par exemple le calque BORNES que nous avons vu plus haut, seront convertis sous forme de points pour les textes (avec un attribut TEXT) et de lignes pour les cercles.

Le résultat, si vous chargez les trois couches (Point, LineString et Polygon) sera du type:

Un travail de nettoyage pour éliminer les artefacts de dessin sera indispensable pour ne retenir que les données à proprement parler:

Vous pourrez faire ceci facilement car la table d’attributs générée contient le nom du calque d’origine pour chaque entité.

How to integrate geotagged photos with Arcmap

In this article we will discuss how to create a layer of points with ArcMap containing positions and links to  » geotagged  » photos .

Geotagging is to specify the geographic coordinates photos by changing their data (or tags) EXIF . EXIF (Exchangeable Image file format) of a photo includes information such as the camera type, date and time of shooting etc …

Continuer la lecture de « How to integrate geotagged photos with Arcmap »

ArcGIS <-> QGis. How to share data?

More frequently we have a cohabitation of ArcGis with QGis. We keep ArcGis for heavy operations while QGis is used for lighter work , even if QGis is quite capable of assuming much more than that . Free , easier to handle, QGis  is more used for portable applications. But there’s always the possibility of sharing the data between these two software . Towork properly with ArcGis we use geodatabases, but it is not possible to access such data from QGis. Therefore, we choose to export a shapefile that it is easily accessible by both software . Except that this specific format, available for more than 30 years does not pose many problems. In this article, we will discuss, a quite unknown option, the use of databases SpatiaLite databases, to communicate between both software .

If you want , first of all, to know why it’s worth using SpatiaLite instead of a shapefile, go directly to the paragraph Why not a shapefile? . And afterwards, return here.

Continuer la lecture de « ArcGIS < -> QGis. How to share data? »

Spatial-temporal cube with ArcMap and ArcScene: possible or not?

We have followed during the two latest articles ( The Spatial-Temporal Cube of ArcGis : 1- discovery , The spatial-temporal cube of ArcGis : 2 hot spots and cold spots ), an example for the building and visualization of a spatial-temporal cube with ArcGis Pro 1.0.
We will discuss here how to do the same without ArcGis Pro, but using ArcMap and ArcScene 10.3.
To answer the question asked in the title, is it possible or not, we will answer affirmatively , but at what price?
As for the first part , building the cube, it is possible with ArcMap.
The 3D visualization of the cube, even if this is not documented in the ESRI documentation, it is possible with ArcScene.
Let’s take a look at all the obstacles to overcome , because it’s an obstacle race!
 

Continuer la lecture de « Spatial-temporal cube with ArcMap and ArcScene: possible or not? »

Créer une carte de localisation avec QGis 3.4

Les cartes de localisation permettent une vision plus globale de la zone d’étude représentée sur la carte principale

Le principe est très simple: ce sont deux cartes en une seule mise en page. La carte de localisation aura une caractéristique particulière: on figera l’étendue, les couches affichées et la symbologie de ces couches une fois pour toutes. La seule variable sera le rectangle d’emprise qui, lui, est géré par QGis lui-même.

Pour commencer, cliquez sur le menu Projet->nouvelle mise en page ou ouvrez le gestionnaire de mise en page et créez une nouvelle mise en page.

Dans la fenêtre de mise en page, ajoutez la carte principale (menu Ajouter un élément -> Ajouter carte) et la carte de localisation (idem)

Notez alors que la carte principale est nommée carte 1 et la carte de localisation carte 2.

Vous allez commencer par la définition de la carte de localisation:

1- dans la fenêtre cartographique de QGis, zoomez le contenu de la fenêtre au niveau que vous souhaitez voir dans la carte de localisation.

2- affichez seulement les couches que vous souhaitez voir dans la carte de localisation en désactivant l’affichage des autres couches.

3- Modifiez, si nécessaire, la symbologie des couches visibles. Par exemple, l’épaisseur des traits est généralement plus fin pour la carte de localisation que pour la carte principale.

4-Vérifiez dans le gestionnaire de mise en page que le résultat correspond à vos souhaits. Pour cela, en ayant sélectionné la carte 2, cliquez sur Mise à jour de l’aperçu dans le panneau Propriétés principales

Dans le panneau couches, cochez les cases Verrouiller les couches et Verrouiller le style des couches. Pour assurer qu’il n’y aura pas d’autre modification, cochez la case de verrouillage de carte 2 dans la fenêtre Éléments.

Votre carte de localisation est configurée.

Vous allez maintenant vous occuper de la carte principale. Mettez la en forme (zoom, symbologie, etc…)

Une fois terminée la mise en page de la carte principale, il ne vous reste qu’à relier les deux cartes pour que la carte de localisation affiche l’emprise de votre carte principale.

Pour cela déverrouillez la carte 2, cliquez sur elle pour la sélectionner, ouvrez le panneau Aperçus de votre carte de localisation.

Cliquez sur le bouton + pour ajouter un aperçu dans la liste d’aperçus. Il sera nommé Aperçu 1.

Pour paramétrer l’aperçu, il faut indiquer quelle emprise il faut afficher. Dans Cadre de la carte, sélectionnez Carte 1

Vous pouvez modifier le style de l’emprise (couleur, contour, etc) en ouvrant le Style de cadre

A partir de ce point, si vous changez l’emprise de la carte principale, l’emprise affichée sur la carte de localisation sera modifiée automatiquement pour la représenter.

Faire un Atlas avec QGis

Le but de la fonction Atlas est d’automatiser la production d’une série de cartes. Vous créez un modèle, une série d’emprises et cette fonction produit automatiquement une carte par emprise.

Nous allons voir les notions nécessaires pour sa mise en pratique.

Tout d’abord, quand vous ouvrez un projet vierge, vous avez aussi un gestionnaire de mises en pages vide qui est créé.

Vous devez commencer par créer votre projet: charger les données dan s la fenêtre cartographique, affecter la symbologie voulu à chaque couche, etc.

Une fois ceci fait, vous allez créer la mise en page souhaitée avec le gestionnaire de mise en page. Vous allez disposer la ou les cartes, la légende, les titres et textes, une barre d’échelle, etc.

La seule chose à retenir à ce stade est que vous devez créer une mise en page qui puisse être utilisée pour chaque partie de votre zone de travail. Le plus simple est de zoomer sur une des cartes souhaitées et de mettre en forme la mise en page en utilisant toujours ce niveau de zoom. Travaillez comme si vous ne souhaitiez comme sortie que cette carte-là.

Une fois satisfait de votre mise en page, commence le véritable travail de constitution de l’Atlas.

Créer la couche maîtresse de l’Atlas.

Cette couche doit contenir les entités qui serviront à définir l’étendue de chaque carte de l’Atlas. Elle est obligatoirement de type polygone.

Les emprises vertes peuvent faire l’affaire. Chaque carte en sortie aura la même étendue et échelle. Mais la couche de communes peut tout aussi être utilisée. Dans ce cas, chaque carte sera centée sur une commune, à tour de rôle. Elles auront des échelles différentes ou vous pourrez configurer un paramètre déterminant une échelle commune à toutes les cartes.

Cette couche ne contient pas seulement les étendues de chaque carte de l’Atlas. Elle contient aussi toutes les variables associées à chaque carte. Par exemple, si vous souhaitez que chaque carte des emprises vertes ait un titre différent, il faudra un attribut de type texte pour chaque entité, contenant le texte à utiliser lors de la création de chaque carte.

Mise en place de la fonction Atlas

Dans le gestionnaire de mise en page, quand vous avez fini la mise en forme de votre sortie, cliquez sur l’onglet « Atlas »

Vous accédez au paramétrage de la fonction.

Cochez la case Générer un Atlas pour mettre en route la fonction.

Le panneau Configuration vous permet de configurer les options de fonctionnement de l’Atlas:

1- Emprise de la couche : sélectionnez la couche maîtresse de l’Atlas avec les emprises correspondantes à chaque carte.

2- L’option Cacher la couche de couverture empêche l’impression des entités de la couche maîtresse sur vos cartes.

3- Le Nom de la page est un attribut de la couche maîtresse qui sert à identifier les cartes au sein du gestionnaire de mise en page. Il n’est pas utilisé pour les sorties.

4- L’option Filtrer avec permet de créer un filtre sur la couche maîtresse. Ceci vous permet d’utiliser une seule couche maîtresse pour plusieurs Atlas différents, en sélectionnant par filtrage les entités à prendre en compte pour la génération des cartes.

5-L’option Ordonner par permet de déterminer la suite de cartes. Par défaut, si cette option n’est pas utilisée, les cartes seront produites selon l’ordre des enregistrements de la couche maîtresse.

Le panneau Sortie permet de donner la structure du nom de fichier de chaque carte, si vous souhaitez un fichier par carte. Vous pouvez aussi cocher la case de ne produire qu’un seul fichier avec l’ensemble des cartes. La première option s’applique par exemple à une série d’images png, tandis que la deuxième s’applique plutôt à un fichier pdf.

Visualisation de l’Atlas

Dans le menu du gestionnaire de mise en page, cliquez sur Atlas, puis sur Aperçu de l’Atlas. Les options du menu Première entité, Entité précédente, Entité suivante, Dernière entité sont alors activées. Elles vous permettent d’afficher dans la fenêtre du gestionnaire de mise en page chacune des cartes de l’Atlas.

Les autres options du menu vous permettent, une fois fini la configuration et paramétrage de l’Atlas, de réaliser les sorties souhaitées: cartes individuelles ou fichier unique

Mise en place des variables de l’Atlas

Vous pouvez personnaliser chacune des cartes de l’Atlas à travers des variables. Le besoin le plus classique est la personnalisation du titre de chaque carte.

Pour cela, vous devez créer un élément Titre dans votre mise en page. Dans la fenêtre de texte de l’élément, vous pouvez rentrer du texte classique et des références à un ou plusieurs attributs de votre couche maîtresse.

.Dans cet exemple on fait référence à un attribut nommé Titre2. Le fait de le délimiter par [% et %] l’identifie comme une variable à remplacer par une valeur au moment de la production de l’Atlas. Les variables sont aussi remplacées lors de la visualisation de l’Atlas avec l’Aperçu de l’Atlas.

Mais les variables ne se limitent pas aux élément textuels de la page. Vous pouvez utiliser partout dans QGis les variables de l’Atlas:

Tutoriel classification d’images avec QGis: 2.3- Les filtres spatiaux

Les filtres spatiaux représentent une autre méthode de traitement numérique utilisées pour le rehaussement d’une image. Ces filtres sont conçus de façon à faire ressortir ou à supprimer des caractéristiques spécifiques d’une image en se basant sur leur fréquence spatiale. La fréquence spatiale est liée au concept de texture. Elle fait référence à la fréquence de variation des différents tons qui apparaissent dans une image. Les régions d’une image où la texture est « rugueuse » sont les régions où les changements dans les tons sont abrupts; ces régions ont une fréquence spatiale élevée. Les régions « lisses » ont une variation des tons qui est plus graduelle sur plusieurs pixels; ces régions ont une fréquence spatiale faible. La méthode de filtrage spatial consiste à déplacer une « fenêtre » d’une dimension de quelques pixels (ex. : 3 sur 3, 5 sur 5, etc.) au-dessus de chaque pixel de l’image. On applique alors un traitement mathématique utilisant les valeurs des pixels sous la fenêtre et on remplace la valeur du pixel central par le résultat obtenu. La fenêtre est déplacée le long des colonnes et des lignes de l’image, un pixel à la fois, répétant le calcul jusqu’à ce que l’image entière ait été filtrée. En modifiant le calcul effectué à l’intérieur de la fenêtre, il est possible de rehausser ou de supprimer différents types de caractéristiques présents dans une image.

Continuer la lecture de « Tutoriel classification d’images avec QGis: 2.3- Les filtres spatiaux »

Imprimer des cartes web avec geoserver : évitez le plugin!

Nous verrons ici comment mettre en place une solution pour générer des pdf pour impression à partir d’une page de cartographie interactive, la page codée en OpenLayers 4 et le serveur avec Geoserver 2.14.

En principe, à lire la doc de Geoserver, tout devait être très simple: installation du plugin Print de Geoserver, test de l’install, configuration et c’est tout.

Continuer la lecture de « Imprimer des cartes web avec geoserver : évitez le plugin! »

Tutoriel classification d’images avec ArcMap: 2.5- Exploration des données

Les données de bandes multispectrales différentes ont souvent une corrélation très élevée et contiennent de l’information similaire. Par exemple, les capteurs de la bande 4 et 5 de Landsat MSS (vert et rouge respectivement) produisent des images d’apparence visuelle très semblable étant donné que la réflectance pour le même type de surface est presque identique. Des transformations d’images basées sur des traitements statistiques complexes des données multispectrales peuvent être utilisées pour réduire la redondance des données et la corrélation entre les bandes. L’analyse des composantes principales est une transformation de ce genre. Le but de cette transformation est de réduire le nombre de dimensions (nombre de bandes) et de produire une compression de l’information de plusieurs bandes dans un nombre plus restreint de bandes. Les « nouvelles » bandes qui résultent de cette compression statistique sont appelées composantes. Ce procédé vise à maximiser (statistiquement) la quantité d’information (ou variance) des données originales dans un nombre restreint de composantes. Par exemple, l’analyse des composantes principales, peut transformer des données provenant de sept bandes du capteur TM/Landsat (Thematic Mapper) de façon à ce que les trois principales composantes de la transformation contiennent plus de 90% de l’information contenue dans les sept bandes initiales. L’interprétation et l’analyse de ces trois composantes, en les combinant visuellement ou numériquement, est plus simple et plus efficace que l’utilisation des sept bandes initiales. L’analyse des composantes principales ou d’autres transformations complexes peuvent être utilisées comme techniques de rehaussement visuel pour faciliter l’interprétation ou pour réduire le nombre de bandes qui seront fournies comme données d’entrée à une procédure de classification numérique.

Continuer la lecture de « Tutoriel classification d’images avec ArcMap: 2.5- Exploration des données »

Ajouter Orfeo Toolbox dans QGis 3.X

Si vous avez utilisé le fournisseur de traitements Orfeo TB avec QGis 2.X et que vous le cherchez dans la nouvelle version 3, vous serez déçus. En effet, la réécriture du plugin Orfeo a pris un peu plus de temps que prévu et il ne fait plus partie des plugins installés par défaut.

Il reviendra, une fois tous les tests effectués. Mais en attendant, vous n’êtes pas obligés de vous en passer. Vous pouvez installer Orfeo dans la version 3, mais manuellement.

Voici la démarche à suivre.

Continuer la lecture de « Ajouter Orfeo Toolbox dans QGis 3.X »