简介:ArcGIS DataReviewer 10.2 面向 GIS 数据生产、建库与质量管理岗位,是一款用于空间数据质检的桌面工具安装包,重点解决空间位置、属性取值和拓扑关系中的错误,帮助用户在入库前发现并修正数据问题。压缩包共 157 个文件、约 76.22MB,以 exe、msi、cab 安装组件和 js、css、htm、png 等界面资源为主,另有 xml、db、ini 配置及示例数据,结构较完整,便于部署查阅。已有 1231 人学习下载。其价值在于可按项目自定义检查规则,对坐标精度、重叠缺失、属性格式与空值重复、未闭合线段和穿越边界等问题做批量核查,并借助脚本与 API 接入现有工作流,生成问题统计和修复建议报告。结合空间信息、属性信息和拓扑结构三类检查,能较完整覆盖常见数据质量问题;读者可了解安装包组成、规则配置思路、批处理任务组织方式及团队协作与报告输出流程,适合准备数据入库验收、日常巡检或项目交付前质量核查的初、中级技术人员参考。
1. 版本先对齐:Data Reviewer 10.2 只能装在 Desktop 同代版本上
Data Reviewer 10.2 的安装包看着只有一个 DataReviewer102.zip,真正让人卡住的从来不是解压,而是版本对齐。前阵子帮一个做图斑核查的小团队收拾现场:ArcMap 10.2 装好了,Data Reviewer 10.2 也装完了,Customize 的扩展列表里就是没有这一项,工具条拖不出来,几百条图斑只能手工翻。Data Reviewer 是 ArcGIS Desktop 的扩展模块,版本必须和 Desktop 严格同代,许可、.NET、Access 驱动任何一环错位,表现都是“装上了但用不了”这种静默失败,不会给你一个明确的报错。这篇按我给内部定的装机顺序写:先核对环境与许可,再装 MSI、注册扩展,然后建质检工作空间,最后用小数据集跑一次批处理验证。手上还压着 10.2 时代 ArcMap 质检流程的人,照着走一遍能省掉大半排查时间。
2. 装前核对:Desktop 10.2、.NET 3.5 与许可三件套
Data Reviewer 的安装程序做得比较“客气”:它只检查机器上有没有 ArcGIS Desktop,不检查小版本号,也不检查许可里到底有没有这个扩展特性。这意味着两件事——10.2 和 10.2.1 混装能装上去,但运行时可能莫名其妙地崩;许可里没买扩展,安装照样一路绿灯,直到你打开 ArcMap 勾选扩展那一刻才给你脸色。所以装之前我习惯先把三样东西摆出来核对:操作系统与 Desktop 小版本、.NET 与 Python 这些运行时、以及许可类型和扩展特性。这三样对上了,后面的安装步骤基本是线性执行,不会有回头返工。
2.1 操作系统与 Desktop 小版本的对应表
ArcGIS Desktop 10.2 那一代的官方支持列表里是 Windows 7 SP1、Windows 8、Windows Server 2008 R2 和 Server 2012;10.2.1 和 10.2.2 才陆续把 Windows 8.1 纳入进来。Windows 10 从头到尾不在 10.2 的支持范围内,这点很关键。实际装机时确实有人在 Win10 上把 10.2 装起来了,也能跑,但踩坑概率明显更高——典型的是安装完成后的组件注册、32 位 Python 调用、以及 Personal GDB 的 Access 驱动冲突。我一般不在 Win10 上给 10.2 排生产环境,如果只是临时验证,那至少把系统补丁和运行库一次装齐,别分几次装。
装之前花三十秒核对一遍,比装完再返工划算得多:
| 组件 | 版本要求 | 检查方式 |
|---|---|---|
| 操作系统 | Win7 SP1 / Win8 / Server 2008 R2 / 2012 | winver看版本号与补丁级别 |
| ArcGIS Desktop | 10.2(与 Data Reviewer 同代,不混装小版本) | ArcMap 帮助 → 关于 ArcMap |
| .NET Framework | 3.5 SP1(Desktop 的硬依赖) | 控制面板 → 启用或关闭 Windows 功能 |
| Python | 2.7.x 32 位,随 Desktop 一并安装 | 命令行python -V,确认是 32 位 |
| Access 驱动 | 32 位 ACE(Personal GDB 场景必需) | 查看已安装程序里的 Access Database Engine |
.NET 3.5 在 Windows 8 和 Server 2012 上默认是关闭的,不手动开启,Desktop 安装到一半会报依赖缺失。图形界面里勾选“NET Framework 3.5(包括 .NET 2.0 和 3.0)”最省事,服务器上没界面就用命令:
# Windows 8 / Server 2012 上启用 .NET 3.5 # -All 会连带启用父功能;离线机器加 -Source 指向安装介质的 sources\sxs 目录 Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source "D:\sources\sxs"-FeatureName NetFx3就是 .NET 3.5 的功能名,别写成 NetFx4;-Source只在没有外网或组策略禁用了 Windows Update 的机器上需要,指向系统安装盘里解压出来的sources\sxs即可。命令执行完要重启,重启后再装 Desktop,否则依赖检测那一步仍然会拦你。这一条我踩过,当时以为是安装包坏了,重下了三遍。
2.2 浮动许可与单机许可:配置位置完全不同
Data Reviewer 是扩展模块,许可分两层:Desktop 本身的许可,加上 Data Reviewer 的扩展特性。浮动版(License Manager)和单机版(ArcGIS Administrator 里的授权文件)配置位置完全不一样,弄混了就是“Desktop 能用、扩展勾不上”。
浮动版的机器上,客户端不需要任何授权文件,只要指向许可服务器就行。常见做法是设环境变量,或者在 ArcGIS Administrator 里填服务器地址:
:: 客户端指向浮动许可服务器,27000 是 ArcGIS License Manager 的默认端口 setx ARCGIS_LICENSE_FILE "@licsrv01" /Msetx加/M写的是系统级变量,需要管理员权限;不加/M只对当前用户生效,多用户共用的机器上会出“我这台能用那台不能用”的怪事。端口不是默认值时写成27000@licsrv01的形式。变量设完要重新登录或者重启 ArcMap 才读到,别急着下结论说没生效。
服务器那一侧,我习惯先确认扩展特性有没有被借满。在许可服务器上跑一次状态查询,输出里会逐条列出各特性当前借出数和总授权数:
:: 在许可服务器上查看各特性的借出情况 "C:\Program Files (x86)\ArcGIS\License10.2\bin\lmutil" lmstat -a -c 27000@licsrv01-a表示列出全部特性,-c指定许可服务地址。重点看目标扩展那一行的“Users of”列表,如果已经等于授权总数,客户端那边就会表现为“Desktop 正常但扩展勾不上”。这时候要么释放空闲会话,要么加授权,改客户端配置是白费功夫。单机版则相反,扩展特性必须在授权文件里体现,没体现的话重新走一遍授权向导把文件重新导入,别在客户端上反复折腾。
2.3 解压路径与安装目录的命名规范
压缩包解压这件事听着没技术含量,但它是最容易被忽略的一环。中文路径、带空格的路径、OneDrive 同步目录、映射的网络盘,这四类位置都可能让 MSI 在解压临时文件时失败,报错还特别含糊。我一般固定解压到D:\install\DataReviewer102,安装目录也尽量保持默认的C:\Program Files (x86)\ArcGIS\...,非要改就改成纯英文、无空格、层级浅的路径。
解压完先确认关键文件在不在,别急着双击:
# 列出解压目录下的安装文件,确认 exe 与 msi 都在,且大小正常 $root = "D:\install\DataReviewer102" Get-ChildItem $root -Recurse -Include *.msi, *.exe | Select-Object FullName, @{n='MB';e={[math]::Round($_.Length/1MB,1)}} | Format-Table -AutoSize-Recurse会连子目录一起扫,-Include只挑安装文件。正常情况下应该能看到安装引导程序和对应的 MSI,大小不会是 0 或者几十 KB 那种明显截断的值。如果只有一个 exe 且体积异常小,多半是解压工具处理长路径时丢了文件,换 7-Zip 重新解压一次。另外,解压出来的目录别放在同步盘里,安装过程中同步进程会锁住临时文件,表现就是安装到一半卡死然后回滚。
3. 安装 Data Reviewer:从 msiexec 静默参数到扩展勾选
顺序上没有任何商量余地:先装 ArcGIS Desktop 10.2 并确认能正常启动、能读到许可,再装 Data Reviewer。反过来装的话,Data Reviewer 的安装程序找不到 Desktop 会直接退出,你看到的是一个一闪而过的窗口,日志里才写着原因。装 Desktop 的时候顺手把 Python 和 .NET 一起确认了,后面就不用再回来补。
3.1 图形安装与静默安装两套走法
图形安装适合单台机器,一路下一步就行,唯一要注意的是安装目录那一步别改成中文路径。批量部署或者远程桌面操作时,我一般用静默安装,日志留着方便回查:
:: 静默安装 Data Reviewer 桌面端,安装日志留在 D:\install\log 便于回查 msiexec /i "D:\install\DataReviewer102\DataReviewerDesktop.msi" ^ INSTALLDIR="C:\Program Files (x86)\ArcGIS\DataReviewer10.2" ^ /qn /norestart /L*v "D:\install\log\dr_install.log"/i指定 MSI 包,实际文件名以你解压出来的为准,有的是Setup.msi;INSTALLDIR是安装目录,不写就走默认;/qn表示完全无界面,适合脚本调用;/norestart阻止安装程序自己重启机器,避免打断其它任务;/L*v输出详细日志,v是关键,不加它日志里只有寥寥几行,出问题什么都看不出来。安装结束后别只看退出码,去日志末尾搜一下“Installation success or error status”,值 0 才算干净结束,3010 表示成功但需要重启。
如果安装中途回滚,第一件事不是重装,而是看日志。搜Return value 3往上翻几十行,通常能定位到具体是哪个自定义动作失败——权限不足、文件被占用、依赖缺失,日志里都写着。看清了再动手,盲目重装只会把残留越堆越多。
3.2 把 Data Reviewer 注册进 ArcMap 扩展列表
安装完成后打开 ArcMap,走Customize → Extensions,列表里应该出现 Data Reviewer,勾上,关闭对话框。然后再走Customize → Toolbars,把 Data Reviewer 工具条勾出来。这两步缺一不可:扩展没勾,工具条上的按钮全是灰的;扩展勾了但工具条没加载,你连按钮在哪都找不到。
这里有个细节值得说:扩展列表里出现 Data Reviewer,说明安装和注册都成功了;如果列表里压根没有这一项,问题一定在三处之一——安装没真正完成(日志回滚了)、ArcMap 启动的是另一个小版本、或者许可里没有这个扩展特性。判断顺序我一般是从安装日志开始,因为这一步最快,几十秒就能排除。日志确认成功、版本也一致,那就去 ArcGIS Administrator 看扩展特性,八成是许可的问题。
还有一种情况是扩展列表里有、勾选时弹出“扩展未授权”的提示。这跟“列表里没有”是两码事:前者是许可没借到,后者是压根没注册。分清楚这两类现象,排查方向完全相反,很多人在这里绕圈子就是因为把两者混为一谈。
3.3 首次打开工具条要调的四个默认项
工具条出来之后先别急着跑检查,有几个默认项要先定下来,不然第一次运行就会卡在“请选择工作空间”这种提示上。点开 Data Reviewer 的下拉菜单进 Options,我一般按这个顺序调:
第一项是 Reviewer Workspace,也就是检查结果的存放位置。这一步不设,后面所有批处理都跑不动。第二项是结果保留策略,默认会一直累积,历史项目上我见过结果表涨到几个 GB 的,定期清理比事后救火省事。第三项是检查的默认容差单位,跟数据坐标系保持一致,投影数据用米、地理坐标用度,混了会让几何检查的结果看起来完全不合理。第四项是批处理执行时是否显示进度对话框,脚本调用的时候要关掉,不然会挂在那里等人点确定。
这四项调完,工具条上的 Select Data Check、Batch Validate、Reviewer Results、Manage Batch Jobs 这几个按钮才真正可用。顺手点一次 Reviewer Results 看看能不能打开结果窗口,能打开说明 Workspace 连接是通的,这一条比什么检查都直观。
4. 配好质检工作空间:Reviewer Workspace 选型与批处理配置
Data Reviewer 跟一般的检查工具不一样,它不是跑完给你弹个对话框,而是把每条检查结果写进一个专门的工作空间,后面靠这个工作空间做复核、做统计、做导出。所以工作空间的选型和初始化,直接决定了这套环境能不能长期用下去。选错了,前期只是慢,后期就是数据量一上来直接罢工。
4.1 Personal GDB 与 SDE 的取舍
10.2 这一代能用的 Reviewer Workspace 主要是两类:Personal Geodatabase(.mdb)和企业级地理数据库(通过 SDE 连接)。前者是单文件,建起来快,适合单机作业和小团队;后者走数据库,多人并发写没问题,但要额外维护数据库和连接配置。我按使用人数和结果量来选,具体差别列在下面:
| 对比项 | Personal GDB(.mdb) | 企业级 GDB(SDE) |
|---|---|---|
| 并发写入 | 基本不支持,文件锁冲突明显 | 支持多人同时写 |
| 容量上限 | 单库 2GB | 取决于数据库配置 |
| 驱动依赖 | 需要 32 位 Access Database Engine | 需要数据库客户端 |
| 备份方式 | 直接复制文件 | 数据库备份策略 |
| 适用场景 | 单人质检、结果量小的项目 | 多人协作、长期累积结果 |
单人作业我一般直接上 .mdb,省事;但只要涉及两个人以上同时跑批处理,就老实上 SDE,.mdb 的文件锁会让第二个人的批处理直接失败,而且报错信息很不友好。另外 .mdb 那个 2GB 上限是硬限制,历史结果不清,早晚会撞上。
4.2 建 Workspace、建 Batch Job 的实操顺序
顺序理清楚,后面就不会来回找。第一步,用 ArcCatalog 在目标目录下新建一个 Personal Geodatabase,命名成QA_Review.mdb这种一眼能看懂的,别用中文。第二步,在 ArcMap 的 Data Reviewer Options 里把这个库设为 Reviewer Workspace,首次连接时会提示初始化结果表结构,确认即可。第三步,打开 Manage Batch Jobs 新建一个批处理,命名规则建议带上项目代号和日期,比如topo_qa_v1。
批处理建好之后就可以用脚本调了。Data Reviewer 的能力以地理处理工具的形式暴露出来,Python 里能直接调:
# -*- coding: utf-8 -*- # ArcGIS 10.2 自带 Python 2.7.5(32 位),必须用这个解释器,系统里的 64 位 Python 调不通 import arcpy # 先加载 Data Reviewer 工具箱,路径按本机安装位置改 tbx = r"C:\Program Files (x86)\ArcGIS\Desktop10.2\ArcToolbox\Toolboxes\Data Reviewer Tools.tbx" arcpy.ImportToolbox(tbx) # 不确定工具名时,先列出带 Batch 字样的工具确认真实名称 print([t for t in arcpy.ListTools("*Batch*")]) ws = r"D:\Review\QA_Review.mdb" # Reviewer Workspace,和 Options 里设的保持一致 job = "topo_qa_v1" # Manage Batch Jobs 里建的批处理名 # 执行批处理,工具名以本机工具箱列出来的为准 arcpy.ExecuteBatchJob_Reviewer(ws, job) print("batch job done")ImportToolbox这一步不能省,Data Reviewer 的工具不在默认工具箱里,不加载就是“属性不存在”。ListTools("*Batch*")是给自己留的后路——不同小版本的工具别名有差异,先打印一遍再写死,比照着文档猜靠谱。执行时 Workspace 参数必须是已经初始化过结果表的库,空库传进去会在写入阶段报错。脚本跑完后print那行只是确认执行到了最后,真正有没有结果还得去看结果表。
4.3 检查项与数据规则的对应关系
批处理里挂哪些检查,取决于你的数据要回答什么问题。工具条上的检查项不少,常用的就那么几类,配置时容易错的是参数而不是选择:
| 检查类型 | 适合发现的问题 | 关键参数 |
|---|---|---|
| Geometry Check | 自相交、悬挂点、空几何、短线段 | 容差要与坐标系单位一致 |
| Attribute Check | 必填字段为空、字段值不在允许集合 | 字段名区分大小写 |
| Domain Check | 属性值超出域范围 | 需要先确认域已绑定到字段 |
| Duplicate Feature Check | 几何重复、关键字段重复 | 比较字段的组合决定误报率 |
| Validity Check | 要素不符合要素类规则 | 依赖要素类上已有的规则定义 |
参数上最容易翻车的是 Geometry Check 的容差。地理坐标系的数据容差填 0.001 度还能理解,投影数据填同样的值就是灾难——几乎每条边都会被判成短线。我的习惯是先拿一百来条数据试跑,看看结果条数量级对不对,再决定容差是收紧还是放宽,直接上全量跑一遍再调,时间成本太高。
5. 排查记录:Data Reviewer 10.2 的五类常见故障
下面这几条是这几年重复遇到最多的,按现象、原因、解决三段记,遇到时对着现象找就行。前三条集中在安装和许可阶段,后两条在运行和结果写入阶段,分界线其实很清楚:能不能在扩展列表里看到它。
5.1 安装与许可阶段的三条
现象一:Customize 的扩展列表里没有 Data Reviewer,工具条列表里也找不到。
原因有三个层次:安装包解压了但 MSI 没真正执行完;MSI 执行完了但 ArcMap 启动的是另一个小版本,注册信息对不上;安装和版本都对,但安装目录被改到了一个带权限限制的位置,注册表写入被拦。解决顺序是从日志开始,搜“Installation success or error status”,非 0 就不用往下看了,先修安装。日志干净的话查版本,ArcMap 帮助里看具体版本号,和安装包是否同代。两者都对还没出现,就用修复模式重跑一次 MSI,参数里把/i换成/fomus,它会重新注册组件。
现象二:安装进度条走到一半回滚,提示 1603。
1603 是个通用错误码,本身不告诉你原因,得看日志。常见原因就三种:临时目录被安全软件锁住、上一次安装的残留文件占用、安装账户对目标目录没有写权限。解决上,先清%temp%下与安装相关的临时文件夹,再用管理员身份运行安装程序,装之前把安全软件的实时防护临时关一下。如果还是回滚,去日志里搜Return value 3,往上看几十行,失败的那个自定义动作名字通常能直接说明问题。
现象三:扩展列表里有 Data Reviewer,勾选时提示扩展未授权。
这说明安装没问题,是许可没借到。浮动版先上服务器跑lmutil lmstat,看这个扩展特性的借出数是不是已经到顶;到顶了就释放空闲会话或者加授权,客户端怎么改都没用。单机版则是授权文件里没包含这个扩展特性,需要重新走授权向导把文件导一遍。还有个小概率情况:客户端的环境变量写错了服务器地址,Desktop 主体许可走了另一台服务器,扩展自然借不到,这种查一下ARCGIS_LICENSE_FILE的值就能确认。
5.2 运行与结果写入阶段的两条
现象四:Batch Validate 跑到一半停住,Reviewer Results 里一条结果都没有。
进度条卡住但没报错,第一反应应该去看资源占用而不是重跑。常见原因有三个:数据源被别的进程独占(ArcCatalog 预览着那个 .mdb 就会加锁)、批处理里某个检查的范围包含空几何导致挂起、Workspace 所在磁盘写满。解决上,先把 ArcCatalog 和其它打开着数据的窗口全关掉,再单独跑一个 Geometry Check 验证链路是否通,最后看磁盘剩余空间。磁盘满这种情况最阴,因为 Windows 有时候不弹提示,就是写不进去。
现象五:结果写不进 .mdb,报无法打开工作空间或者直接 FATAL ERROR。
八成是 Access 驱动位数的问题。机器上先装了 64 位 Office,ACE 驱动就是 64 位的,而 ArcGIS 10.2 是 32 位应用,需要 32 位驱动,两者打架。解决是装一个 32 位的 Access Database Engine,注意装的时候别把 Office 搞坏,微软那套安装参数里有个不带界面的选项可以并存。另一个可能是 .mdb 已经接近 2GB 上限,那就清历史结果或者换 SDE,别指望压缩能救回来多少。
6. 跑通验证:用 200 条测试数据走完一次 Batch Validate
装完不验证,等于没装。我验证这套环境的固定做法是:准备一份两百条左右的小数据集,只挂两个检查——一个 Geometry Check 查自相交,一个 Attribute Check 查必填字段为空,跑一遍批处理,然后确认结果表里确实有记录。数据量小,跑一次几十秒,比拿全量数据试错快得多。
跑完之后不要只看界面上的结果窗口,直接查库最实在:
# -*- coding: utf-8 -*- import arcpy ws = r"D:\Review\QA_Review.mdb" arcpy.env.workspace = ws # Reviewer 的结果表以 REV_ 开头,不同小版本后缀略有差别,先全部列出来 rev_tables = [t for t in arcpy.ListTables() if t.upper().startswith("REV_")] print("reviewer tables:", rev_tables) # 取检查结果表统计条数,确认批处理真的写进去了 result_tbl = [t for t in rev_tables if "CHECK" in t.upper()][0] count = int(arcpy.GetCount_management(result_tbl).getOutput(0)) print("%s -> %d rows" % (result_tbl, count))ListTables()只列当前工作空间下的表,所以arcpy.env.workspace必须先指向 Reviewer Workspace。表名前缀按REV_过滤是经验做法,实际后缀各小版本不完全一致,所以先打印全部再挑,别硬编码表名。GetCount_management返回的是结果对象,要.getOutput(0)再转 int,直接拿对象去比较会出错。
条数有了还不够,得做一次反向验证:在测试数据里手动造一条自相交的面、再清空一个必填字段,重跑批处理,结果条数应该上涨,并且能在结果里定位到对应的要素。这一步是区分“跑完了”和“跑对了”的关键——有些配置问题会让批处理正常结束但结果为空,光看进度条是发现不了的。
从那以后我每次装完 Data Reviewer,不管当天多晚,都会拿这两百条数据跑一遍 Batch Validate,结果表有数、造错能查出来,才算这套环境装完。希望帮到你。
本文还有配套的精品资源,点击获取