作者:lkfree
第九期的作业一共收到7份。本来想根据文件名大小写去判断ZH结尾的dwg,后来发现这个不分大小写…
一、题目说明
这一期的题目是接边文件查找和传递,完成接边检查前,接边文件的查找和传递,通过这个作业大家可以学习和掌握path读模块和workspacerunner转换器的使用。
具体说明:根据文件的图幅号,在文件所在目录下,自动搜索与之接边的文件,并将文件的路径作为接边检查时的参数传递到接边检查模板中使用
数据说明:
所有的数据都是空文件,只具备文件名。
1) MDB文件夹:包含8位文件名的mdb数据,代表500分幅的数据。
2) DWG文件夹:MDB文件需要做图形关联的数据,每个MDB文件根据文件名挂接对应文件名的DWG文件。其中DWG文件以“ZH”结尾,可以是大写或小写
3) 3.0_1000.dwg和0_1000.mdb:空的dwg和mdb文件,用于接边检查在同一个文件夹中无法找到相应的接边文件时使用。
4) 接边检查模板:接边检查.fmw 模板有四个参数:
S_MDB:待检查文件路径
JB_MDB:接边文件路径
S_CAD: 与mdb关联的dwg文件
LOG_FILE:文件运行接边检查模板的日志。
作业要求:
1、 读取MDB目录,对文件夹中的所有文件找到与之对应的接边文件(包括文件名和文件路径),以及与之对应的图形DWG文件;然后通过WorkspaceRunner调用“接边检查.fmw”,并正确指定接边检查模板中的每个参数。
2、 把MDB中每个文件对应的接边文件(包括文件名和文件路径,无法找到接边文件时使用“0_1000.mdb”)输出到TXT中,每个文件生成一个TXT,且以文件名命名TXT。
注意事项:
1) 只需要查找每个文件左侧和上侧的两个接边文件;
2) WorkSpaceRunner调用接边检查模板时,注意JB_MDB这个参数需要把多个接边文件的路径用正确的方式连接起来。
示例:
""C:\Users\Administrator\Desktop\接边题目/0_1000.mdb" "C:\Users\Administrator\Desktop\接边题目/0_1000.mdb" "C:\Users\Administrator\Desktop\接边题目/0_1000.mdb""
3) WorkSpaceRunner调用接边检查模板时,LOG_FILE的日志名称应与做接边检查的MDB文件名称一致。
4) WorkSpaceRunner调用“接边检查.fmw”模板前,先在Workbench中打开该模板,然后把这个模板保存为你使用的FME版本,确保调用时参数能够正确显示。
二、题目分析
该题目是基于1:1000比例尺分幅查找图幅号,根据文件名称可以得知其Y与X值范围以及对应的图框号。并根据图幅规则计算上图和左图的图幅号,上图图框号为当前序号减4或者加12,左图图框号为当前序号减1或者加3)。
图框号规则如下:
在完成本次作业的过程中,最直接的方式和最容易让人想到的方式就是使用create根据不同条件生成图幅号。用list方式获取所有文件名,用featuremerge进行挂接下面对大家的作业进行分析。
三、 作业情况
本次一共收到7份作业(所有提交作业可点击这里下载),作业概括和分析如下:
一、小结
1、 本次作业的获取相邻图幅方法主要是两个大的方向:第一种计算所需要接边的上图和左图的图幅号上图序号=当前序号-4(如果-4后值小于等于0,上图序号=当前序号-4+16)左图序号=当前序号-1(当前序号%4=1时,左图序号=当前序号+3);第二种是很老实的一个个去对每个图框号的接边文件进行赋值。
2、 在查找接边图幅文件名相应的接边文件是否存在时,主要的方法有通过list的方式构建列表,再将其降级为属性,欣欣、向左向右、风~~~~~涟漪大致采用此方式;还有种方法是调用pyhon进行查找,贝贝和清风采用的这种方式;还有种方法就是用featuremerge挂接,再根据不同情况去判断,阿呆和张文伟大概采用此法。
3、 对于这次作业提供的数据比较简单,主要能够看懂并分析出图幅规律的话,就能比较简单的去获取所需要的路径,分析出规律的人基本上都大致按照此法解题,阿呆的计算方式稍微有些不同。
4、 本次主要只是对接边图幅查找和路径判断传递进行考察,而实际的数据根据接边数据复杂的情况,还会制作一些接边检查的模板,希望大家通过这次作业能够掌握一些转换器的使用、和大致的思路,在具体应用中再根据数据情况具体分析。
第一次点评大家的作业,备感紧张,如有不当,欢迎指正~~~~
新手上路~~
By lkfree