前面写了几篇博客介绍了Geotrellis的简单使用,具体链接在文后,今天我主要介绍一下Geotrellis在数据处理的过程中需要注意的细节,或者一些简单的经验技巧以供参考. 一.直接操作本地Geotiff   如果不想将tiff数据切割成瓦片存放到集群中,也可以直接使用Geotrellis操作本地geotiff文件,可以直接使用SinglebandGeoTiff读取单波段的tiff,使用MultibandGeoTiff读取多波段tiff. val geotiff = SinglebandGeo…
前言 在上两篇文章中我介绍了如何直接将Geotiff(一个或者多个)发布为TMS服务.这中间其实我遇到了一个问题,并且这个问题伴随Geotrellis的几乎所有使用案例,下面我进行详细讲述. 一.问题描述 无论在将TIff文件使用Geotrellis导入Accumulo中还是直接将其发布为TMS服务,其实这中间都存在一个问题:当多个Tiff文件存在重叠部分的时候如何接边以及在接边处的瓦片如何取出各Tiff文件中涉及到的数据. 这个问题可以说是一个问题也可以说是两个问题.当我们采用事先导入Accu…
一.URL: 1.基础的URL与视图函数的映射 from django.conf.urls import url from django.contrib import admin from appname import views #django-1.8 urlpatterns = [ url(r'^$', views.functionname,name="xxxx"), # new url(r'^admin/', admin.site.urls), ] #django-2.0 (py…
1.空类的默认函数 一般情况下,对于任意一个类A,如果程序员不显示的声明和定义上述函数,C++编译器将会自动的为A产生4个public inline(公有.内联)的默认函数,这4个函数最常见的形式为:       (1)默认构造函数          A() {}       (2)默认拷贝构造函数   A(const A&){}       (3)默认析构函数         ~A() {}       (4)默认赋值函数         A& operator = (const A &…
创建 DataFrame: df = pd.DataFrame(np.random.randint(0, 10, (2, 4)), columns=list('ABCD')) 0. 为 data frame 添加新的属性列 >> df['total'] = df['A'] + df['B'] + df['C'] + df['D'] # 等价于 df['total'] = df.A + df.B + df.C + df.D 1. 数据类型 df.values ⇒ 返回的是 numpy 下的多维数…
前言 之前 GeoTrellis 为方便用户将数据(GeoTiff 等遥感影像)导入到 backend (包含 Accumulo.File.Hadoop 等格式)中,编写了一个 ETL 类,该类的输入为用户配置好的 json 文件,其中包含数据源.数据类型.投影.瓦片类型.处理方式等等处理过程中需要用到的信息. 从 2.0 版开始,GeoTrellis 加入了流水线(pipeline)功能,用户可以使用 json 或者 AST 将数据的处理过程配置成处理的流水线过程,这样只需要执行此流水线,系统…
本文存放了我在博客园中撰写的Geotrellis系列文章链接,方便查阅! 一.geotrellis使用初探 二.geotrellis使用(二)geotrellis-chatta-demo以及geotrellis框架数据读取方式初探 三.geotrellis使用(三)geotrellis数据处理过程分析 四.geotrellis使用(四)geotrellis数据处理部分细节 五.geotrellis使用(五)使用scala操作Accumulo 六.geotrellis使用(六)Scala并发(并行…
要想搞明白Geotrellis的数据处理情况,首先要弄清楚数据的存放,Geotrellis将数据存放在Accumulo中. Accumulo是一个分布式的Key Value型NOSQL数据库,官网为(https://accumulo.apache.org/),在使用Ambari安装hadoop集群一文中已经介绍了如何安装Hadoop集群以及Accumulo. Accumulo以表来分区存放数据,结构为Key Value,其中Key又包含RowID和Column,Column又包含Family.Q…
本文主要讲解Scala的并发(并行)编程,那么为什么题目概称geotrellis使用(六)呢,主要因为本系列讲解如何使用Geotrellis,具体前几篇博文已经介绍过了.我觉得干任何一件事情基础很重要,就像当年参加高考或者各种考试一样,老师都会强调基础,这是很有道理的.使用Geotrellis框架的基础就是Scala和Spark,所以本篇文章先来介绍一下Scala编程语言,同样要想搞明白Scala并发(并行)编程,Scala基础也很重要,没有Scala语言基础就谈不上Scala并发编程也就更谈不…
眼看就要端午节了,屌丝还在写代码,话说过节也不给轻松,折腾了一天终于解决了一个BUG,并完成了老板安排的求DEM坡度的任务,那么就分两段来表. 一.BUG调试 首先记录一天的BUG调试,简单copy了之前写好的代码(在前面几篇博客中已有介绍),然后添加了求坡度的代码,坡度代码暂且不表,然后满怀欣喜的上线,打开浏览器访问,以为节前的工作就可以告一段落了,谁知一天的辛苦就此拉开序幕——竟然空白一片,什么都没有,怎么会没有瓦片,难道数据没有导入,对spark集群各种检查,accumulo数据库检查,都…