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

一、任务来源

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

二、问题分析

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

三、FME的解决方案

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

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

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

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

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

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

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

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

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

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

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

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

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

用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)_第7张图片 下拉并选中

用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)_第8张图片 选中后效果

四、其他小技巧

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

用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)_第9张图片 图4.1 暴露文件名称

用FME实现xls格式文件投影坐标(XY)转TXT格式文件的地理坐标(经纬度)_第10张图片 4.2 使用属性作为扇出文件名

 五、小结

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

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

你可能感兴趣的:(FME相关,arcgis,数据库,FME,坐标转换)