同步镶嵌数据集 (Data Management)

许可等级:BasicStandardAdvanced

摘要

使用最初添加镶嵌数据集时所使用的栅格类型及选项,在镶嵌数据集中重新构建或更新每个栅格项目,并在属性表中更新受影响的字段。

同步是一个单向操作:源数据中的更改可以同步到镶嵌数据集的属性表,但属性表中的更改不会影响源数据(但可能会被同步内容所覆盖)。

注注:

同步时所做的更改无法撤消。如果对可能被覆盖的镶嵌数据进行修改,则可能需要创建备份副本。

用法

语法

SynchronizeMosaicDataset_management (in_mosaic_dataset, {where_clause}, {new_items}, {sync_only_stale}, {update_cellsize_ranges}, {update_boundary}, {update_overviews}, {build_pyramids}, {calculate_statistics}, {build_thumbnails}, {build_item_cache}, {rebuild_raster}, {update_fields}, {fields_to_update}, {existing_items}, {broken_items})
参数说明数据类型
in_mosaic_dataset

镶嵌数据集的路径和名称。

Mosaic Layer
where_clause
(可选)

可以使用 SQL 定义查询,或者使用查询构建器构建查询。

SQL Expression
new_items
(可选)

选择镶嵌数据集是否与新添加的项目进行同步。如果选择使用此选项,则将为新数据搜索项目的工作空间。当数据添加到镶嵌数据集后,其使用的栅格类型将与同一工作空间内的其他项目相同。

如果选择使用新项目进行更新,则可以选择是否更新像元大小范围、边界或概视图。

  • NO_NEW_ITEMS不添加任何可能存在的新项目。这是默认设置。
  • UPDATE_WITH_NEW_ITEMS在存储现有镶嵌数据集项目的工作空间中使用新项目更新镶嵌数据集。
Boolean
sync_only_stale
(可选)

选择是更新所有主要项,还是仅更新过时的主要项。

如果在创建项目后,修改用于构建栅格值的相应源文件,则此项目被视为过时。例如,可能已更新地理配准,或者可能已构建金字塔。

  • SYNC_STALE仅更新过时项目。这是默认设置。
  • SYNC_ALL更新镶嵌数据集的所有所选项目。
Boolean
update_cellsize_ranges
(可选)

选择是否更新像元大小范围。

  • UPDATE_CELL_SIZES重新计算整个镶嵌数据集的像元大小范围,但仅更新可见性无效的项目。这是默认设置。
  • NO_CELL_SIZES 不重新计算像元大小范围。
Boolean
update_boundary
(可选)

选择是否更新边界。

  • UPDATE_BOUNDARY 同步镶嵌数据集后重新构建边界。这是默认设置。
  • NO_BOUNDARY 不重新构建边界。
Boolean
update_overviews
(可选)

选择是否更新所有废弃的概视图。如果修改过任何基础栅格,则概视图变为废弃项。

  • NO_OVERVIEWS 不重新构建金字塔。这是默认设置。
  • UPDATE_OVERVIEWS 同步镶嵌数据集后重新构建受影响的概视图。
Boolean
build_pyramids
(可选)

选择是否为指定的镶嵌数据集项构建金字塔。可以为镶嵌数据集中的每个栅格项目构建金字塔。金字塔可以提高每个栅格的显示速度。

  • NO_PYRAMIDS不生成金字塔。这是默认设置。
  • BUILD_PYRAMIDS 为此工具指定的所有栅格项目生成金字塔。

如果在运行此工具的同一实例中添加项目,则不会为新添加的项目构建金字塔。

Boolean
calculate_statistics
(可选)

选择是否为指定的镶嵌数据集项计算统计数据。可以为镶嵌数据集中的每个栅格项目计算统计数据。在执行某些任务时(如应用对比度拉伸),需要对镶嵌数据集进行统计。

  • NO_STATISTICS不计算统计数据。这是默认设置。
  • CALCULATE_STATISTICS 为此工具指定的所有栅格项目计算统计数据。

如果在运行此工具的同一实例中添加项目,则不会为新添加的项目构建统计数据。

Boolean
build_thumbnails
(可选)

选择是否为指定的镶嵌数据集项构建缩略图。缩略图是可为镶嵌定义中的每个栅格项目创建的较小的高度重采样图像。可在以影像服务形式访问镶嵌数据集时访问缩略图,缩略图将显示为元数据(项目描述)的一部分。

  • NO_THUMBNAILS不创建或更新任何缩略图。这是默认设置。
  • BUILD_THUMBNAILS为此工具指定的所有栅格项目生成或更新缩略图。

