王友昆,钟高飞,张君华
(昆明市测绘研究院,云南昆明650051)
CASS9.1地形图CMYK颜色的实现
王友昆,钟高飞,张君华
(昆明市测绘研究院,云南昆明650051)
国家基本比例尺地图图式第1部分:1∶500 1∶1000 1∶2000地形图图式(GB/T 20257.1—2007)[1]已于2007年12月开始实施。目前南方公司开发的CASS9.1成图系统能较好地满足新图式的要求,但图形颜色不符合图式CMYK分色的要求。因此提出根据CASS图元编码唯一的特性,将CMYK色值映射为AutoCAD系统能识别的RGB色值,并通过编码修改对应图元的RGB色值达到图式的分色要求。并在AutoCAD 2008下进行二次开发实现上述功能,满足地形图CMYK分色出图的需要。
CASS9.1;地形图图式;CMYK;颜色
南方CASS地形地藉成图软件是基于AutoCAD平台二次开发的GIS前端数据处理系统,也是目前测绘大比例地形图较常用的软件。其中,CASS9.1是目前执行2007新图式[1](以下简称图式)较好的成图软件之一。它修正了CASS9.0版本较多不符合新图式标准的地方,基本符合了图式的要求,但图形颜色仍然不符合图式对于多色图需按青、品红、黄、黑(CMYK)四色进行分色的要求。
通过学习图式及分析CASS成图原理,本文介绍一种根据CASS图元编码修改其颜色的方法来实现CASS编辑的地形图颜色与图式要求的CMYK颜色的统一。
1.图式CMYK颜色
2007图式有别于1995图式[2]的单色出图,而是采用青、品红、黄、黑(CMYK)四色进行组合分色,图式中共有9种CMYK颜色组合,如表1所示。
通过对图式分析,可得出图式CMYK分色的特点如下:
1)K100色值是图式基色,是用色最多的色值。
2)C10色值用于所有水系面;C100色值用于所有水系边线、饮用水井等。此外,水系层要素大多数仍然是使用K100色值。
3)C100Y100色值是植被与土质层的配置符号使用最多的色值。
4)M40Y100K30色值用于地貌层中的自然地貌,而地貌层中非自然地貌等其他元素仍然使用K100色值。
5)使用以上色值外的其他色值元素均较少。
表1 图式CMYK色值
2.CASS地形图颜色
CASS是在AutoCAD平台下二次开发的成图系统,因此需要先了解一下AutoCAD平台的颜色配置。其颜色配置分为索引颜色、真彩色(RGB)两种方式,而其中只有RGB可与CMYK色值一一对应,这是AutoCAD平台下实现图式CMYK色值的基础。
AutoCAD平台下可通过设置图层、块表颜色,然后通过设置图元颜色随层(ByLayer)或者随块(ByBlock)的方式进行图元颜色的设置。也可以直接设置图元颜色为索引色或RGB色。
CASS成图系统是采用设置图层索引、图元颜色随层(ByLayer)的方式进行地形图配色,其与图式图层的映射关系如表2所示。
表2 CASS图层及索引色映射表
按照这种方式无法实现图式CMYK的分色方式,主要是因为:
1)利用图层来控制颜色设置,无法涵盖不同图元颜色。
2)CASS符号块表内子图元颜色均为随层(ByLayer),即使修改符号块颜色,其色值也不会改变,仍然为所在图层的颜色。
3.CASS编码体系
CASS成图系统编码分为骨架线编码和辅助符号编码。骨架线编码采用6位数字标识,而辅助符号编码采用骨架线编码+“-”+顺序号的方式标识。如依比例围墙骨架线编码为144301,其辅助符号围墙小方块的编码为144301-1。
CASS成图系统是通过编码来区分图形实体的,所有图元的编码信息均在图元索引文件(index.ini)中进行了定义,任何图元均有可识别其唯一类型的编码。因此,可根据图式颜色要求,对CASS中所有编码一对一地进行颜色配置,并通过修改对应编码图形实体的颜色达到符合图式颜色要求的目的。
通过以上的分析可知,要实现CASS地形图符合图式CMYK颜色的分色要求,应从以下几个方面着手:
1)建立CMYK色值与RGB色值的对应关系。
2)建立CASS图层颜色与RGB色值的对应关系。
3)建立CASS图元编码与CMYK色值的对应关系,并最终得到CASS图元编码与RGB色值的映射关系表文件。
1.图式CMYK色值与RGB色值关系
利用Photoshop等软件,输入CMYK色值可得到对应的RGB色值,其对应关系如表3所示。
表3 图式CMYK色值与RGB色值映射关系
2.CASS图层颜色设置
通过上文中对图式CMYK颜色的分析可知,为减少编码映射的数量,即减少后期程序需要修改图元颜色的数量,可根据颜色与图层的关系,对于需要进行大量编码修改颜色的植被与土质层使用C100Y100色值,其余图层均使用K100色值,如表4所示。
表4 CASS图层颜色色值
3.CASS编码与CMYK色值映射关系
梳理CASS配置文件中的编码,并与图式对应,找出CASS中编码与CMYK颜色的对应关系,其部分对应关系如表5所示。
配合CASS图层颜色的设置,图元的颜色设置还应遵循以下规则:
1)编码映射文件图元颜色应设置为表5中对应的RGB色值。
2)非编码映射文件图元颜色随层(ByLayer)。
从表5中可见,颜色C10无对应的CASS图形编码,后文会提出解决方法。
4.符号块表颜色的修改
由于CASS图形中符号块表内的子图元颜色默认为随层(ByLayer),即使将符号块颜色修改为对应的RGB颜色,图上符号块也只显示图层设置的颜色。因此,还需要遍历修改符号块对应的块表内子图元颜色为随块(ByBlock),符号块的颜色修改才能起作用。
表5 部分CASS编码对应色值
5.算法设计
通过以上分析,程序算法设计如下:
1)可对图形进行批量处理,首先读取表4、表5配置文件(映射为RGB色值);
2)单个图形读入后,按照表4设置图层颜色;
3)遍历图形元素,并读取其CASS编码,若是表5中编码图元则设置其对应RGB颜色,否则设置其颜色随层(ByLayer);
4)遍历图形中符号块的块表,将其块表内所有子图元颜色设置为(ByBlock);
5)保存单个图形,重复以上步骤2)~步骤4)步至完成所有图形颜色修改。
以上叙述已经解决了除水系面颜色外的CASS图元颜色要符合图式CMYK四色分色要求的问题。
但要实现图式水系面颜色配置的首要条件是绘制的对应编码边线是封闭的图元,这就对地形图编辑提出了更高的要求。由于其绘制工作量较大、要求高,因此可根据地形图出图的需要,决定是否进行水系面的填充,所以该项工作为可选步骤。
1.水系面边线绘制
通过分析图式及CASS配置文件,属于水系面地物并需要进行水系面填充的图元边线编码如表6所示。
表6 水系面填充边线地物编码
此类编码地物在绘制时必须闭合,这样才能在后续处理中成功生成填充面。绘制前有以下几点需要注意:
1)地面河流岸线在CASS配置中属于水系线,应在其index.ini文件中将其属性表修改为水系面“HYDPY”。
2)按照图式水系与地貌坎线的配合使用原则为:水系是单独绘制的,并在其上绘制地貌坎线。但是,CASS中如有坎池塘(未加固)使用的是单独的编码,并未考虑加固坎的情况。因此,建议池塘绘制为无坎池塘,并额外绘制坎线;水池绘制为低于地面水池,并额外绘制坎线,也可避开CASS中使用的编码,增加池塘、水池编码进行单独绘制。
3)以上面状编码绘制后,需利用CASS自带的图形实体检查菜单下的“面状地物封闭检查”功能检查其封闭性,检查正确后才能进行图幅分幅。
4)由于分幅裁切后图廓接边处面状地物仍然不闭合,可利用程序判断进行自动封闭或手动封闭。
2.水系面填充
利用程序遍历分幅地形图图元,若编码为表6中的地物编码,并且为闭合图元则自动根据其边界进行填充,并设置填充面图元的编码,设置图层为水系层,颜色设置为C10对应的RGB色值(234,246,253)。
增加的填充面图元编码应在CASS成图系统文件符号定义文件work.def以及图元索引文件index.ini中进行定义。
通过分析图式样图,采用CMYK四色分色后,地形图图层的叠放顺序也有相应的要求。如注记层在最上面、水系层在最下面(如为有坎池塘,坎线在池塘上面)等,整理后CASS成图系统中地形图常用图层叠放顺序如表7所示。
表7 CASS图层叠放顺序表
通过重新对图层按照表7顺序叠放,出图效果更能符合图式要求。
1.满足图式要求
笔者利用C#语言及VS2005开发环境,采用以上思路在AutoCAD 2008下二次开发了根据编码修改图元颜色、水系面自动闭合填充、修改图层叠放顺序等功能模块,成功实现了CASS9.1地形图颜色符合图式CMYK四色分色的要求,并在多个地形图测量项目中得到了有效应用。
此外,笔者所在单位测绘的昆明市1∶500城市基础地形图正在逐步入库至EPS2008数据库中,并利用EPS2008将其转换为符合CASS9.1数据标准的功能模块,且对外提供利用该程序转换的符合图式要求的CASS9.1数据标准地形图,广泛应用于规划、建设、土地利用等行业,得到了用户的好评。
2.满足用户要求
以上程序除满足图式CMYK四色分色需要外,也可通过修改图层颜色配置文件、图元编码颜色配置文件、图层叠放配置文件来满足用户的地形图颜色的特殊要求。如在弥勒县1∶500数字化地形图测量项目中(1∶500地形图160 km2测量及1∶2000地形图缩编),用户要求图式中地貌图元中M40Y100K30色值使用22号色、水系图元中C100色值使用5号色等、无需使用水系填充面等。通过修改相应配置文件,程序功能模块则不失一般性均可根据需要进行更改,达到用户要求。
3.地形图检查
通过颜色修改后的地形图,不但可满足图式CMYK分色的要求,还可快速查看到图形编码是否错误。虽然图形绘制的编码符合CASS编码规则,但其编码可能与地物不匹配,如专用公路、省道、县道,其颜色均不相同。若省道利用县道的编码来绘制,可通过图元颜色看出其编码的错误。
同理,通过修改配置文件,将需要重点检查的编码色值进行修改。程序运行后,通过查看地形图地物颜色即可一目了然地识别图形编码是否错误,从而可大大提高查图效率。
本文提出的CASS9.1地形图CMYK颜色实现是便于实际应用的可行性方法,充分利用了CASS地物编码唯一性,以及CASS成图系统和AutoCAD图形颜色特性,编制程序实现了CASS9.1地形图CMYK颜色的分色。程序配置文件可根据实际需求快速、便捷地对其进行修改,以满足不同地形图配色要求。程序执行效率较高,单幅地形图颜色修改一般在5~10 s即可完成,满足了查图、出图的需要。
[1] 中华人民共和国国家质量监督检验检疫总局.GB/T 20257.1—2007国家基本比例尺地形图图式第1部分:1∶500 1∶1000 1∶2000地形图图式[S].北京:中国标准出版社,2007.
[2] 国家技术监督局.GB/T 7929—1995 1∶500 1∶1000 1∶2000地形图图式[S].北京:中国标准出版社,1995.
[3] 曾洪飞,张帆,卢择临.AutoCAD VBA&VB.NET开发基础与实例教程[M].北京:中国电力出版社,2008.
[4] 蒲朝旭,余代俊,陈延娟,等.CASS2008与2007版地形图图式的统一性研究[J].测绘,2010(1):45-48.
[5] 杨义辉,崔俊飞,李明建.GIS空间数据与DXF格式相互转换时颜色匹配研究[J].北京测绘,2010(1): 38-40.
[6] 杨智慧,乔晓霞.AutoCAD图块颜色的修改方法及实现实例[J].工程设计CAD及自动化,1997(6):51-53.
Realization of CMYK Color in Topographic Map Edit by CASS9.1
WANG Youkun,ZHONG Gaofei,ZHANG Junhua
0494-0911(2012)06-0077-04
P283.1
B
2011-08-19
王友昆(1982—),男,四川富顺人,硕士,工程师,主要从事测绘产品质量检查及GIS研究与应用工作。