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? »

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:

Calculer des moyennes locales sur des polygones de Voronoï avec Qgis

Les cartes de Voronoï sont construites à partir d’une série de polygones formés autour de l’emplacement de chaque point d’échantillonnage.

Les polygones de Voronoï sont créés de sorte que chaque emplacement dans un polygone soit plus proche du point d’échantillonnage présent dans ce polygone que de tout autre point d’échantillonnage.

Dans l’article  sur l’analyse exploratoire des données, nous avons vu comment utiliser Geostatistical Analyst d’ArcGis pour construire et analyser les polygones de Voronoï.

Dans cet article nous verrons comment obtenir les mêmes résultats avec QGis. Continuer la lecture de « Calculer des moyennes locales sur des polygones de Voronoï avec Qgis »

Réplication d’une base de données postgresql sur un poste de travail windows

Nous allons configurer une réplication logique d’une table de la base de données de notre serveur linux sur une installation de postgresql sur un poste de travail windows.

La réplication permet d’avoir sur un poste distant une copie actualisée de la base de données centralisée. Cette copie ne sera pas utilisée pour les mises à jour locales, car elle sera en lecture seule. Par contre elle permet de travailler hors connexion et beaucoup plus rapidement, car les échanges entre la base centrale et le réplicat local ne contient que les mises à jours de la base centralisée.

Continuer la lecture de « Réplication d’une base de données postgresql sur un poste de travail windows »

QGis 3 (et QGis cloud) et OpenStreetMap

Si vous vous essayez à la nouvelle version 3 de QGis et que vous êtes un adepte des fonds de carte OpenStreetMap, vous ne manquerez pas de vous demander où sont passés les plugins qui vous permettent de le faire dans la version 2.18.

Vous cherchez sur le net, vous tombez sur plein d’articles sur le fait que la version 3 nécessite un redéveloppement des plugins, qu’il faut être patient et attendre…

Pas de panique, tout va bien! Et il ne faut rien attendre. Continuer la lecture de « QGis 3 (et QGis cloud) et OpenStreetMap »

La gamme ArcGis: produits,licences,extensions

La gamme ESRI n’a jamais été simple à appréhender. Que ce soit au niveau des produits et de leur inter-relation, des extensions ou des niveaux de licence.

Mais la fâcheuse habitude d’ESRI de changer de nom dès que ça commence à être compris par la moyenne des utilisateurs n’arrange pas les choses!

Les licences qui passent d’ArcView à Basic, ArcGis Server qui devient ArcGis Enterprise, etc, etc…

Sans prétentions, voici une vidéo plus que basique pour faire le point à l’heure d’aujourd’hui sur les produits, les applications, les extensions et les niveaux de licence.

Si vous ne trouvez rien de nouveau sous le soleil ne m’en voulez pas. Continuer la lecture de « La gamme ArcGis: produits,licences,extensions »