用ArcGIS读取GIMMS AVHRR NDVI 3g 数据

用ArcGIS读取GIMMS AVHRR NDVI 3g 数据

[email protected]

这个第三代NDVI数据,文件名类似于geo82dec15a.n07-VI3g ,增加.bsq扩展名,比如geo82dec15a.n07-VI3g.bsq。

然后建立一新文件,文件名与ndvi文件名一致(不包括.bsq),扩展名为 .hdr,如geo82dec15a.n07-VI3g.hdr。把此.hdr与nvdi文件放在一起。.hdr是个文本文件,内容包括:

nrows 4320

ncols 2160

nbands 1

nbits 16

pixeltype SIGNEDINT

byteorder M

layout bsq

在arcgis里就可以以栅格的形式打开。不过遗憾的是,由于ndvi 3G文件好像写数据的次序与arcgis不一样,所以读出来是倒置的。

在ArcGIS里做一个栅格transpose rotate,就是正确的图像。然后增加正确的坐标信息,在正确位置下,坐标信息如下:

upper-left-lat: 90.0-1/24

    upper-left-lon: -180.0+1/24

    lower-right-lat: -90.0+1/24

    lower-right-lon: 180.0-1/24

Geographic Lat/Lon

    pixel-size: 1/12=0.0833 degrees

因ndvi3g读过来的数据中包括flag信息。用raster algebra计算ndvi时,用以下公式,

ndvi = rounddown(ndvi3g / 10) / 1000

标志flag

flagW = ndvi3g – rounddown(ndvi3g / 10) * 10 + 1

(注意栅格运算时,操作符之间是必要有空格的。)

标志含义

The meaning of the FLAG:

    FLAG = 7 (missing data)

    FLAG = 6 (NDVI retrieved from average seasonal profile, possibly snow)

    FLAG = 5 (NDVI retrieved from average seasonal profile)

    FLAG = 4 (NDVI retrieved from spline interpolation, possibly snow)

    FLAG = 3 (NDVI retrieved from spline interpolation)

    FLAG = 2 (Good value)

    FLAG = 1 (Good value)

由于Arcgis需要多个操作,建议用Matlab或别的编程语言自己写点代码来处理。

删除StatPress记录

StatPress是个不错的wordpress统计插件,遗憾的是作者没有持续更新,卸载时只能删除安装的文件,而不能删除数据库里的历史记录。

在statpress的options里可以设置删除时间为一个月,可以将老于一月的记录删除。但往往我们想删除掉全部的数据。这时我们可以对statpress的代码进行必要的更改。

在wordpress控制面板里的plugins找到statpress,点击edit进入代码。查找(按Ctrl+F)

// Auto-delete visits if…

可以看到类似于 

$results =     $wpdb->query( “DELETE FROM ” . $table_name . ” WHERE date < ‘” . $t . “‘”);

的句子。我们在这里有一个小trick,在此句之上,添加比如,

$t=gmdate(“Ymd”,strtotime(‘+1 day’));

点击保存或Update File。

然后de-activate再activate,从overview里可以看到历史数据被删除(刷新需要一点时间)。此后我们再将statpress卸载,数据库冗余数据基本就很少了。

当然更好的方法是增加合适的代码删除整个statpress增加的表。可以参考iri_StatPress_CreateTable 函数内容。

发布自己的视频/网址到微信朋友圈

1. 在自己的Wordpress博客创建视频帖子,比如 “朵朵钢琴课毕业录像”

Image

WordPress内置支持视频,可以使用短代码 xxx 也可以直接把视频网址放到帖子里,会自动转为播放器代码。

由于iphone等不支持flash,所以视频如果是flv格式(优点是文件小),需要转为mp4等格式。这时可以考虑以下短代码:

[video mp4="xxx.mp4" flv="xxx.flv"]

wordpress会自动选择合适的格式进行播放。

2. 通过在线二维码创建视频帖子的二维码,比如 http://cli.im/text

3. 打开微信,扫描二维码,这时视频帖子将在微信里被打开,点右上方的省略号,找到分享到朋友圈 (share to mements),即可以分享自己的视频帖子。

注意这里的关键是二维码,微信通过扫描二维码便可以分别在朋友圈或者朋友间分享二维码里包括的网址。

商州南萌萌治病捐款纪录

