背景

    对于GIS的大数据量实时数据分析和渲染的需求,ArcGIS Server和Geoserver、普通空间数据库往往难以满足,对此我一直感觉很沮丧。这时就要寻求大数据的分布式框架帮助。(ArcGIS的ga也可以,但是太贵)

现状

    我了解到有Geomesa,Geotrellis,GeoWave三大框架。GeoWave和Geomesa都可以支持Geoserver,但是Geotrellis可以支持这两个框架。Geotrellis是一个高性能的GIS数据应用,可以处理栅格和矢量数据,提供实时的rest服务,能够渲染数据并提供切片服务。本文要使用的是它的py版geopyspark。

准备

    首先在linux(Centos 7)环境中安装docker,参考菜鸟教程(安装教程)。然后执行下面的命令,经过漫长的等待(装了一天,终于在早上装好了),完成就会启动项目。

sudo docker run -it --rm --name geopyspark -p 8000:8000 quay.io/geodocker/jupyter-geopyspark:b
log



    浏览器访问localhost:8000/链接,输入账户名密码hadoop.jupyter中有一个自带例子,修改原来的下载数据代码,注释例子中最后一个格子的代码,程序会自动下载数据并读取数据计算分析生成切片展示到前台界面(原数据因为墙的问题通过代码下载失败,所以我事先下好数据放到github上面)

!curl -o /tmp/bars.geojson https://raw.githubusercontent.com/tpolong/geodocker/master/bars.geojson
!curl -o /tmp/cafes.geojson https://raw.githubusercontent.com/tpolong/geodocker/master/cafes.geojson
!curl -o /tmp/transit.geojson https://raw.githubusercontent.com/tpolong/geodocker/master/transit.geojson !curl -o /tmp/roads.geojson https://raw.githubusercontent.com/tpolong/geodocker/master/roads.geojson

成果



    本例中主要实现的是距离成本计算,根据酒吧、咖啡馆、中转站的不同权重结合道路计算距离成本,有蓝色向黄色转变表示成本由高到低的变化。

参考资料:

Geotrellis官网

geospark的github地址

how-to-run-geopyspark-in-a-geonotebook-with-docker

introducing-geopyspark-a-python-binding-of-geotrellis

geopyspark入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. 工作中常用的JS函数整理分享(欢迎大家补充)

    今年在渣X工作整理的常用JS函数 今年来了渣X工作,我所在这个部门分工很奇怪,CSS竟然有专门的人在搞,开发PHP的人员需要处理JS,以至于有时候开发起来不是那么得心应手,感觉把JS和CSS拆开就像是 ...

  2. 【机器学习】使用gensim 的 doc2vec 实现文本相似度检测

    环境 Python3, gensim,jieba,numpy ,pandas 原理:文章转成向量,然后在计算两个向量的余弦值. Gensim gensim是一个python的自然语言处理库,能够将文档 ...

  3. Docker的安装和测试

    1,Docker安装 Docker是啥,以及其与虚拟机的对比,就不介绍了,网上有很多资源可以学习和了解. 本篇文章重点介绍Docker的安装和测试使用. Docker的安装,分为离线安装和在线安装两种 ...

  4. cmd登录系统用户

    1.  sqlplus /nolog 2.  conn system/密码 as sysdba  或conn / as sysdba  或conn sys/密码 as sysdba 注:system系 ...

  5. AndroidEclipse里的视图里想添加SDK Manager但是找不到怎么办?

    有时候,我们想配置SDK Manager,但是发现找不到这个窗口,怎么办呢,网上有解释(上截图): —————————————————————————————————————————————————— ...

  6. Git Submodule简单操作

    基于组件的项目很多,但是如果直接用包的方式直接引用到项目中,如果出现问题很难进行调试的操作,也很难进行组件的优化和管理,所以写了一篇文章来介绍下git submodule的用法,用submodule可 ...

  7. javascript 事件编程之事件(流,处理,对象,类型)

    1. 事件处理 1.1. 绑定事件方式 1)行内绑定 语法: //最常用的使用方式 <元素 事件="事件处理程序"> 2)动态绑定 //结构+样式+行为分离的页面(ht ...

  8. 13.app后端为什么要用到消息队列

    很多没有实际项目经验的小伙伴,对消息队列系统非常陌生,看着很多架构的介绍中,都提到消息队列.但是,不知道为什么要用消息队列?什么是消息队列?常见的消息队列产品有哪些? 通过阅读本文,帮你解开以上的疑惑 ...

  9. Linux上配置使用iSCSI详细说明

    本文详细介绍iSCSI相关的内容,以及在Linux上如何实现iSCSI. 第1章 iSCSI简介 1.1 scsi和iscsi 传统的SCSI技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用 ...

  10. CAN总线、自然与人

    最近在研究CAN总线,发现CAN总线的CANH和CANL上的波形有好有坏,如图1所示红框中所示,有的波形有明显的过冲,想弄清楚原因,请教了一些前辈,自己也查阅了一些资料,但由于孔丙火(微信公众号:孔丙 ...