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 ...
随机推荐
- Oracle数据库表分区
一.Oracle数据库表分区概念和理解 1.1.已经存在的表没有方法可以直接转化为分区表. 1.2.不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引.效率 ...
- Mysql访问权限问题:Access denied for user 'root'@'XXX' (using password: YES)
System.Data.Entity.Core.ProviderIncompatibleException: An error occurred accessing the database. Thi ...
- Python_sqlite3
import sqlite3 #导入模块 conn = sqlite3.connect('example.db') #连接数据库 c = conn.cursor() #创建表 c.execute('' ...
- MYSQL使用方法
显示所有数据库:show databases; 创建数据库:create database 数据库名; 删除数据库:drop database 数据库名: 查看表结构: describe(desc ...
- 并发库应用之十一 & 阻塞队列的应用
队列包含固定长度的队列和不固定长度的队列,队列的规则就是:先进先出.固定长度的队列往里放数据,如果放满了还要放,阻塞式队列就会等待,直到有数据取出,空出位置后才继续放:非阻塞式队列不能等待就只能报错了 ...
- PyCharm中设置字体大小
1.在file(文件)里面找到setting(设置) 2. 然后再左面Editor里面找Font,再到右面Size里面设置字体大小
- SwaggerUI--SosoApi
1.SwaggerUI是什么? Swagger UI是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger-UI 的官方地址:http://swagger.io/ Github ...
- composer的安装方法
网上说的方法几乎都不正确,经作者总结,终于知道怎么使用composer的方法.第一,从http://docs.phpcomposer.com/下载安装包:composer.phar 第二,把安装包放在 ...
- MAC下的mysql忘记密码该怎么办??
不要着急,不要慌,好多人会忙手忙脚,以为自己安装了一个假软件,其实是你打开的方式不对而已! step1: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击 ...
- mysql binlog格式
Binlog Event 对于一个 Binlog Event 来说,它分为三个部分,header,post-header 以及 payload.MySQL 的 Binlog Event 有很多版本,我 ...