Více

Vynechání mapování polí v Kopírovat jako úryvek Pythonu?

Vynechání mapování polí v Kopírovat jako úryvek Pythonu?


Provedl jsem úkol ArcMap 10.1 pomocí nástroje Spatial Join v panelu nástrojů. Potom z vdov po výsledcích klikněte pravým tlačítkem a vyberteKopírovat jako úryvek Pythonu. To bude základem pro skript, který bude smyčkou procházet řadu kombinací vstupů a výstupů k automatizaci opakujících se kroků, které by uživatel jinak provedl ručně.

Skript obsahuje velké mapování polí. Neprovádím žádné mapování polí, takže to v mé mysli vlastně nepotřebuji. Existuje způsob, jak odstranit sekci mapování polí a říct arcpy, aby používala stejná jména? To je to, co kód dělá, ale já hledám čistší způsob. Moje iterace navíc nebudou obsahovat stejná pole, ale nebudou mít ani žádné mapování polí. Zkoušel jsem odstranit sekci mapování polí a nahradit ji""ale to nefungovalo.

Aktualizace 2 - Jedno řešení a já doufám v něco elegantnějšího, iterujte třídy funkcí používané pro každé prostorové spojení a vytvořte mapování polí v kódu.

Aktualizace 1 - Přidán skript. Chyba je"arcgisscripting.ExecuteError: Selhalo spuštění. Parametry nejsou platné."když nahradím mapování polí"". K chybě dochází na řádku začínajícím na"INTERSECT",.

arcpy. "KEEP_COMMON", "" "" Field01 "Field01" true true false 4 Long 0 0, First,#, C:/… /localFileGeodatabase.gdb/XXX-TargetFeatures-XXX,Field01,-1,-1; Field02 "Field02" true true false 4 Long 0 0, First,#, C:/… /localFileGeodatabase.gdb/XXX-TargetFeatures-XXX,Field02,-1,-1; Field03 "Field03" true true false 2 Text 0 0, First,# , C:/… /localFileGeodatabase.gdb/XXX-TargetFeatures-XXX,Field03,-1,-1;… Field120_1 "Field120" true true false 2 Text 0 0, First,#, C:/… /localFileGeodatabase.gdb/ XXX-TargetFeatures-XXX, Field120, -1, -1 "" "," INTERSECT "," 2000 Feet ","

Objekt FieldInfo může fungovat (používám je v operacích MakeFeatureLayer_management) - vezme všechny původní názvy polí, ponechá název stejný a označí je jako „viditelné“.

origFields = arcpy.ListFields (origFC) fieldInfo = arcpy.FieldInfo () # make feature feature layer with all fields named same and visible for field in origFields: fieldInfo.addField (field.name, field.name, "VISIBLE", "" )

Poté použijtefieldInfoproměnnou v příslušném umístění parametru.

SpatialJoin_analysis (target_features, join_features, out_feature_class, {join_operation}, {join_type}, {mapování pole}, {match_option}, {search_radius}, {distance_field_name})

(viz stránka nápovědy ArcMap)

arcpy. „KEEP_COMMON“, fieldInfo, „INTERSECT“, „2000 Feet“,)

Podívejte se na video: How to copy a list in Python #shorts