RCaller
Exécute un script R qui a la capacité d'accéder à des données d'entités à partir d'un cadre de données R temporaire. Les données d'entrée sont configurées sous forme de tables qui deviendront des cadres de données R. Les cadres de données R sont des tableaux similaires à ceux d'une base de données relationnelle qui prennent en charge des colonnes de différents types. Vous trouverez de plus amples informations sur les cadres de données R à l'adresse suivante :
http://www.r-tutor.com/r-introduction/data-frame
Ce Transformer nécessite que R et le paquetage sqldf soient installés sur le système pour pouvoir fonctionner. Voir Installer R dans la section Notes d'utilisation.
Il est possible de créer un nombre quelconque de cadres de données d'entrée, et un port d'entrée est attribué à chacun d'eux. Toutes les entités peuvent être acheminées vers ce port d'entrée, à condition qu'elles fournissent des valeurs pour chaque colonne définie pour le tableau. Le script R peut impliquer tous les cadres de données et toutes les colonnes définis en entrée. La sortie provient du cadre de données fmeOutput que l'utilisateur peut remplir avec les résultats de l'analyse statistique sur n'importe quel tableau d'entrée.
Un nombre quelconque de ports d'entrée peut être créé soit en se connectant au port Connecter une entrée soit en éditant les propriétés du Transformer et en ajoutant manuellement de nouvelles entrées, soit en important des définitions de port à partir d'entités existantes. Une fois importées, les définitions de la table ne changeront pas automatiquement en fonction des changements de leur source. Dans le cas où le nom d'un attribut est modifié en amont, le nom de la colonne correspondante de la table devra être ajusté manuellement dans les paramètres de la table. Les utilisateurs devront exposer manuellement les attributs de sortie qui seront importés à partir des noms de colonnes du cadre de données fmeOutput au moment de l'exécution.
Le succès de la traduction repose sur la fourniture par l'utilisateur d'un script R valide, respectant la syntaxe R appropriée. Vous trouverez ci-dessous un guide sur le langage R :
https://cran.r-project.org/doc/manuals/r-release/R-lang.html
Pour en savoir plus sur R et obtenir des idées sur les analyses statistiques possibles, les liens suivants sont intéressants :
http://www.r-bloggers.com/how-to-learn-r-2/
http://www.r-tutor.com/r-introduction
Paramètres
Port en entrée
Le RCaller nécessite la définition d'une ou plusieurs tables, qui deviendront des ports d'entrée pour le Transformer. Le bouton Importer... offre un moyen rapide de remplir les définitions des tables d'entrée à partir des types d'entités sources dans le traitement.
Note: Pour optimiser les performances, vous devriez définir le plus petit nombre de colonnes possible.
Notez que certains noms d'attributs et de tables FME peuvent ne pas être valides dans R comme noms de colonnes ou de cadres de données (notamment les noms d'attributs commençant par un trait de soulignement "_"). Pour éviter tout problème, ces noms seront convertis en noms R valides. Les noms ajustés seront affichés dans la section Data frames à gauche de l'éditeur de script.
R Script
Le RCaller a un seul port de sortie. Les attributs créés dans le script doivent être saisis par l'utilisateur dans le paramètre Attributs à exposer afin qu'ils apparaissent dans les Transformers suivants ou dans la vue tableau de l'inspecteur de données. Les attributs définis sur l'entité sont déterminés par les colonnes définies dans le cadre de données fmeOutput au moment de l'exécution. Un éditeur utile est utilisé pour construire le script R, et fournit un accès pratique par glisser-déposer aux cadres de données, aux colonnes, et aux paramètres publiés et privés qui peuvent être utilisés dans le script.
Le nombre d'entités produites dépendra de la longueur de la plus grande colonne du cadre de données fmeOutput. De cette façon, le RCaller peut être utilisé pour sortir une seule valeur, une liste ou une matrice de valeurs.
Une note sur le contenu des tables : les data frames définies pour les ports d'entrée ont besoin des attributs des entités source sur lesquels les requêtes seront exécutées. Ils ne doivent pas - et ne devraient pas - contenir d'attributs supplémentaires.
Remarque sur les entités acheminées vers les ports d'entrée : Les entités acheminées vers les ports d'entrée doivent avoir des attributs qui correspondent au schéma défini pour le cadre de données du port d'entrée. Si ce n'est pas le cas, des valeurs nulles seront insérées à la place des attributs manquants pour les colonnes définies pour la table d'entrée. Un AttributeRenamer ou NullAttributeMapper en amont peut être utilisé pour s'assurer que les valeurs des attributs sont présentes pour les colonnes définies.
Lorsque le package R raster est chargé, les rasters sont pris en charge en entrée et en sortie. En entrée, la géométrie raster dans FME sera convertie en un objet RasterBrick dans R sous la colonne raster de cette table. Autrement dit, la colonne InputTableName$raster contiendra un objet RasterBrick pour chaque entité ayant une géométrie raster, et NA pour chaque entité n'en ayant pas. En sortie, les objets raster de la colonne fmeOutput$raster de R seront convertis en géométrie raster dans FME.
Exemples
Exemple de Script R pour calculer la moyenne et la médiane d'une liste de nombres
list<-c(1,2,2,2,2,3,3,3)
fmeOutput<-data.frame(mean=mean(list), median=median(list))
Notez que dans l'exemple ci-dessus, vous pouvez associer une liste à la valeur d'une colonne numérique de table (par exemple list<-myInput$testColumn)
La sortie du script sera une unique entité avec en sortie moyenne et median
Travailler à partir d'un jeu de données
Imaginons avoir, comme données sources, des données relatives à des arbres dont le diamètre des troncs dans l'attribut Diamètre.
Si le jeu de données est Arbres, lors de la connexion de ce jeu de données à RCaller, un port d'entrée Arbres sera créé.
Assurez-vous que l'attribut Diamètre apparaisse bien dans la table Entrée.
Dans la section R Script, spécifier fmeOutput<-data.frame(MeanDiameter=mean(Trees$Diameter)) permettra de calculer le diamètre moyen des arbres.
Spécifier MeanDiameter dans le paramètre Attributs à exposer permet d'exposer l'attribut Moyenne de sorte à l'utiliser dans la suite du traitement.
Notes
Installer R
Pour utiliser ce Transformer, vous devez installer à la fois R et le paquetage sqldf. L'utilisation d'objets raster nécessite en outre le paquetage raster.
Télécharger l'installeur R :
Windows :
Installer R sous Windows.
Pour plus d'information consulter https://cran.r-project.org/bin/windows/base/.
macOS :
Pour installer R sous Mac OS, vous pouvez télécharger :
Ou utiliser la commande de gestion de package :
brew install R
Pour cela, le gestionnaire de paquets homebrew doit être installé sur le système. Homebrew peut être téléchargé à partir de :
Linux :
Exécuter /opt/<FME version>/utilities/rcaller_setup from the command line (for example, /opt/fme-desktop-2020/utilities/rcaller_setup)
Le script de configuration Linux dans la section Installation de l'interpréteur R installera les paquets R les plus utilisés. Si d'autres sont nécessaires, essayez d'abord de les installer via les paquets système r-cran-* (souvent disponibles sur Debian et Ubuntu). Ce n'est que si un paquet système n'existe pas qu'ils doivent être installés via les instructions de l'invite de commande R ci-dessous.
- Ouvrir l'invite de commande R
- Windows : Exécuter l'interface graphique R en tant qu'administrateur en cliquant avec le bouton droit de la souris dans le menu Démarrer et en sélectionnant "Exécuter en tant qu'administrateur..." .
- Linux/macOS : Lancez la console R (en tant que root, sauf si R a déjà été configuré pour trouver des paquets par utilisateur).
- Exécuter les commandes de l'invite de commande R :
install.packages("<package name>")
Par exemple :
install.packages("sqldf") - Cela lancera une fenêtre vous invitant à sélectionner un miroir de téléchargement. Une fois le miroir sélectionné, le paquetage sera installé dans la bibliothèque R du système. Il est important que cette opération soit effectuée avec des privilèges administratifs, sinon le paquetage sera installé dans une bibliothèque utilisateur et FME ne pourra pas l'utiliser.
- Pour vérifier que le package a été installé correctement, vérifiez l'emplacement listé lors de l'exécution
.libPaths()
à la ligne de commande. Il devrait y avoir un dossier appelé "<nom du paquet>".
En option, vous pouvez placer vos bibliothèques R dans un dossier de ressources partagées. L'emplacement racine de ce dossier est défini dans Workbench sous Outils > Options FME > Chemins par défaut > Dossiers FME partagés. Dans la structure des dossiers FME partagés, les packages R doivent être placés dans le répertoire R, situé sous un répertoire Plugins. Vous devrez peut-être créer manuellement ces répertoires :
<Shared_FME_Folder>\Plugins\R
Pour plus d'informations, voir Chemins par défaut.
Astuces
Vérifiez les types de vos tables d'entrée. Si vous souhaitez effectuer des calculs numériques sur certaines colonnes, assurez-vous qu'elles sont configurées comme des types numériques.
Le lien suivant décrit un problème particulier de Windows avec RCaller :
https://knowledge.safe.com/questions/107172/rcaller-no-package-caled-sqldf.html
Spécifier l'interpréteur R
FME tente de trouver un interpréteur R installé sur votre système, cependant, si R est installé dans un emplacement personnalisé ou si vous avez plusieurs interpréteurs, il peut être nécessaire de spécifier le chemin de l'interpréteur R dans le menu Outils > Options FME > Traitement > Interpréteur R.
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments du traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres d'espace de travail. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au projet peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community iest l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Rechercher des exemples et informations à propos de ce Transformer dans FME Community.