Open Matheoia opened 1 year ago
Petit commentaire sur les erreurs :
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
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.
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.
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) :
Premièrement, on a les différents attributs qui contiennent par exemple les valeurs d'élévations conservées par le bâtiment.
Ensuite, on a les différents LoD à noter que le LoD.0 représentant le sol, la base du bâtiment est sur une autre branche du fichier que les autres, et ce pour une bonne raison ; ce qu'il y a savoir pour cela : les boundaries sont en fait une liste d'index ; un index qui représente un point (x,y,z) dans une liste décrite plus tard appelée 'vertices' qui contient alors tous les points utiles à tous les LoD
Autrement dit, dans un LoD, les boundaries choisissent de quels points le LoD en question a besoin.
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 :
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 :
et en mettant le nouveau json dans ninja par exemple :
Pour voir à quoi ressemble le json crée : https://github.com/Matheoia/Plugin-QGIS-Reconstruction-3D-de-batiments/blob/f817e4f51141495c31b6147d76056a9e9b195249/nouveau_test.json
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é.
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.