Matheoia / Plugin-QGIS-Reconstruction-3D-de-batiments

3 stars 0 forks source link

Investiguer le problème d'altitude incohérent dans les bâtiments générés avec les données France #13

Open Matheoia opened 1 year ago

Matheoia commented 1 year ago

Examiner ce que Geoflow utilise des données des Pays-Bas Cela nous aidera à savoir ce qui est alors indispensable et utile dans les données françaises. Et expliquera alors pourquoi nos données ne font pas dans la hauteur.

Matheoia commented 1 year ago

Petit commentaire sur les erreurs :

tmuguet commented 1 year ago

Piste : regarder si le cadastre aux Pays-Bas contient des données d'élévation, si oui: voir si nos données de jeu test fournissent cette élévation et comment la donner à geoflow

Matheoia commented 1 year ago

Entre-temps, on a réussi à reconstruire et afficher le bâtiment français sur QGIS

Le JSon du bâtiment reconstruit à partir des données françaises démontre une altitude de base bien différente de celui du bâtiment test néerlandais. Voici par exemple leurs attributs :

France : "ArrDissolve-LoD12.global_elevation_50p": 364.35443115234375, "ArrDissolve-LoD12.global_elevation_70p": 364.659912109375, "ArrDissolve-LoD12.global_elevation_max": 365.1595764160156, "ArrDissolve-LoD12.global_elevation_min": 358.0271301269531, "DataCoverageCalc.data_coverage": 0.9169994592666626, "LASInPolygons.ground_elevations": 357.9700012207031

Pays-Bas : "ArrDissolve-LoD12.global_elevation_50p":10.827411651611328, "ArrDissolve-LoD12.global_elevation_70p":11.761068344116211, "ArrDissolve-LoD12.global_elevation_max":14.884807586669922, "ArrDissolve-LoD12.global_elevation_min":-0.031756579875946045, "DataCoverageCalc.data_coverage":0.8772499561309814, "LASInPolygons.ground_elevations":-0.16899998486042023,

Ainsi, pour observer correctement le bâtiment français avec le visionneur Web, il a fallu reprojeter ces attributs mais aussi les valeurs en hauteurs que les boundaries avaient.

Maintenant, cette issue pourrait alors devenir une réflexion sur : est-ce que l'on veut reprojeter en local tous les bâtiments ? est ce que cette technique un peu débrouillarde est voulue ? Cela veut donc dire que pour visualiser plusieurs bâtiments d'une couche, il faut reprojeter tous les bâtiments, ie soustraire les valeurs de hauteur à la valeur de LASInPolygons.ground_elevations par exemple. En ce qui concerne la compréhension du JSon, je ferais peut-être un aparté sur le GitHub pour l'expliquer et donc expliquer nos réflexions qui en découlent. On verra cela dans une autre issue.

tmuguet commented 1 year ago

Hello @Matheoia ,

Je ne suis pas sûr de bien comprendre le problème et la solution trouvée. Ce que je comprends, c'est que, en quelque sorte, dans ce que geoflow produit, l'altitude du terrain est comptabilisée deux fois: via LASInPolygons.ground_elevations et via les altitudes des bâtiments. Et donc on doit modifier la sortie (le json par exemple) pour corriger ça. C'est bien ça? Si c'est ça, ça peut être un bug dans geoflow, auquel cas vous pouvez ouvrir une issue dans leur projet. Toujours est-il que, si cette correction est nécessaire au bon fonctionnement de notre côté, il faut l'implémenter.

Matheoia commented 1 year ago

Salut @tmuguet ! Je commence une peut-être longue explication du fichier json directement en sortie de la commande Geoflow (cela va je l'espère, te montrer les problèmes que l'on a rencontré et leur solutions.. à toi de nous dire si elles semblent correctes) :

Autrement dit, dans un LoD, les boundaries choisissent de quels points le LoD en question a besoin.

image

Mais voici ce à quoi ressemble le json en l'état puisque le LoD.0 est à la hauteur 0 et les autres à une hauteur médiane décrite dans les attributs :

image

Pour plus de précisions :

Bilan : On peut alors noter que le bâtiment est bien reconstruit grâce à Ninja CityJSon mais on voit aussi le problème des hauteurs. On a alors un script python pour ce que j'ai appelé reprojeter à la hauteur 0 et change au passage le CRS :

image

et en mettant le nouveau json dans ninja par exemple :

image

Pour voir à quoi ressemble le json crée : https://github.com/Matheoia/Plugin-QGIS-Reconstruction-3D-de-batiments/blob/f817e4f51141495c31b6147d76056a9e9b195249/nouveau_test.json

tmuguet commented 1 year ago

Merci pour ces explications, c'est plus clair. Beau travail d'investigation ! Ces correctifs me semblent corrects; ça me semble pertinent également d'ouvrir un ticket sur le repo de geoflow car ça ressemble quand même à un bug de leur côté.