最近,单位领导要求我研究一下geotrellis(GITHUB地址:https://github.com/geotrellis/geotrellis,官网http://geotrellis.io/),于是我只能接受这个苦逼的任务。

官网中写到:GeoTrellis is a geographic data processing engine for high performance applications.可以看出这个框架主要是用来进行地理信息数据的高性能快速处理,当然是个很有用的东西,但是怎么学习之,是个很大的问题。

Geotrellis主要涉及到的知识点包括Scala,sbt,Spark,Akka。貌似每项都不是善茬,基本都没有怎么接触过,除了Scala稍微接触过,那么只能完全从头开始学习了。

程序员第一步,百度之,Bing之,Google之,CnBlog之。完全找不到门路,可能是一个新的处理框架,基本没有人使用过,查不到任何有用的信息,怎么办?那只能自己摸索。

程序员第二步,自己摸索。

看了一下,geotrellis开源了一个例子(https://github.com/geotrellis/geotrellis-chatta-demo),我最喜欢先跑个例子看一下,这样好像自己已经牛逼的搞定了他,其实主要是能够从例子中可以大概明白他能干什么事情,然后以及一些具体的操作步骤。git clone到本地之后,傻眼了,怎么运行它。。。完全没有思路,看到sbt,那就开始学习sbt吧,sbt其实是相当于Maven的一个框架,能够帮我们管理scala项目,刚开始为了跑例子,也没有怎么研究,就是看到说直接到项目目录运行./sbt run即可,来来回回折腾了好多次每次都是error error,但是不要灰心,只需要一直./sbt run。过了一天时间,下载了一堆jar,成功跑了起来,出来了应有的效果,心中甚是欢喜,向领导汇报一下,领导看了一眼,又提了一堆记也没记住的问题让去研究,算是完成了第一步。

跑出来例子之后就反过来看他的github的ReadeME,上面有一项Hello Raster,就是对Geotrellis使用的一个简单的介绍,想着这个可以,如果能跑通,那应该就基本ok了。部署了Spark环境(参考之前的一篇文章使用Ambari安装hadoop集群),然后又研究了sbt,在Windows的笔记本上搭建了开发环境(IDEA+SCALA+SBT),这块网上的介绍也很多,不在这里介绍。然后把Geotrellis clone到本地,简单看了一下源码,发现比较高深,一筹莫展,打个jar包放到服务器上,运行spark-shell然后按照reademe中的步骤一步步来,无奈一直报错,根本不知道什么原因,其实这个时候对geotrellis根本还是云里雾里,不清楚到底怎么个情况。这个时候又回来看开源的那个geotrellis-chatta-demo,看着看着突然就顿悟了,这个demo其实干的是个很简单的事情,就是网页根据用户的交互信息向后台程序发请求,后台程序根据请求的数据用模型计算分析出一个信息(地理空间信息),并将数据发到前台,前台将此信息解析加载到地图上显示。明白了这一点就好办了,那么geotrllis主要完成的功能其实就是计算,根据你的需求进行相关计算,一下子就变得不是那么神秘了。然后我想既然spark-shell行不通,那么我为什么不直接把框架拿到本地做测试,刚好又发现了一个demo(https://github.com/geotrellis/geotrellis-sbt-template)是geotrellis的helloworld,clone本地之后运行,OK一切正常,然后将geotrellis项目中的Reademe中的东西拿来测试,OK跑通,心中甚是激动。

本篇博文主要记录了geotrellis框架的一个学习的过程,其实说是过程,也只是才完成了hello world,后面的东西还有很多。在这里主要总结一下学习的方法,为更深入的学习打好基础,也为同样学习此框架的人提供一个hello world一样的教程,少走弯路。

geotrellis使用初探的更多相关文章

  1. geotrellis使用(二)geotrellis-chatta-demo以及geotrellis框架数据读取方式初探

    在上篇博客(geotrellis使用初探)中简单介绍了geotrellis-chatta-demo的大致工作流程,但是有一个重要的问题就是此demo如何调取数据进行瓦片切割分析处理等并未说明,经过几天 ...

  2. Geotrellis系列文章链接

    本文存放了我在博客园中撰写的Geotrellis系列文章链接,方便查阅! 一.geotrellis使用初探 二.geotrellis使用(二)geotrellis-chatta-demo以及geotr ...

  3. geotrellis使用(三)geotrellis数据处理过程分析

    之前简单介绍了geotrellis的工作过程以及一个简单的demo,最近在此demo的基础上实现了SRTM DEM数据的实时分析以及高程实时处理,下面我就以我实现的上述功能为例,简单介绍一下geotr ...

  4. geotrellis使用(四)geotrellis数据处理部分细节

    前面写了几篇博客介绍了Geotrellis的简单使用,具体链接在文后,今天我主要介绍一下Geotrellis在数据处理的过程中需要注意的细节,或者一些简单的经验技巧以供参考. 一.直接操作本地Geot ...

  5. geotrellis使用(五)使用scala操作Accumulo

    要想搞明白Geotrellis的数据处理情况,首先要弄清楚数据的存放,Geotrellis将数据存放在Accumulo中. Accumulo是一个分布式的Key Value型NOSQL数据库,官网为( ...

  6. geotrellis使用(六)Scala并发(并行)编程

    本文主要讲解Scala的并发(并行)编程,那么为什么题目概称geotrellis使用(六)呢,主要因为本系列讲解如何使用Geotrellis,具体前几篇博文已经介绍过了.我觉得干任何一件事情基础很重要 ...

  7. geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践

    眼看就要端午节了,屌丝还在写代码,话说过节也不给轻松,折腾了一天终于解决了一个BUG,并完成了老板安排的求DEM坡度的任务,那么就分两段来表. 一.BUG调试 首先记录一天的BUG调试,简单copy了 ...

  8. geotrellis使用(八)矢量数据栅格化

    目录 前言 栅格化处理 总结 参考链接 一.前言        首先前几天学习了一下Markdown,今天将博客园的编辑器改为Markdown,从编写博客到界面美观明显都清爽多了,也能写出各种样式的东 ...

  9. geotrellis使用(九)使用geotrellis进行栅格渲染

    目录 前言 图像渲染 总结 参考链接 一.前言        前面几篇文章讲解了如何使用Geotrellis进行数据处理.瓦片生成等,今天主要表一下如何使用Geotrellis进行栅格渲染.     ...

随机推荐

  1. Mac系统中配置Tomcat环境

    第一步:下载Tomcat 下载地址:http://tomcat.apache.org/download-80.cgi 直接下载如图选中的即可 第二步: 下载完成后,解压,随意放入目录.如我就把它放在/ ...

  2. MVC辅助方法

    我相信很多人虽然经常用mvc去做一些东西,但是可能很少使用mvcHtml辅助方法 首先我们要创建一个mvc项目 二创建一个HtmlHelper文件夹 三编写文件 四调用辅助方法 调用辅助方法 和使用其 ...

  3. PHP Strict Standards:问题解决

    异常信息: ( ! ) Strict standards: Declaration of SugarEmailAddress::save() should be compatible with tha ...

  4. SQL Server恢复软件 Stellar Phoenix sql recovery

    SQL Server恢复软件 Stellar Phoenix sql recovery http://www.stellarinfo.com/ http://www.stellarinfo.com/ ...

  5. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

    注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...

  6. 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  7. 仿花田:相亲网站 意中人 已在GitHub上开源

    在园友的强烈呼唤下,我还是负责任的分享给大家,因为对代码比较熟悉一下,还是有些问题要说明,不然别人看起来会比较费劲.说实话除了这个bootstrap的界面风格和这件事情本身对大家有吸引力之外,内部的逻 ...

  8. 开始用Word 2013来写博客

    第一步:如果从未发布过博客文章的话,需要在菜单里面选这里添加博客账号   第二步:选择正确的设置   第三步:写完博客之后,按这里就可以发布了!   如果以后需要写新的博客的话,还可以直接点这里:   ...

  9. 备忘-Android ViewPager 与Gallery滑动冲突解决方法

    解决方法,重新定义gallery,禁止触发pager的触摸事件 1 public class UserGallery extends Gallery implements OnGestureListe ...

  10. 《Entity Framework 6 Recipes》中文翻译系列 (42) ------ 第八章 POCO之使用POCO

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第八章 POCO 对象不应该知道如何保存它们,加载它们或者过滤它们.这是软件开发中熟 ...