在南姓qq群”天下南姓第一群”看到商州南琼的信息,称一南姓小伙南萌车祸重伤,家庭困难需要经济援助,并给了一个发布在华商网上的求助帖链接:http://bbs.hsw.cn/read-htm-tid-6730079.html。与群主南国峰等人大致商量了一下,决定先核实,然后在群内倡议捐款。

7月12日在群里碰到商洛南懿珂,我请求他是否去医院核实。懿珂爽快答应下来,第二天就过去医院和他们的村子,翻拍了病历、南萌在医院的情景以及他们的困难救助申请书(应该是向政府部门的)等。

懿珂告诉我,28岁的南萌现在商洛中心医院,因为伤着大脑,人还昏迷,显得很瘦弱,每天必须打吊瓶和血浆,现在他母亲和妻子轮流照顾。家在山区,有爷爷和奶奶、弟弟和妹妹。爷爷奶奶年逾八十,身体不好。弟弟有慢性障碍性贫血,隔些时间需要输血。妹妹在外打工,以前妹妹汇寄回来照顾二哥,现在大哥出事,她回来照顾家庭。

谢谢懿珂,这些信息核实了华商网“南小凯”的求助信。可以想象这个普通的家庭已经负债累累,陷入绝望。据华商帖子,当地村委会为他捐款万余元。但还远不够手术费。

国峰当即在群里发起捐款倡议,公布他的帐号,大家有两个捐款途径,邮局汇款给他,或者通过支付宝给他。

6221502240000003096中国邮政储蓄银行,抚顺中央大街支行,孟令娟
支付宝[email protected], 孟令娟
银行汇款后请短信通知13841358110, 南国峰
已经停止,请勿再捐至以上帐户

因为有此前为南氏宗族事故捐助(2011年4月8日)的经验,一切驾轻就熟。暂定的方案是捐款统一到国峰处,交给南萌萌家属,拍下交接和家属收据照片。这些照片和捐款名单均在群相册公示,同时也会在我的个人博客里代为公示。

国峰的倡议得到群友的热情响应,有口头先期承诺,也有立即支付宝转帐的。感谢大家,真正感觉到象一家人一样。也许我们的微薄援助远远不够减缓南萌家的压力,但我想他们能感觉到素不相识的我们的这种感情。这个QQ群不仅是聊天,也是大家交流互助的平台。

此次活动已经于7/25结束,一共62人次捐款总数17116元。一个好消息是,南萌萌已于近日出院。(Update: 7/27)

惊悉亲人遭车祸,
十指连心痛心窝。
网群一呼齐踊跃,
纷紛解囊犹输血。
精神可佳尽绵薄。
浓浓血情寄重托;
但愿萌萌发活力,
身体早曰得康复!

——南国焱(江西樟树)

捐款名单:

Continue reading

XP停止支持后仍有大量人在继续使用

Windows XP是迄今微软最成功的操作系统,服役长达13年,在2014年4月8日正式停止服务。但国外调查表明,冒着停止服务的风险,仍有超过1/5的商用机器还是使用着XP (链接)。4/1前的调查表明有25%的个人机器(PC)使用XP(链接)。 NetMarketShare根据15262个合作伙伴表明,在14年5月,仍有超25%在使用XP (链接)。

Image_thumb[1]

图  NetMarketShare调查的操作系统使用情况 (2014年5月)

我大概调查了我初中、高中两个班同学(现在35+年龄段,主要从事商业、教育、事业单位或公务员)使用XP的情况,40人左右里有6人还在使用XP。约占15%。

需要说明这个调查并不科学,我没有认真的去设计。但也许可以给大家一个感性认识。

微软停止支持后,国内360安全公司弄出了一个XP盾甲,据说使用的人还少。但360其实是靠流氓软件起家的,所以无法知道这个东西里面藏了什么,也许不用还要安全一些。希望只是我的偏见。另外,因为XP是商业软件,除了微软本身,别家包括360根本没有能力替代微软修补XP可能存在的系统安全漏洞。

我另外收到一个来自科技网的email,也说明了仍然不少部门和人员在使用XP,所以迫使有关部门协调微软,继续为中国政府和重要部门提供后续的XP补丁。

这封信的部分内容转帖如下:

