geopyspark入门
背景
对于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入门的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- 【多线程】-Thread
Thread介绍(实例化): Thread类可以创建和控制线程,Thread类的构造函数重载为接受ThreadStart和ParameterizedThreadStart类型的委托参数.微软官网给出的 ...
- js基础--javaScript数据类型你都弄明白了吗?绝对干货
欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...
- Java中创建线程的三种方式及其优缺点
1.自定义一个继承Thread的类,由于Java的单继承特性,限制了该类的扩展性. 2.实现Runnable接口,重写run()方法. 3.实现Callable接口,重写call方法.线程执行体可以有 ...
- Bash特殊变量:$0, $#, $*, $@, $?, $$实战
在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid ...
- 优雅地实现CSS Animation delay心得
话不多说直接开讲: 1.需求: 等待元素A的动画加载完,再加载B元素的动画(下图中A为大熊猫,B为下方卡片) 先来看下最后的效果啦: 2.初始思路: 在B元素的动画属性上加上delay(延迟,使得这个 ...
- yii批量插入的方法
public function insertSeveral($table, $array_columns) { $sql = ''; $params = array(); $i = 0; foreac ...
- APNs 推送原理及问题
http://bbs.csdn.net/topics/390461996 在 iOS 平台上,大部分应用是不允许在后台运行并连接网络的.在应用没有被运行的时候,只能通过 Apple Push Noti ...
- React从入门到放弃之前奏(3):Redux简介
安装 npm i -S redux react-redux redux-devtools 概念 在redux中分为3个对象:Action.Reducer.Store Action 对行为(如用户行为) ...
- log.go
) //打开日志文件 以及文件操作权限 if err != nil { return err } // 解析日志记录的等级信息 level, err : ...
- ionic3 懒加载在微信上缓存的问题
1.懒加载是什么? 在ionic2中所有的组件.模块.服务.管道等都堆积在app.module.ts模块中,在页面初始化的时候会一次性加载所有的资源,导致资源过大,页面渲染缓慢,也导致app.modu ...