Я видел отличный интерфейс для FME с Python
Что вы, ребята, делаете с этим? Я хочу идеи.
Я видел отличный интерфейс для FME с Python
Что вы, ребята, делаете с этим? Я хочу идеи.
Я только начинаю работать с FME и использую скрипт завершения работы, чтобы скопировать мою целевую FGDB в другое место и сохранить файл журнала:
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')
Это довольно просто, но на самом деле нет предела, я не думаю. Есть тонны идей здесь , как хорошо.
РЕДАКТИРОВАТЬ: Добавлено в коде, чтобы получить количество написанных функций и вытолкнуть их в файл журнала CSV.
Взгляните на Питон-уголок Оливера. Есть множество вещей, которые вы можете сделать, используя Python в FME.
Я часто использую PythonCaller для создания некоторых атрибутов внутри 1 преобразователя, а не для использования 10 различных преобразователей (если elif elif else ..)
У вас могут быть очень простые PythonCallers, такие как этот пример, которые преобразуют все ваши атрибуты в значения в верхнем регистре:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
Я также использую PythonCaller для отправки электронной почты в случае сбоя или взаимодействия с FTP-сервером и т. Д. На самом деле нет никаких ограничений
Веселого и счастливого FMEing
Джефф
Хороший пример выше: я сейчас пишу статью для нашей базы знаний под названием FMEPedia здесь: Основы Python и FME .
Это включает в себя несколько простых примеров, таких как удаление файла перед запуском рабочей области с помощью сценария запуска, управление функциями с помощью PythonCaller и т. Д. Есть также ссылки на более сложные примеры.
Ken Bragg Safe Software
источник
Примеры:
Пользовательский журнал
И отправить письмо :
источник
Недавно я использовал преобразователь PythonCaller, который получает координаты из файла CSV и сохраняет их как атрибуты. CSV записывается из другого рабочего пространства, в котором используется BoundsExtractor Transformer, который получает ограничивающие координаты из ограничительной рамки моей области интересов.
Затем я передаю эти атрибуты другим WorkspaceRunners, которые используют ограничивающие координаты в качестве окна поиска для дальнейшей обработки. У меня есть данные по всему штату, и обработка всего состояния заняла бы несколько часов. Поскольку я ограничиваю свою обработку определенным окном, все это занимает одну минуту.
Код PythonCaller находится здесь:
Я также использую скрипт запуска Python, который копирует дерево папок в другое место, если оно еще не существует.
источник