Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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 smile

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 !! smile

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

 

Pied de page des forums

Powered by FluxBB