#1 Fri 14 April 2023 09:44
- Lazaare
- Juste Inscrit !
- Date d'inscription: 13 Apr 2023
- Messages: 9
Analyse de visibilite (FME)
Bonjour,
je m'en remet à vous pour tenter de trouver des pistes (ou même une solution !) à mon problème.
Je souhaite analyser la visibilité entre deux couches de points, drapés sur un raster d'élévation. J'ai déjà effectuer un model builder complet, qui marche (quoique un peu lent) via Arcgis et notamment l'outil Ligne de visée linéaire (Linear Line Of Sight, Defense Tool) qui permet d'obtenir des vecteurs tracés entre les deux couches de points (cibles et observateurs) et qui renseigne si il y a une visibilité et surtout tous les paramètres des vecteurs associés à cette visibilité (azimut, angle...).
Je dois alors transposer tout ça sur FME, le problème étant... je ne trouve pas d'outil existant permettant de construire ces "lignes de visées".
J'ai bien essayé de passer par plusieurs étapes, notamment le fait de créer des lignes entre les deux couches de points puis de vérifier si elles sont intersectées par le DEM ou une couche d'entités 3D. Mais là encore, je ne trouve pas d'outil permettant simplement de tracer des lignes entre tous les points d'une couche vers tous les points d'une autre couche.
si vous avez des pistes ou des idées, je suis preneur !
merci d'avance
Hors ligne
#2 Fri 05 May 2023 10:49
- Lazaare
- Juste Inscrit !
- Date d'inscription: 13 Apr 2023
- Messages: 9
Re: Analyse de visibilite (FME)
Bon, j'ai un peu avancé sur ce projet là et j'ai le début d'un script FME. En ayant fait d'autres posts sur d'autres forums et en recueillant des aides j'ai pu obtenir deux méthodes directement via FME que je pourrais partager ici si quelq'un le souhaite. Cependant, je ne les trouves pas suffisamment satisfaisantes en termes de précision vis à vis de l'outil Linear Line Of Sight de Arcgis. C'est pourquoi je suis partis sur une intégration d'arcpy via Python Caller... mais deuxième souci : mon niveau assez faible en python !
J'en suis à ce code pour importer arcpy et la Linear Line of Sight toolbox, mais je bloque notamment sur le "def input" et le def"output" : si quelqu'un aurait une idée ou une piste sur un éventuel débugage, je suis preneur !!
Code:
import fme import fmeobjects import arcpy import os class FeatureProcessor(object): def __init__(self): self.input_observer_features = "points_survol_75" self.input_surface_features = "MNE" self.input_target_features = "point_moyen_adresse" def input(self, feature): "points_survol_75": self.observer_features.append(feature) "point_moyen_adresse": self.target_features.append(feature) "MNE": self.surface_features.append(feature) self.pyoutput(feature) def process_feature(self, feature): arcpy.ImportToolbox(r"C:\Program Files\ArcGIS\Pro\Resources\ArcToolBox\toolboxes\Defense Tools.tbx") arcpy.env.workspace = r"C:\Users\lsauger.stg\Desktop\python_fme" arcpy.LinearLineOfSight(self.input_point_feature.get_path(), self.input_target_features.get_path(), self.input_elevation_raster.get_path(), "out_los", "out_sight_line", "out_observer", "out_target",0,1) def close(self): """This method is called once all the FME Features have been processed from input(). """ pass
Hors ligne