Saya melihat antarmuka yang bagus untuk FME dengan Python
Apa yang kalian lakukan dengan itu? Saya ingin ide.
Saya melihat antarmuka yang bagus untuk FME dengan Python
Apa yang kalian lakukan dengan itu? Saya ingin ide.
Saya baru memulai dengan FME, dan saya menggunakan skrip shutdown untuk menyalin target FGDB saya ke lokasi lain dan untuk menyimpan file 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')
Itu cukup mendasar, tetapi saya pikir tidak ada batasan. Ada banyak ide di sini juga.
EDIT: Menambahkan kode untuk mendapatkan sejumlah fitur yang ditulis dan mendorongnya ke file log CSV.
Lihatlah Oliver's Python Corner. Ada banyak hal yang dapat Anda lakukan menggunakan Python di FME.
Saya sering menggunakan PythonCaller untuk membuat beberapa pengaturan atribut di dalam 1 transformator daripada menggunakan 10 transformer berbeda (jika elif elif yang lain ..)
Anda dapat memiliki PythonCallers yang sangat mendasar seperti contoh ini yang akan mengubah semua atribut Anda menjadi nilai huruf besar:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
Saya juga menggunakan PythonCaller untuk mengirim email jika terjadi kegagalan atau berinteraksi dengan FTP Server dll. Sebenarnya tidak ada batasan
Bersenang-senang dan senang FMEing
Jeff
Contoh yang baik di atas: Saat ini saya sedang menulis artikel untuk basis pengetahuan kami bernama FMEPedia di sini: Dasar-Dasar Python dan FME .
Ini termasuk beberapa contoh sederhana seperti menghapus file sebelum menjalankan ruang kerja dengan skrip start up, memanipulasi fitur dengan PythonCaller dll. Ada juga tautan ke contoh yang lebih kompleks.
Perangkat Lunak Aman Ken Bragg
sumber
Contoh:
Log Khusus
Dan Kirim Email :
sumber
Saya baru-baru ini menggunakan transformator PythonCaller yang mendapatkan koordinat dari file CSV dan menyimpannya sebagai atribut. CSV akan ditulis dari ruang kerja lain yang menggunakan BoundsExtractor Transformer yang mendapatkan koordinat terikat dari kotak pembatas bidang yang saya minati.
Saya kemudian meneruskan atribut ini ke WorkspaceRunners lain yang menggunakan koordinat terikat sebagai jendela pencarian untuk diproses lebih lanjut. Saya memiliki data State-Wide dan untuk memproses seluruh negara akan memakan waktu beberapa jam. Karena saya membatasi pemrosesan saya ke jendela tertentu, semuanya membutuhkan satu menit.
Kode pythonCaller ada di sini:
Saya juga menggunakan skrip start up python yang menyalin pohon folder ke lokasi lain jika belum ada.
sumber