如果在运行此工具的同一实例中添加项目,则不会为新添加的项目构建缩略图。

Boolean
build_item_cache
(可选)

选择是否为指定的镶嵌数据集项构建缓存。在使用 LAS、Terrain 或 LAS 数据集栅格类型添加数据时,可以创建缓存。项目还可使用“缓存栅格函数”进行缓存。

  • NO_ITEM_CACHE不创建或更新任何缓存。这是默认设置。
  • BUILD_ITEM_CACHE为此工具指定的所有栅格项目生成或更新缓存。

如果在运行此工具的同一实例中添加项目,则不会为新添加的项目构建缓存。

Boolean
rebuild_raster
(可选)

选择是否使用原始栅格类型从数据源重新构建栅格项目。

  • REBUILD_RASTER从源数据重新构建栅格。您将失去对镶嵌数据集中的所选项目执行的所有更改。这是默认设置。
  • NO_RASTER不重新构建栅格。如果选择 update_aux_fields,则会重置其他主字段。

此操作仅影响要同步的项目。如果已选择 UPDATE_WITH_NEW_ITEMS,则此参数不适用。

Boolean
update_fields
(可选)

选择是否更新表中的字段。此操作仅影响要同步的项目。

  • UPDATE_FIELDS更新源文件中的字段。这是默认设置。
  • NO_FIELDS不重置源文件中表内的字段。

如果选择更新字段,则可通过在 fields_to_update 参数中选择要更新的字段来控制它们。如果已编辑某些字段,则可能需要在 fields_to_update 参数中将其取消选择。

Boolean
fields_to_update
[field_to_update,...]
(可选)

指定应更新的字段。

此参数仅在 update_fields 参数的选项为 UPDATE_FIELDS 时才有效。

如果已编辑某些字段,则可能需要确保不列出它们。

即使不使用 REBUILD_RASTER 关键字,也可刷新“栅格”列。但是,如果使用 REBUILD_RASTER,则即使不指定“栅格”字段,也会重新构建“栅格”列。

String
existing_items
(可选)

选择是否要在镶嵌数据集内更新现有项目。

如果选择此选项,则随后可选择要更新的现有参数:sync_only_stalebuild_pyramidscalculate_statisticsbuild_thumbnailsbuild_item_cacheupdate_rasterupdate_fieldsfields_to_update

  • UPDATE_EXISTING_ITEMS使用选择更新的参数更新现有项目。这是默认设置。
  • IGNORE_EXISTING_ITEMS不更新现有项目。
Boolean
broken_items
(可选)

选择是否要移除所有损坏的链接。

请确保所有网络连接正常工作,因为此工具会移除无法访问的所有项目。

  • IGNORE_BROKEN_ITEMS不会从镶嵌数据集移除链接已损坏的项目。这是默认设置。
  • REMOVE_BROKEN_ITEMS会从镶嵌数据集移除链接已损坏的项目。
Boolean

代码实例

SynchronizeMosaicDataset 示例 1(Python 窗口)

这是 SynchronizeMosaicDataset 的 Python 示例。

import arcpy
arcpy.SynchronizeMosaicDataset_management("c:/data/syncmd.gdb/md", "Year>1999", \
                                          "NO_NEW_ITEMS", "SYNC_STALE", "#", \
                                          "#", "#", "NO_PYRAMIDS", "NO_STATISTICS", \
                                          "NO_THUMBNAILS", "NO_ITEM_CACHE", \
                                          "NO_RASTER", "NO_FIELDS", "#")
SynchronizeMosaicDataset 示例 2(独立脚本)

这是 SynchronizeMosaicDataset 的 Python 脚本示例。

