Ich habe eine großartige Schnittstelle zu FME mit Python gesehen
Was macht ihr damit? Ich möchte Ideen.
Ich habe eine großartige Schnittstelle zu FME mit Python gesehen
Was macht ihr damit? Ich möchte Ideen.
Ich fange gerade erst mit FME an und verwende ein Shutdown-Skript, um meine Ziel-REA an einen anderen Speicherort zu kopieren und die Protokolldatei zu speichern:
import distutils.dir_util, shutil, os, time, locale
src = 'C:/Testing/FME/TPW/Third_Party_Wells.gdb'
dst = '//share/Data Services/GIS Data/Data/Third Party Wells/Third_Party_Wells.gdb'
distutils.dir_util.copy_tree(src, dst)
logfile = FME_LogFileName
shutil.copy(logfile, 'C:/temp/PRD_' + os.path.basename(logfile)[:-4] + '_' + time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime()) + '.log')
# Get features written counts
shl_count = str(FME_FeaturesWritten['ThirdPartyWellsSurface'])
bhl_count = str(FME_FeaturesWritten['ThirdPartyWellsBottom'])
lat_count = str(FME_FeaturesWritten['ThirdPartyWellsLaterals'])
# Write out features written counts to log
fm_log = open('C:/temp/PRD_Counts.log','a')
fm_log.write(time.strftime('%m/%d/%Y %I:%M:%S', time.localtime()) + ',' + shl_count + ',' + bhl_count + ',' + lat_count + ',' + str(FME_TotalFeaturesWritten) + '\n')
Das ist ziemlich einfach, aber ich glaube, es gibt wirklich keine Grenzen. Auch hier gibt es jede Menge Ideen .
BEARBEITEN: Im Code hinzugefügt, um die Anzahl der geschriebenen Funktionen abzurufen und diese in die CSV-Protokolldatei zu übertragen.
Schauen Sie sich Olivers Python Corner an. Es gibt eine Menge Dinge, die Sie mit Python in FME tun können.
Ich benutze oft den PythonCaller, um einige Attributmanipulationen innerhalb eines Transformators durchzuführen, anstatt 10 verschiedene Transformatoren zu verwenden (wenn elif elif sonst ..)
Sie können sehr einfache PythonCaller wie dieses Beispiel haben, die alle Ihre Attribute in Großbuchstaben konvertieren:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
Ich benutze den PythonCaller auch, um im Fehlerfall E-Mails zu senden oder mit einem FTP-Server usw. zu interagieren. Es gibt wirklich keine Grenzen
Viel Spaß und viel Spaß beim FMEing
Jeff
Gutes Beispiel oben: Ich schreibe gerade einen Artikel für unsere Wissensdatenbank namens FMEPedia hier: Python- und FME-Grundlagen .
Dies umfasst einige einfache Beispiele wie das Löschen einer Datei vor dem Ausführen eines Arbeitsbereichs mit einem Startskript, das Bearbeiten von Funktionen mit einem PythonCaller usw. Es gibt auch Links zu komplexeren Beispielen.
Ken Bragg Sichere Software
quelle
Beispiele:
Benutzerdefiniertes Protokoll
Und E-Mail senden :
quelle
Ich habe kürzlich einen PythonCaller-Transformator verwendet, der Koordinaten aus einer CSV-Datei abruft und als Attribute speichert. Die CSV wird aus einem anderen Arbeitsbereich geschrieben, der einen BoundsExtractor Transformer verwendet, der die Begrenzungskoordinaten aus einem Begrenzungsrahmen meines Interessenbereichs abruft.
Ich übergebe diese Attribute dann an andere WorkspaceRunner, die die Begrenzungskoordinaten als Suchfenster für die weitere Verarbeitung verwenden. Ich habe landesweite Daten und die Verarbeitung des gesamten Staates würde mehrere Stunden dauern. Da ich meine Verarbeitung auf ein bestimmtes Fenster beschränke, dauert das Ganze eine Minute.
Der pythonCaller-Code ist hier:
Ich verwende auch ein Python-Startskript, das einen Ordnerbaum an einen anderen Speicherort kopiert, falls er noch nicht vorhanden ist.
quelle