Arcpy之多线程热力图

起因是这样一段对话~~~~

领导:你会用脚本生成热力图图片吗?

我:可以研究下。

领导:那这个需求就给你了。

我:......

 经过一番研究,研究出大概的思路,先将有经纬度的表中的数据筛选出表并生成xy事件,接着利用核密度工具生成栅格,最后呢裁剪栅格通过mapping出图。

出图过程比较,所以考虑使用多线程(一张图五分钟,十九张图多线程九分钟你说吼不吼)。

多线程第一次用,一开始打算用数据库存放数据表和栅格,不过锁表比较难解决,于是选择了简单粗暴地在文件地理数据库(gdb)里处理,每个文件使用一个gdb,这样速度快也不用考虑会被锁表,处理完以后就直接删库(跑路)。

多线程中尽量不要有删除操作,容易冲突,把删除都放在单线程中这样不容易出错

MyGPpool = multiprocessing.Pool(19)results = MyGPpool.map(batch, parameters)MyGPpool.close()MyGPpool.join()

 worker中使用别的脚本要使用importScripts导入,当需要传递参数可以transferable object(通讯时会比较快,参考worker使用),本次项目中使用Float64Array.看几个初始化范例

mxd = arcpy.mapping.MapDocument(mxd_file)df = arcpy.mapping.ListDataFrames(mxd, '图层')[0]lyr = arcpy.mapping.ListLayers(mxd)[0]datasetName = os.path.basename(data_raster)dataRasterWorkspace = os.path.dirname(data_raster)if lyr.supports("DATASOURCE"): lyr.replaceDataSource(dataRasterWorkspace,"FILEGDB_WORKSPACE", datasetName) df.extent = extent df.panToExtent(extent) arcpy.mapping.ExportToPNG(mxd, out_file, df, color_mode='24-BIT_TRUE_COLOR', world_file=True,background_color="No Color", transparent_color="No Color") else: arcpy.AddMessage("error") arcpy.RefreshActiveView()    del mxd, df, ly
(0)

相关推荐

  • 搜罗全网!ArcGIS二次开发Python(arcpy)指南(三):三大文件对象操作

    点击上方蓝字,关注我带你飞!前言:地图文档对象.数据框对象.还有最为重要的图层对象.每种对象都有着各自的属性和方法,都有着不同的妙用... 上一章非常详细介绍了 ArcPy 模块.Python 窗口. ...

  • Python和ArcGIS自动化制图完全指南 总集篇

    前言:<Python和ArcGIS自动化制图完全指南>该系列包括前言共五章,内容多且详细.总集篇带大家快速梳理掌握各章节的要点,同时解答之前收集到的一些问题...<前言篇> 查 ...

  • JAVA多线程学习笔记整理

    多线程: 三种创建方法 继承Thread类,以线程运行内容重写run方法,创建Thread对象并用start方法启动该线程. (匿名内部类) (Lambda表达式) 实现Runable接口,以线程运行 ...

  • IDM高效率万能多线程下载详细安装教程和使用方法

    使用了IDM插件和脚本之后,真的很香这大大提高了我们电脑的使用效率 但我还没有介绍另一个下载工件.我觉得如果我不写,不知道的人会怀念它.它是著名的互联网下载管理器Internet Download M ...

  • Python爬虫新手入门教学(九):多线程爬虫案例讲解

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • 简单几个步骤制作一款高级热力图

    热力图是什么? 这个名字可能听起来很高大上,但是实际上它等同于我们常说的密度图. 热力图的原理即是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示,热力图可以显示不可点击区域发生的事情 ...

  • 普通爬虫vs多线程爬虫vs框架爬虫,Python爬对比

    前言 本文的文字及图片过滤网络,可以学习,交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space.b ...

  • 100道Java并发和多线程基础面试题大集合(含解答),这波面试稳了~

    # 前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了100个多线程的问题. 这些多线程的问题来源于各大网站,可能有些问题网上有.可能有些问题对应的答案也有.也可能有些各位网友也都看过,但是本文 ...

  • 【数据获取】无代码获取百度热力图数据

    GIS前沿 昨天 编者荐语: 打开前需要先定位至大城市中心区域,否则刚打开时自动定位的地方可能加载不出热力图,或者直接不显示热力图选项. 以下文章来源于城市数据百宝箱 ,作者小黄鸭 百度热力图数据是一 ...