#============================
#Synchronize Mosaic Dataset
'''Usage: SynchronizeMosaicDataset_management(in_mosaic_dataset, {where_clause}, {NO_NEW_ITEMS |
                                              UPDATE_WITH_NEW_ITEMS}, {SYNC_STALE | SYNC_ALL},
                                              {UPDATE_CELL_SIZES | NO_CELL_SIZES}, {UPDATE_BOUNDARY |
                                              NO_BOUNDARY}, {NO_OVERVIEWS | UPDATE_OVERVIEWS},
                                              {NO_PYRAMIDS | BUILD_PYRAMIDS}, {NO_STATISTICS |
                                              CALCULATE_STATISTICS}, {NO_THUMBNAILS |
                                              BUILD_THUMBNAILS}, {NO_ITEM_CACHE | BUILD_ITEM_CACHE},
                                              {UPDATE_RASTER | NO_RASTER}, {UPDATE_FIELDS | NO_FIELDS},
                                              {fields_to_update;fields_to_update...},
                                              {UPDATE_EXISTING_ITEMS | IGNORE_EXISTING_ITEMS},
                                              {IGNORE_BROKEN_ITEMS | REMOVE_BROKEN_ITEMS})
'''

try:
    import arcpy
    arcpy.env.workspace = r"C:/Workspace"

    # Synchronize source and add new data
    mdname = "syncmd.gdb/mdnew"
    query = "#"
    updatenew = "UPDATE_WITH_NEW_ITEMS"
    syncstale = "SYNC_STALE"
    updatecs = "#"
    updatebnd = "#"
    updateovr = "#"
    buildpy = "NO_PYRAMIDS"
    calcstats = "NO_STATISTICS"
    buildthumb = "NO_THUMBNAILS"
    buildcache = "NO_ITEM_CACHE"
    updateras = "NO_RASTER"
    updatefield = "NO_FIELDS"
    fields = "#"

    arcpy.SynchronizeMosaicDataset_management(mdname, query, updatenew, syncstale,
                                              updatecs, updatebnd, updateovr, buildpy,
                                              calcstats, buildthumb, buildcache,
                                              updateras, updatefield, fields)

    # Synchronize data item after Year 1999
    # Add new data if available from the source
    # Do not update fields from source raster
    mdname = "syncmd.gdb/md"
    query = "Year>1999"
    updatenew = "NO_NEW_ITEMS"
    syncstale = "SYNC_STALE"
    updatecs = "#"
    updatebnd = "#"
    updateovr = "#"
    buildpy = "#"
    calcstats = "#"
    buildthumb = "BUILD_THUMBNAILS"
    buildcache = "#"
    updateras = "NO_RASTER"
    updatefield = "NO_FIELDS"
    fields = "#"

    arcpy.SynchronizeMosaicDataset_management(mdname, query, updatenew, syncstale,
                                              updatecs, updatebnd, updateovr, buildpy,
                                              calcstats, buildthumb, buildcache,
                                              updateras, updatefield, fields)


    # Synchronize LAS mosaic dataset and build cache
    # Rebuild raster item from source data and do not update Point Spacing
    mdname = "syncmd.gdb/lasmd"
    query = "#"
    updatenew = "NO_NEW_ITEMS"
    syncstale = "SYNC_ALL"
    updatecs = "#"
    updatebnd = "#"
    updateovr = "#"
    buildpy = "#"
    calcstats = "#"
    buildthumb = "BUILD_THUMBNAILS"
    buildcache = "BUILD_ITEM_CACHE"
    updateras = "UPDATE_RASTER"
    updatefield = "UPDATE_FIELDS"
    fields = "PointCount;Version;ZMax;ZMin"

    arcpy.SynchronizeMosaicDataset_management(mdname, query, updatenew, syncstale,
                                              updatecs, updatebnd, updateovr, buildpy,
                                              calcstats, buildthumb, buildcache,
                                              updateras, updatefield, fields)


    # Remove broken items from mosaic dataset
    mdname = "syncmd.gdb/mdbroken"
    query = "#"
    updatenew = "NO_NEW_ITEMS"
    syncstale = "SYNC_STALE"
    updatecs = "#"
    updatebnd = "#"
    updateovr = "#"
    buildpy = "#"
    calcstats = "#"
    buildthumb = "#"
    buildcache = "#"
    updateras = "#"
    updatefield = "#"
    fields = "#"
    updateexist = "IGNORE_EXISTING_ITEMS"
    removebroken = "REMOVE_BROKEN_ITEMS"

    arcpy.SynchronizeMosaicDataset_management(mdname, query, updatenew, syncstale,
                                              updatecs, updatebnd, updateovr, buildpy,
                                              calcstats, buildthumb, buildcache,
                                              updateras, updatefield, fields, updateexist,
                                              removebroken)



except:
    print "Synchronize Mosaic Dataset example failed."
    print arcpy.GetMessages()

环境

相关主题

许可信息

ArcGIS for Desktop Basic:否
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013