Eu vi uma ótima interface para FME com Python
O que vocês estão fazendo com isso? Eu quero idéias
Eu vi uma ótima interface para FME com Python
O que vocês estão fazendo com isso? Eu quero idéias
Estou iniciando o FME e estou usando um script de desligamento para copiar meu FGDB de destino para outro local e salvar o arquivo de log:
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')
Isso é bastante básico, mas realmente não há limites, eu não acho. Há toneladas de idéias aqui também.
EDIT: Adicionado no código para obter o número de recursos gravados e enviá-los para o arquivo de log CSV.
Dê uma olhada no Python Corner de Oliver. Há muitas coisas que você pode fazer usando o Python no FME.
Costumo usar o PythonCaller para fazer algumas manipulações de atributos dentro de 1 transformador, em vez de usar 10 transformadores diferentes (se elif elif mais ..)
Você pode ter PythonCallers muito básicos como este exemplo, que converterão todos os seus atributos em valores em maiúsculas:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
Também uso o PythonCaller para enviar e-mails em caso de falha ou interagir com um servidor FTP etc. Não há limites
Divirta-se e feliz FMEing
Jeff
Bom exemplo acima: Atualmente, estou escrevendo um artigo para nossa base de conhecimento chamado FMEPedia aqui: Python e FME Basics .
Isso inclui alguns exemplos simples, como excluir um arquivo antes de executar uma área de trabalho com um script de inicialização, manipular recursos com um PythonCaller etc. Também existem links para exemplos mais complexos.
Ken Bragg Safe Software
fonte
Exemplos:
Log personalizado
E enviar email :
fonte
Recentemente, eu tenho usado um transformador PythonCaller que obtém coordenadas de um arquivo CSV e as salva como atributos. O CSV é gravado em outro espaço de trabalho que usa um transformador BoundsExtractor que obtém as coordenadas delimitadoras de uma caixa delimitadora da minha área de interesse.
Depois, passo esses atributos para outros WorkspaceRunners que usam as coordenadas delimitadoras como uma janela de pesquisa para processamento adicional. Eu tenho dados em todo o estado e o processamento em todo o estado levaria várias horas. Como limito meu processamento a uma janela específica, tudo leva um minuto.
O código pythonCaller está aqui:
Eu também uso um script de inicialização python que copia uma árvore de pastas para outro local, se ainda não existir.
fonte