大家好!
试图将缩略图分配给地理数据库中特征类的现有FGCD元数据。缩略图图像是.jpg格式的,位于本地驱动器上,其前缀与特性类的名称匹配(gdb也在本地驱动器上)。
示例:特征类为Zip_Code_Tabulation_Areas,对应的缩略图为Zip_Code_Tabulation_Areas_thumbnail.jpg
试图遵循文档从https://pro.arcgis.com/en/pro-app/latest/arcpy/metadata/metadata-class.htm
进口arcpy
进口操作系统
arcpy.env.overwriteOutput=真正的
从arcpy进口元数据作为医学博士
#设置工作区
arcpy.env.工作空间=r " D: \ gisdata \ rigis_download \ rigis_services_SPF_2023.gdb”
#在本地地理数据库中创建特征类列表
fc_list=arcpy.ListFeatureClasses()
#遍历每个特性类,为元数据分配一个缩略图
为每一个在fc_list:
试一试:
打印('特征类是'+每一个)
thumbnailImage=r " D: \ gisdata \ rigis_download \缩略图”+“\ \”+每一个+“_thumbnail.jpg”
打印(“缩略图是”+thumbnailImage)
tgt_item_md=医学博士.元数据(每一个)
tgt_item_md.thumbnailUri(thumbnailImage)
tgt_item_md.保存()
除了:
打印(“这没用”)
打印(“完成”)
它对任何特性类都不起作用,有时甚至会一起从目录中删除jpg。错误:
回溯(最近一次调用):
文件"<交互式输入>",第1行,在<模块>
'NoneType'对象不可调用
我尝试了许多我认为是关键的变化,但无济于事:
tgt_item_md.thumbnailUri (thumbnailImage)
tgt_item_md。缩略图Uri = thumbnailImage
我“认为”这可能是因为变量thumbnailImage只是一个字符串,而不是图像本身?我不精通python弄清楚如何创建实际图像的变量?
尽管文档暗示它可以是字符串形式的路径:
thumbnailUri
(读和写) |
图形文件的本地或网络路径或URL,用于描述和帮助识别项目。从缩略图从该项的元数据中提取。在设置此值时,如果提供了URL,则将下载标识的文件并将其合并到该项的元数据中。 |
字符串 |
tgt_item_md。isReadOnly返回False,因此元数据应该是可写的。
谢谢你的帮助。我可能错过了一些简单的东西。
解决了!转到解决方案。
我已经将Pro 3.0升级到Pro 2.9.3,因为这是最后一个没有给我带来大量问题的版本(特别是弹出窗口和附件),所以在Stand Alone IDLE 3.7.11中进行测试。
刚刚在我的另一个装有Pro 3.0.3的盒子上试了试,并在笔记本电脑上运行。看起来和预期的一样。
我确实添加了一个检查,以确保在添加它之前jpg是在那里,如果没有,它将在某些时候失败,并且必须重新复制所有的jpeg再次运行。
不知道你在哪里/如何看缩略图,但好的旧目录显示它们都在更新:
我确保我没有打开Map/Pro/Catalog并连接到工作区,这样我就不必处理锁定问题。
此外,可以确认已成功复制到缩略图的所有图像已从源文件夹中删除。
R_
我已经将Pro 3.0升级到Pro 2.9.3,因为这是最后一个没有给我带来大量问题的版本(特别是弹出窗口和附件),所以在Stand Alone IDLE 3.7.11中进行测试。
刚刚在我的另一个装有Pro 3.0.3的盒子上试了试,并在笔记本电脑上运行。看起来和预期的一样。
我确实添加了一个检查,以确保在添加它之前jpg是在那里,如果没有,它将在某些时候失败,并且必须重新复制所有的jpeg再次运行。
不知道你在哪里/如何看缩略图,但好的旧目录显示它们都在更新:
我确保我没有打开Map/Pro/Catalog并连接到工作区,这样我就不必处理锁定问题。
此外,可以确认已成功复制到缩略图的所有图像已从源文件夹中删除。
R_