修改那个切片程序

时间过得好快,这周几乎什么都没做就这么结束了。这周的前半段还在为一个工作上的问题各种纠结,接下来的几天就完全无所事事了。
  前几天是为了解决Arcpy的切片问题,周一时邹院拿来一份数据,就是一份栅格图片。要求做成切片,发布成服务供领导们查看。主任想起我以前做过的领导用图,于是让我的程序跑一下这个,也算是个测试了。但结果很不理想,图是切出来了,因为这张图九十多兆,切片预览时无法预览全图。这就比较尴尬了,其实这个问题我很早就知道了,当时没怎么在意,于是就一直放着了。主任让我尽量周二前解决,解决不了的话只能先把图交给数据部处理了。曾经单纯的我以为只要肯花时间,这个问题肯定能够解决。我查遍了ArcGIS帮助文档,终于知道问题出现的原因了。当我切片时,ArcGIS会自动的调整“细节层次”,这个地方可以通过ArcGIS Server的Server editor看到并可以进行手动的调节。我发现它总是将最小的比例尺限定在1:50000000上,一旦比例尺小于这个值就不会被切出来。这么说我只需要使用Arcpy控制下这个Server editor中的“细节层次”就可以咯,我又不停地再翻ArcGIS帮助文档,丝毫没有任何关于控制这个属性的方法,哪怕server这个对象都无法获得。我甚至修改原始的.mxd文档,也尝试着修改切片函数的各种参数,结果还是丝毫没有发生变化。
  


要是能直接修改Levels of Detail就好了

我开始怀疑这是不是一个系统BUG,我可是为了完成这个切片任务特地的卸下10.0安装了10.2呀。ESRI有个论坛,里面的问题比较多,可以在里面查找遇到的各种有关ArcGIS开发方面的问题。在查找过程中我也见到了几位遇到了相似问题的外国同仁们,但利用Arcpy进行切片遇到这种问题的就更少了,并且也没有给出对我任何有效解决方案。我很失望,想到也许花费了很多时间也不一定能够解决问题。同时我开始扩大了搜索范围,并不局限在Arcpy切片上,最终看到了这样的一张帖子Manage Map Server Cache Tiles not showing all levels of detail,这位先生自问自答,给出了比较尴尬的“解决方案”:

Nevermind. I forgot to check the service properties and set them to show the new level of detail. Everything works now.

这是什么鬼!一开始我觉得很茫然,直到最后我才想明白,加上之前我查ArcGIS帮助文档时见到的Arcpy修改sddraft文件的例子。sddraft文件对我来说是个临时文件,因为生成并发送至服务器后就直接被删掉了。在程序进行切片过程中,我找准时机将sddraft文件复制了一份出来,并仔细查看了这个文档里面是否有我自己想要的信息,终于我找到了一个属性minScale!sddraft文件里面有三个,我很确定第一个属性就是我想要的,因为它的值就是500000000.这么说只要改动这个值就可以了。于是在生成sddraft文件后我又添加了几行代码:

  #修改草稿draft
    # read sddraft xml
    doc = DOM.parse(sddraft)

    # turn on caching in the configuration properties
    configProps = doc.getElementsByTagName('ConfigurationProperties')[0]
    propArray = configProps.firstChild
    propSets = propArray.childNodes
    for propSet in propSets:
        keyValues = propSet.childNodes
        for keyValue in keyValues:
            if keyValue.tagName == 'Key':
                if keyValue.firstChild.data == "minScale":
                    # turn on caching
                    keyValue.nextSibling.firstChild.data = "32000000000"

    # output to a new sddraft
    if os.path.exists(sddraft): os.remove(sddraft)
    f = open(sddraft, 'w')
    doc.writexml( f )
    f.close()

问题得到解决,我喜极而泣。原来只要花时间,还真的能够把问题解决。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,105评论 18 139
  • 前言 ||| 第二章 使用ArcPy编写脚本 Python支持大部分在其他语言中出现的编程结构。在本章内容中,我们...
    muyan阅读 89,578评论 10 55
  • 第二章 使用ArcPy编写脚本 ||| 第四章 查找和修复数据源 我们将在本章介绍以下案例: 引用当前地图文档 引...
    muyan阅读 14,075评论 19 23
  • 谈及道家,无为二字便是最好的落眼处。可是世人谈无为,却往往害于其辞,好似无为便真的无所作为,但如果真的这么作解,就...
    蕊生阅读 622评论 4 5
  • 每个人在行业里面的发展有两条路,第一条路你在技术上做到了顶尖,也会成为大家。 但是,你在商业上面做得好,在传播上也...
    zxc789阅读 579评论 0 0