FME 瓦片数据下载与拼接

问题描述

今天我在懒人GIS的微信公众号上看到一个比较感兴趣的应用,就是利用 FME 实现瓦片数据的下载与拼接,所以我也试着去实现了一下。

解决思路

以 ArcGIS 发布的切片服务为例,获取切片的地址为

http://ip:6080/arcgis/rest/services/ServiceName/MapServer/tile/zoom/y/x

上面地址中,红色加粗的参数需要依据 ArcGIS Server 发布服务的具体情况而定。其中:zoom 表示瓦片级别,x 和 y 表示瓦片的行号和列号。

当然,不同服务获取瓦片的方式有所不同,还需要依据实际情况进行分析。如果有权限控制的情况,可能还需要动态获取 token 或是 key 等参数。

这里我们以 ArcGIS 发布的切片服务为例进行瓦片数据的获取和拼接,解决思路如下:

1. 创建一张属性表,每条记录有三个重要属性:待下载瓦片数据的行号、列号、瓦片级别

2. 依据行列号和瓦片级别构建在线瓦片的链接地址

3. 使用ImageFetcher/HttpCaller转换器获取对应的瓦片(本例使用ImageFetcher

4. 使用RasterGeoreference计算瓦片的相对坐标,方便进行后续拼接,否则所有的图片会叠加在一起

5. 使用RasterMosaicker进行瓦片拼接

6. 输出拼接后的瓦片

模板截图

具体实现的模板截图如下图所示:

在该模板中,我们预先设定了几个用户参数,也是为了让模板更加灵活:

url:ArcGIS 地图服务地址

row_count:批量下载瓦片的行数

col_count:批量下载瓦片的列数

zoom:下载瓦片的瓦片级别

size:瓦片图片的大小(一般为256,或512)

在模板中,我们首先用 Creator 创建了一个空的对象,然后克隆了 row_count * col_count 份,使用AttributeCreator计算每条记录的 x 和 y 的值(更推荐使用AttributeManager),并拼接出下载瓦片的 url 地址,随后使用ImageFetcher下载瓦片,使用RasterGeoreference计算瓦片的相对坐标,使用RasterMosaicker拼接瓦片,最后输出。

其中AttributeCreator计算 x、y、url的值如下图的设置:

其中用到了%(取余操作符),以及 floor函数进行取整操作。

当然,如果你觉着这样比较复杂,也可以预先创建一个 Excel 文件,直接读取 Excel 文件。

使用RasterGeoreference计算瓦片的相对坐标的设置如下图:

这里需要注意的是瓦片服务的坐标原点在哪里,若遵循 TMS 标准,则坐标原点在左下角,否则在左上角。ArcGIS 瓦片服务的坐标原点在左上角,所以 0 / 0 图片是左上角的第一张图片。

核心转换器

ImageFetcher:通过执行 HTTP GET 操作在指定的 URL 上获取图片,并将得到的数据作为栅格要素对象返回。

RasterGeoreference:用指定的参数对栅格进行空间配准(上述案例中我们计算的是相对位置,其实也可以使用真实坐标进行配准)。

RasterMosaicker:把多个栅格要素镶嵌为一个栅格要素。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 很多人应该都听过田馥甄的这首《小幸运》吧。歌曲被我循环听过n遍,同名的电影也让我落下过眼泪。我喜欢着徐太宇和林...
    水晶新阅读 351评论 0 4
  • 电影讲述的是一对老夫妻的晚年生活,一起看书读报看音乐会,他们是相爱的,也是彼此照顾的,非常的体贴。但是老妇人得了病...
    花儿的博文阅读 461评论 0 0
  • 晚上爸爸去接的你,回来后兴奋不已,并且跑过来给我了一个大大的拥抱,我有点一头雾水,你告诉我今天开班会老师评...
    周弼城妈妈阅读 138评论 0 0
  • 因为有河西的朋友约我,所以我坐上了从河东开往河西的公交车,车上人不少,我自觉的站到了后门边上,稳住脚步抓住身边的一...
    黄薇珍阅读 461评论 0 1