尊敬的用户:

      您好!

      鉴于微软公司已于4月8日正式停止对Windows XP操作系统的支持服务,为降低Windows XP操作系统停止服务后的安全风险,国家相关部门协调微软公司提供了2014年6月的Windows XP操作系统补丁,仅供中国政府部门和重要信息系统用户使用。目前我们已获得补丁文件,请您根据需要下载使用。

      文件名:201406xp补丁.zip

      文件大小:24.57MB

      下载地址:(应要求删除地址链接,不对外扩散

      请根据所下载的压缩包中的安装说明文档进行补丁安装,并注意不要对外扩散。如果您有文件获取问题和安装问题,请邮件或电话联系我们,谢谢。

      邮箱:(删除邮箱地址)       电话:(删除电话信息)(工作时间) (删除电话信息)(其他时间)

中国科技网网络安全应急小组

2014-6-19

(删除签名信息)

这是很有意思的一个信,我认真核对了信件来源及下载地址,是可靠无疑的。这说明尽管微软发布声明说停止了对XP安全支持,但事实上仍然微软有些人在继续维持XP安全补丁的事宜。

如果您还在使用XP,尽管我按邮件要求不对外扩散,无法给大家提供,但现在网络这么发达,事实上你也是可以获取到这个补丁的,至少还能够维持一些时段内安全使用XP。但还是建议您尽管切换到Windows 7。(据说Windows 8有安全上的问题,不推荐安装)

Sandboxie lifetime license 终生许可 再次发放

sandboxie被Invincea收购后,取消了终生许可,目前个人用许可每年15欧元(~127RMB)。不过最近sandboxie搞giveway的活动,即使没有中奖,但放出了购买lifetime license的许可。前阵子有20%的打折,是截止5月16日。我们是赶不上了,但现在还可以购买没有打折的终生许可。地址在:

https://www.cleverbridge.com/296/?scope=checkout&cart=28154&coupon=GJP-TBR-BL5

价格是321人民币,约53美金。

有需要的可以购买,也许有点小贵,但绝不会后悔的。

多元回归 / 多元拟合matlab实现

MatLab内置了很多拟合的功能,比如分布、指数、多项式等拟合。对应的函数是fit。基本用法是:

cfun = fit(xdata, ydata, libname)

其中xdata是自变量x序列,ydata是因变量,libname 是模型名,比如’power1’是 y= a* x ^b 形式,Matlab内置了很多模型,可以从帮助文档里看到。对于这些拟合,MatLab有个图形工作叫 cftool,在命令行里敲入可以打开。

然而我们有时候需要做二元、多元拟合。

二元拟合,即使用模型 z = f(x, y),在MatLab也叫面拟合 (Surface fitting),有专门的图形工具 sftool,命令敲入sftool可以打开。

但如果是多元拟合,这时我们需要懂一点代码的工作。

其实不管一元、二元,代码级别是一致的。使用的都是fit命令。

对于使用 y = a* x^b这样内置的指数一元拟合,我们可以看到其libname 叫’power1’。所以采用以下命令:

cfun = fit(x, y, ‘power1’)

即从已知x、序列是得到拟合函数。coeffvalues(cfun)可以得到拟合参数,即这个例子里的a、b。如果还需要得到拟合指标,使用[cfun gof] = fit(x,y, ‘power1’),返回的gof包括了R squre、RMSE等多种指标。

对于二元拟合,比如 使用 z= a + b*sin(m*pi*x*y) + c*exp(-(w*y)^2模型进行拟合,采用类似的代码:

ft = fittype( ‘a + b*sin(m*pi*x*y) + c*exp(-(w*y)^2)’, ‘indep’, {‘x’, ‘y’}, ‘depend’, ‘z’ );

opts = fitoptions( ft );

opts.Display = ‘Off’;

opts.Lower = [-Inf -Inf -Inf -Inf -Inf];

opts.StartPoint = [0.741864193163802 0.681571628918889 0.811658042300087 0.275716137656952 0.738979809065491];

opts.Upper = [Inf Inf Inf Inf Inf];

opts.Weights = zeros(1,0);

[fitresult, gof] = fit( [x, y], z, ft, opts );

其中fittype自定义了需要的二元函数。其中’indep’指明自变量、’depend’指明因变量。即通过fittype构造一个二元拟合模型,说明其中的自变量和因变量,定义拟合的选项,这些选项经常可以不要专门指定,采用默认的即可。然后使用 fit的扩展形式得到拟合函数。

对于多元拟合,一个函数是 regress多元线性回归,另一个是nlinfit 非线性回归。两者都在statistic toolbox里。regress的基本形式是

b = regress(y, X)

其中X是多个自变量,y是因变量。

对于多元非线性拟合,可以使用nlinfit,基本形式是:

beta = nlinfit(X,Y,modelfun,beta0)

其中modelfun构造非线性多元模型,比如以下例子:

beta = nlinfit(X,y,@hougen,beta0)

使用一个hougen函数作为拟合模型,这个函数可以自行构建。

Matlab也提供了非线性多元拟合的图形化工具nlintool。

此外类似的还有 fitnlm函数提供了类似nlinfit的非线性回归,用法与nlinfit类似,但对返回结果进行包装,可以更简便的使用诸如predict等函数对非线性模型进行预报计算。

Image(1)

Plant vs Zombie 2的iOS多设备同步

Image

pvz 2还是一如既往的好玩精美,希望能够同时在iphone和ipad上玩。pvz 2支持icloud的同步,包括game center状态和进度的同步。

我在两台ios 7的设备上同步成功,但如果其中一台是 ios 6的ipad上只能同步成功game center状态而无法同步进度。所以尽管pvz 2开发团队没有明说必须同样的ios版本,但事实上可能需要同样的ios版本。

步骤描述如下:

1. 在iphone (ios 7)上从apple store里下载pvz 2 新安装。

* 注意我只测试了pvz 2的英文版本,对于植物大战僵尸2的中文版 没有测试,但应该也是可行的。

2. 在iphone 上进入settings > icloud > document and data 使之打开。

* 在document and data下面应该可以看到僵尸的图标(没有文字,应该是个小bug),确认此项也是打开状态

* 与icloud下的 storage & backup无关,此项可以是关闭状态。

3. 在iphone上,打开 pvz 2,填入年龄和名字比如dd。开始玩游戏。

* pvz2 会自动把信息往icloud里上传,只需要等一些时间即可。

4. 现在切换到ipad (ios 7)。安装同一个 pvz 2版本。

* 注意ipad 也必须是以同一个apple id 登录进game center。如果不是同个id,需要把ipad的game center id切换到iphone的gc id上来。

* game center id一般与apple store 的id 一致。

5. 在ipad 上重复步骤2,打开ipad上的icloud > document and data设置。

6. 在ipad上打开 pvz 2,填入年龄和名字比如hh。稍等,点名字右边的人物图标,在弹出的列表里可以看到来自iphone的dd。

* 来自iphone 的用户dd即包括iphone的进度。

* 注意如果pvz 2已经打开,要先将之从后台关掉,然后重新打开,这时pvz 2 会有个读取进度的起始画面。

Continue reading

域名迁移

域名nanzt.info 在购买国外空间时一并注册,现在因为不再使用那个空间,所以打算迁移出来,换句话说,从原空间提供商 hostmonster.com 迁移到 现 namecheap.com。

namecheap是很有名的域名注册商。迁移的第一年有打折的价格。

整个迁移过程大概在15分钟内完成。

1. 准备工作

1.1 去hostmonster域名管理界面取消locked 状态,即允许进行域名迁移

1.2 从hostmonster得到 epp码。

1.3 从hostmonster里去掉隐私保护(如果有的话)

1.4 确认有nanzt.info 管理邮箱的访问权,这十分重要!

2. 注册namecheap

2.1 从namecheap注册一个帐号

2.2 购买一年的domain transfer费用,约9.66美金。(一般可以找到打折码)

3. 按namecheap domain transfer步骤进行迁移

按步骤一步一步下来,直到结束。注意填入 epp码。

4. 检查nanzt.info注册的管理邮箱

4.1 有从namecheap发来的要求授权的信,进入链接,选择授权。如果不授权,会导致迁移失败。

4.2 有从hostmonster发来的要求授权的信,进入链接,选择授权。此授权信如果不主动去点,将在7天后自动授权。

5. 成功后进入namecheap的域名管理界面

5.1 lock此域名

5.2 namecheap提供whoisguard免费功能,用上。

5.3 检查域名解释器 (dns)是否正确。

我使用 freedns的免费域名解释。

namecheap提供了自己的nameserver,所以点击 transfer DNS back to us,然后配置dns records。

btw,namecheap提供的配置界面十分简洁强大。

至此迁移完成,约一刻钟。

Image