帖子
|
将源值放入字典中,然后对其进行处理可能更快。这样,您只需使用一次搜索游标来获取值,并且可以使用key gets在一次操作中完成insert游标内的连接。
...查看更多
14小时前
|
0
|
0
|
1
|
帖子
|
你可以通过点击…和>符号。我希望他们能提供更多设置Validation类的例子。这将在类中创建一个属性来保存特征类列表,将参数设置为默认列表,然后在更改时更新/设置它。定义__init__(self): # set self。用于其他函数self的参数。params = arcpy.GetParameterInfo() self。fcList = [r'path to fc\address', r'path to fc\address2', r'path to fc\creeks'] def initializeParameters(self): #自定义参数属性。当工具被打开时被调用。修改参数值和属性。 # This gets called each time a parameter is modified, before # standard validation. if not self.params[1].altered: self.params[1].value = '; '.join(self.fcList) else: self.fcList = self.params[1].value self.params[1].value = '; '.join(self.fcList) return
...查看更多
14小时前
|
0
|
0
|
9
|
帖子
|
不知道你的完整脚本还在做什么,但是文件GDB不支持并发写,如果你在TOC中加载了层,它不会被覆盖,如果从Pro env (python窗口)外部运行也不会失败。它在Pro窗口中工作,因为它使用的是拥有该fgdb权限的锁/ env。
...查看更多
15小时前
|
0
|
1
|
12
|
帖子
|
只是另一个版本使用丹的字典建议:valDict = {"In_1": 25, "In_2": 35, "In_3": 45,…}使用arcpy.da。UpdateCursor(table1, ["Field1", "Field12", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8"], where)作为游标:对于游标中的行:# if row[0]是None: # continue if all([行[0]== "Approved",行[1]== "Approved",行[2]== "Approved",行[3]不是None,行[4]== "Pass"):行[7]= 15否则:行[7]= valDict.get(行[3])如果行[4]== "Pass"否则valDict.get(行[4])这将指出哪些In_i值不在字典中,通过为它们赋值0,或者减去10,如果行[4]不等于该行的'Pass'。
...查看更多
2周前
|
0
|
1
|
72
|
帖子
|
python中的多处理真的是一场噩梦,特别是它无法返回不可pickle的对象,这几乎是内置类和对象之外的所有东西(列表、字典等)。您可以(并且必须)创建或包装您自己的Featureclass Class,使其可pickle。我还没有深入到那一步,因为这看起来很荒谬。多处理有许多不同的设置方式,每一种都有自己的特点。老实说,我还没有尝试过内存空间。不过你可以尝试一下,返回内存中条目的路径,但它可能会被线程锁定或在脚本执行结束时被销毁。我认为最好的办法是为每个线程创建新的gdb,并返回它们的路径,以供以后在脚本中进一步引用。似乎适得其反,但这就是arcpy/ python的构建方式。我返回结果字典,其中包含已创建的特性的路径,或者我需要从中获取的任何其他信息,并遍历它们。在worker脚本中,返回一个字典:… result = {'Task': 'c_quality', 'count': 0, 'Error': None} result['count'] = arcpy.GetCount_management(cTble).getOutput(0) return result In the main script, execute the workers getting their results in a list to iterate over. with mp.Pool(processes=3) as pool: p1 = pool.apply_async(CreateSales.create_sales, (logging, )) p2 = pool.apply_async(CreateQuality.create_quality, (logging, )) p3 = pool.apply_async(CreateAccountsTable.create_accounts_table, (logging, )) res = [p1.get(), p2.get(), p3.get()] for r in res: if r['Error'] != None: logging.info( f'Task {r["Task"]} Failed -- Check Error Log {dt.timedelta(seconds=t.time() - tasksStartTime)}\n')
...查看更多
2周前
|
0
|
0
|
51
|
帖子
|
如果您将代码格式化为python格式,请单击…,然后将>符号粘贴到窗口中。文件地理数据库不支持并发写操作,因此如果您的进程试图在每个进程中都对其进行写操作,则会失败。您需要将结果输出到其他地方,比如为每个结果输出一个新的gdb,然后从该位置进行合并。
...查看更多
2周前
|
0
|
2
|
62
|
帖子
|
inValue来自哪里?如果是游标,则添加GPS_Y_N字段并将其传入:def isDuplicate(inValue, gps): if all([inValue in uniqueList, gps == 'N']):返回1否则:uniqueList.append(inValue) return 0如果不是,则使用搜索游标并获取值。
...查看更多
3周前
|
0
|
0
|
73
|
帖子
|
当您导出字段映射对象时,工具输出将其转换为字符串值。我不认为它会工作在其他pc的没有访问该路径,因为fieldmapping是专属的输入和输出。它是重复的,因为字段映射对象为每个映射使用来自输入和输出字段的完整路径,因为您可以有多个输入进入,并且它需要知道它来自哪个数据集。您必须在代码中创建一个fieldmap,这并不难自动化。使用这些字符串,您可以创建in/out字段的字典或元组列表,然后操作fieldmap对象来映射它们。例如:fldMap = arcpy. fieldmaps () fldMap. addtable (tmp_stops) #您可以使用arcpy.ListFields() keepfields = ['OID_', 'Sequence', 'USER_address', 'USER_address_apartment', 'USER_address_city', 'USER_address_common_name', 'USER_date_of_birth', 'USER_first_name', 'USER_last_name', 'USER_ori','USER_number', 'USER_status', 'USER_type'] #创建字段的旧/新字段元组,或手动执行:[('owner', 'owner'),…updateFlds = [(fld, fld.]替换('USER_', "))在keepfields中的fld,如果'USER_'在fld] #迭代来自源fc的字段,以删除那些没有在arcpy.ListFields(tmp_stops):如果f.name不在keepfields中,也不是f.required: #删除旧的小写fieldmap fldMap.removeFieldMap(fldMap.findFieldMapIndex(f.name)) #重新映射updateFlds中列出的fldPair字段:#获取fieldmap索引indx = fldMap. findfieldmapindex (fldPair[0]) mapToReplace = fldMap. getfieldmap (indx) #设置fldMap名称fldMap_name = mapToReplace。outputField #设置为新的名称fldMap_name.name = fldPair[1] fldMap_name.name = fldPair。aliasName = fldPair[1] #替换字段映射对象mapToReplace中的名称。outputField = fldMap_name fldMap。replaceFieldMap(indx, mapToReplace)然后使用fldmap进行追加。
...查看更多
3周前
|
0
|
0
|
61
|
帖子
|
如果您对代码进行了格式化,将会有所帮助。点击…然后>粘贴并选择代码风味。我不知道writer是从哪里产生的。XlsxWriter和win32com有一些怪癖。你试过wb. savas(..)吗?
...查看更多
一个月前
|
0
|
0
|
66
|
帖子
|
啊,我误解了你的意图,文档的geocode_from_items对整个文件进行了地理编码,无论大小如何。“…“数据点”——它们与你从API获得的数据点有区别吗?看起来像是将API的响应数据(editTable)转换为地理编码器,而不是对API的响应进行地理编码,因此fl_item现在是一个地理编码器。我认为你需要的是。geocode,在这里你可以设置地理编码器在你的gis中接受x y字段。
...查看更多
一个月前
|
0
|
0
|
30.
|
标题 | 荣誉 | 发布 |
---|---|---|
1 | 11-21-202205:51我 | |
3. | 11-21-202206:12我 | |
1 | 11-18-202207:53我 | |
1 | 11-16-202207:29我 | |
1 | 11-16-202207:24我 |
在线状态 |
离线
|
最后到访日期 |
6小时前
|