Widziałem świetny interfejs do FME z Pythonem
Co z tym robicie? Chcę pomysłów.
Widziałem świetny interfejs do FME z Pythonem
Co z tym robicie? Chcę pomysłów.
Właśnie zaczynam pracę z FME i używam skryptu zamykania, aby skopiować mój docelowy FGDB w inne miejsce i zapisać plik dziennika:
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')
To całkiem proste, ale tak naprawdę nie ma limitu, nie sądzę. Istnieje mnóstwo pomysłów tutaj również.
EDYCJA: Dodano kod, aby uzyskać liczbę zapisanych funkcji i wypchnąć je do pliku dziennika CSV.
Spójrz na Python Corner Olivera. Jest mnóstwo rzeczy, które możesz zrobić używając Pythona w FME.
Często używam PythonCaller do dokonywania pewnych przypisań manipulacji w 1 transformatorze zamiast używania 10 różnych transformatorów (jeśli elif elif inny ..)
Możesz mieć bardzo proste PythonCallers, takie jak ten przykład, który przekonwertuje wszystkie twoje atrybuty na wielkie litery:
def upperAll(feature):
for att in feature.getAttributeList():
feature.setAttribute(att,feature.gettAttribute(att).upper())
Używam również PythonCaller do wysyłania wiadomości e-mail w przypadku awarii lub interakcji z serwerem FTP itp. Tak naprawdę nie ma żadnych ograniczeń
Miłej zabawy i szczęśliwego FMEing
Jeff
Dobry przykład powyżej: obecnie piszę artykuł do naszej bazy wiedzy o nazwie FMEPedia tutaj: Python i FME Basics .
Obejmuje to kilka prostych przykładów, takich jak usuwanie pliku przed uruchomieniem obszaru roboczego ze skryptem startowym, manipulowanie funkcjami za pomocą PythonCaller itp. Istnieją również łącza do bardziej złożonych przykładów.
Bezpieczne oprogramowanie Ken Bragg
źródło
Przykłady:
Niestandardowy dziennik
I wyślij e-mail :
źródło
Ostatnio korzystałem z transformatora PythonCaller, który pobiera współrzędne z pliku CSV i zapisuje je jako atrybuty. Plik CSV jest zapisywany z innego obszaru roboczego, w którym używany jest transformator BoundsExtractor, który pobiera współrzędne graniczne z ramki granicznej mojego obszaru zainteresowania.
Następnie przekazuję te atrybuty innym WorkspaceRunners, które używają współrzędnych ograniczających jako okna wyszukiwania do dalszego przetwarzania. Mam dane z całego stanu i przetwarzanie całego stanu zajęłoby kilka godzin. Ponieważ ograniczam przetwarzanie do konkretnego okna, cała sprawa zajmuje minutę.
Kod pythonCaller jest tutaj:
Używam również skryptu uruchamiania Pythona, który kopiuje drzewo folderów do innej lokalizacji, jeśli jeszcze nie istnieje.
źródło