CASS如何输出地方标准数据库文件?
开工第一天,就遇到生态圈的小伙伴咨询:请问CASS10.1数据库模板是国标的,如何修改自定义为地方标准?
CASS输出的数据库文件,参考国标数据字典。并不完全符合所有的地方数据建库标准,但支持用户自定义入库方案。所以CASS使用达人们,跟着我来学习一下如何自定义入库方案,入库只是听起来很复杂,其实很简单。
一、分析数据建库标准
数据建库标准,是整套入库方案的参考依据,一般内容很多,重点关注以下三个部分的内容。
1、空间要素分层
这个表主要描述空间要素的分层情况,包括层名、属性表名、几何特征等。
空间要素分层表截图
2、空间要素属性结构
该表主要描述每个属性表中的字段名称、字段代码、字段类型等。
空间要素属性表截图
3、数据库属性要素编码表
该表主要描述每个空间要素,输出的代码和属性表名。
要素编码表截图
分析数据入库标准,主要为了获取三个重要的信息。弄清楚之后,就可以对应修改CASS中相关配置文件了。
空间要素如何分层。
每个属性表都有哪些属性字段。
每个空间要素要以什么代码,输出到哪个属性表。
二、编辑Attributetable
CASS10.1将大部分配置文件集成到了cassconfig.db中,所以先安装SQLite Expert Professional,然后查看和编辑cass\system\cassconfig.db。打开Attributetable表,找到上述步骤中分析的“空间要素分层”,将此表进行更新。
Attributetable结构截图
1、文件格式说明
CASS10.1中地物要素导出SHP、PDB时的表结构是通过Attributetabl文件来定义的。其中表类型,如下表所示。表名一般为英文名。表说明为属性表中文名称。
1 | 2 | 3 | 4 | 5 | 9 |
点 | 线 | 面 | 注记 | 复合 | 扩展 |
数据表类型对应表
2、编写实例
前文所述的测量控制点和测量控制点注记,按文件格式应编写为:
控制点要素分层标准
属性表编写实例
三、编辑Attributefield
CASS10.1中地物要素导出SHP、PDB时的属性字段配置,是通过Attributefield来定义的。下图为文件格式说明。
Attributefield文件结构截图
1、文件格式说明
数据类型(type)中,数值尾数的代表的意思。比如数据类型10,就代表是字符型。
0——字符串 (一个汉字等于两个字符)
1——短整数 (数字的取值是整数,且在±26000之间)
2——长整数 (数字的取值是整数,比短整数的长度要长)
3——浮点数 (含整数位和小数位)
4——时间
2、编写实例
结合前文所述实例,编写下表所示的标识码,要素代码等字段。
属性结构表实例截图
属性字段编写实例
四、编辑indexini
CASS10.1中地物要素导出SHP、PDB时的入库编码和属性字段配置,是通过indexini来定义的。下图为文件格式说明。
indexini文件结构截图
1、文件结构说明
图元定义文件indexini(存放路径CASS\system\cassconfig.db),文件结构如下
CASS编码,主参数,附属参数,图元说明,用户编码,GIS表名
PS:和入库相关的字段,只有“用户编码”和“GIS表名”
用户编码对应上述要素编码表中的“要素代码”
GIS表名对应上述要素编码表中的“要素图层名”
2、编写实例
根据上述文件,将indexini文件中的每个要素编码,匹配上对应的输出代码和属性表名,即可完成入库要素的定义。
编码表实例截图
编码表编写实例截图
PS:参考地方数据建库标准,修改此文件。标准里有的要素,这个表里都要有,大约1500+。工作量比较大。
五、测试入库方案
为每个空间要素,定义了入库图层、属性字段和编码之后。我们可以来测试一下入库方案。
1、打开测试图形
点击菜单“文件-打开已有图形”,选择测试图形
2、输出测试图形的数据库文件
点击菜单“检查入库-输出ARC/Info SHP格式”或者“检查入库-输出ARCGIS10 MDB格式”。如发现部分要素不能输出的,需要检查上述三个表中是否存在错误。
碎碎念:看起来很复杂的入库,可以轻松化解为下图几个步骤。总结起来就是解析三个表,编写三个文件。遇到类似的业务,你也可以试试了。
这个方法,适用于CASS10.0以上版本。
自定义入库方案步骤图
PS:注意步骤1、2中的子步骤的对应关系。根据空间要素分层表,编写Attributetable文件。根据空间要素属性结构表,编写Attributefield文件。根据数据库属性要素编码表,编写indexini文件。
供稿 | 南方数码虎妞
整理 编辑 | ELLEN
地信行业资源连接与合作平台
GIS Resource&Cooperation Platform
【生态圈交流平台】社群已开放
QQ-4群:897741522
欢迎加入 与行业大咖在线交流
已在1-3群的不要跨群
如若群满,敬请期待下一次开群。