用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)

一、任务来源

        在自然资源部门都知道有个国土调查云,里面有个云查询,输入的坐标只支持地理坐标(经纬度),但是日常我们使用基本都是投影坐标(XY)。这个时候,就需要我们去做投影转换了,一般是在ArcGIS里处理,比较麻烦,需要先转成点文件再提取经度坐标还要复制出来做成TXT,过程繁琐,如果你需要处理几个,甚至几十个,那么你就会直接奔溃了。同事找到我做个模板好 长期使用。

二、问题分析

        其实实现起来不难,就是把投影坐标读进去,然后做投影,再输出到TXT即可,习惯用ArcGIS的朋友直接做个模型也能长期使用。

三、FME的解决方案

        本人熟悉FME就用FME来写一个小模板,具体思路如下:

        1.以xls格式读取表格,然后用GeometryRemover转换器把读进来自带的矢量空间信息删掉,因为FME会自动检查进来的数据符合矢量空间要求就会直接赋值了空间信息,所以此处必须删掉空间信息,因为FME默认赋值错了。

         2.然后就用转换器创建点VertexCreator,此处一定要注意FME里的XY和测绘上用的XY是相反的,跟ArcGIS的XY是一致的,不确定的反过来测试一下就知道了。

        3.因为投影坐标是有带号的,我们根据带号不同来分别做投影到地理坐标。

         4.提取经纬度。这里用到关键的两个转换器CoordinateExtractor和ListExploder。CoordinateExtractor是把经纬度暴露到列表里(我也不知道为啥不能直接暴露为属性),ListExploder转换器是把在列表的经纬度再次暴露到属性中来。

         5.将经纬度合并到一个属性中去(因为TXT只能写出一个属性)

         6.用AttributeRenamer转换器把合并后的经纬度字段名称重命名为txt_line_data(属于是格式属性,只能在下来菜单中选中,不能直接输入!)

下拉并选中

选中后效果

四、其他小技巧

        在读入表格时,在读模块设置里的格式属性将fme_basename(文件名称)暴露出来(如图4.1),然后在最后输出TXT文件的时候,可以调用这个属性来命名TXT文件,实现闭环管理。特别注意TXT的写模块是不支持直接在读模块上用属性对文件进行命名的,只能在工作空间左侧的读模块管理有个扇出表达式里进行设置,而且一定要在文本编辑器里写.txt哦(如图4.2)。

图4.1 暴露文件名称

4.2 使用属性作为扇出文件名

 五、小结

        这个模板用到的转换器不多,主要涉及移除空间信息、投影、列表的暴露、属性重命名等转换器。还使用了扇出功能,平时比较少用的,扇出可以扇出文件夹和文件名称,功能还是很强大且实用的,可以多测试摸索。整体模板见下图。模板在这里

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值