J'ai vu une excellente interface avec FME avec Python
Qu'est-ce que vous en faites? Je veux des idées.
J'ai vu une excellente interface avec FME avec Python
Qu'est-ce que vous en faites? Je veux des idées.
Je viens de commencer avec FME et j'utilise un script d'arrêt pour copier mon FGDB cible vers un autre emplacement et pour enregistrer le fichier journal:
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')
C'est assez basique, mais il n'y a vraiment pas de limite, je ne pense pas. Il y a aussi des tonnes d'idées ici .
EDIT: ajouté dans le code pour obtenir le nombre de fonctionnalités écrites et les pousser vers le fichier journal CSV.
Jetez un oeil à Oliver's Python Corner. Il y a une tonne de choses que vous pouvez faire en utilisant Python dans FME.
J'utilise souvent le PythonCaller pour faire quelques manipulations d'attributs dans 1 transformateur plutôt que d'utiliser 10 transformateurs différents (si elif elif sinon ..)
Vous pouvez avoir des PythonCallers très basiques comme cet exemple qui convertira tous vos attributs en valeurs majuscules:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
J'utilise également le PythonCaller pour envoyer des emails en cas de panne ou interagir avec un serveur FTP etc. Il n'y a vraiment pas de limites
Amusez-vous bien et heureux
Jeff
Bon exemple ci-dessus: j'écris actuellement un article pour notre base de connaissances appelé FMEPedia ici: Python et FME Basics .
Cela inclut quelques exemples simples tels que la suppression d'un fichier avant d'exécuter un espace de travail avec un script de démarrage, la manipulation de fonctionnalités avec un PythonCaller, etc. Il existe également des liens vers des exemples plus complexes.
Logiciel Ken Bragg Safe
la source
Exemples:
Journal personnalisé
Et envoyer un e - mail :
la source
J'ai récemment utilisé un transformateur PythonCaller qui obtient les coordonnées d'un fichier CSV et les enregistre en tant qu'attributs. Le CSV est écrit à partir d'un autre espace de travail qui utilise un transformateur BoundsExtractor qui obtient les coordonnées de délimitation à partir d'un cadre de délimitation de ma zone d'intérêt.
Je passe ensuite ces attributs à d'autres WorkspaceRunners qui utilisent les coordonnées de délimitation comme fenêtre de recherche pour un traitement ultérieur. J'ai des données à l'échelle de l'État et le traitement de l'ensemble de l'État prendrait plusieurs heures. Parce que je limite mon traitement à une fenêtre particulière, le tout prend une minute.
Le code pythonCaller est ici:
J'utilise également un script de démarrage python qui copie une arborescence de dossiers vers un autre emplacement s'il n'existe pas déjà.
la source