Category Archives: Computers

GetMODIS: A tool to download MODIS data in a batched manner

GetMODIS
An effective tool to download MODIS data in a batched manner
批量多线程快速下载MODIS数据的工具
Author: Zhuotong Nan @njnu (giscn@msn.com)
Date: 1/18/2016

1. Specifiy parameters in the config.ini file upon your needs
the para names are well self-explanatory.
2. Run GetModis.exe

* Param “tiles” should be set for those datasets tiled such as MOD09GA;
and leave it blank or comment it out for datasets with no tiles such as MOD09CMG
* the format for multiple tiles:
“hTile,vTile”,”hTile,vTile”,”hTile,vTile”…
where hTile represent the horizontal tile no, and vTile the vertical tile no.
* set quietmodel to true if you dont like to see the download progress
* larger number of threads will generally increase the download speed. However too
many threads may cause your ip blocked. a value of no more than 10 is advised.

v1.0 1/18/2016
+ intial release

下载地址:百度云盘(Link)

Source codes are available upon request.

移除极长路径工具

名称: Remove Long Path
版本: v1.0 initial release
build: 2014.12.11
南卓铜 Zhuotong Nan (giscn@msn.com)
http://nanzt.info

本工具可以移除极长路径。这些路径在Windows资源管理器中无法被删除。目前有一些收费和免费的工具,作者在本机上测试了一个目录深度达1500以上的例子,这些已有工具要不效率低下,要不在运行过程中出现错误(弹出Stop working)。本工具可以有效工作在Windows 32位和64位。

使用方法:

1. 解压缩至一个目录下

2. 在资源管理器里,打开该目录(removelongpath.exe所在目录),按shift的同时点击右键,在弹出菜单里选择“在此打开命令窗口”

3. 在命令窗口里敲入removelongpath.exe,可以看到使用方法提示。

4. 命令格式是 removelongpath [longpath] {time_interval}

[longpath]指定要移除的目录,此目录以下的任何深度的任何子目录和文件均将被删除。如果路径包括空格,请使用双引号。

{time_interval}是删除每个文件或目录的间隔,在Windows下,过快删除将导致系统拒绝后续删除操作。单位是秒,默认是1秒,可以是任何数字甚至小数,比如0.5表示半秒。

例子:removelongpath .temp 0.5

将移除当前目录下的temp目录下的任何子目录和文件。

5. 命令执行时,需要按两次y,由于命令将删除指定下的任何内容,需要格外慎重。除y或Y以外的任何按键,会取消此命令的执行。

Tips:

1. 如果没有删除干净,可以多次重复使用删除。并试着延长设置更长的间隔时间。

当前版本的md5 sum:

4f46c34a349186d1bd8b6cd5085dabdb  removelongpath.exe
c4b4409f186da70fcf2bcc60d5f05489  libgcc_s_dw2-1.dll
dbda60d92e774b4acb3b1cd71f909426  mingwm10.dll
db57cd45846d1b6188412ed69f51eec0  QtCore4.dll

下载:removelongpath.b20141211.zip (百度云盘)

如需源代码,请联系作者。

^_^

Continue reading

奇虎360 google字体的问题

因为google font被国内封掉,使用360的代替google fonts (fonts.useso.com),详细见此帖子,但在chrome里总出现错误,导致google字体无法在后台显示。比如在是在,

http://nanzt.info/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=

出现 Cross-origin Resource Sharing Policy的问题,如图所示。

882516f0aa11711ce50d8907fc19b6ec

 

但如果切换成google fonts 的原始网址(fonts.googleapis.com),则没有这个问题,后台正常显示字体。

以上问题在ie里不出现。

这应该是 360本身的问题。强迫不管http还是https均使用科大的google字体,在 USESO_TAKE_OVER_GOOGLE插件的代码里做了如下简单修改。以上问题得到解决。

function useso_take_over_google_str_handler($matches)

{

$str = $matches[0];

/*if (!is_ssl()) {

$str = str_ireplace(‘//fonts.googleapis.com/’, ‘//fonts.useso.com/’, $str);

$str = str_ireplace(‘//ajax.googleapis.com/’, ‘//ajax.useso.com/’, $str);

} else {*/

$str = str_ireplace(‘//fonts.googleapis.com/’, ‘//fonts.lug.ustc.edu.cn/’, $str);

$str = str_ireplace(‘//ajax.googleapis.com/’, ‘//ajax.lug.ustc.edu.cn/’, $str);

/*}*/

return $str;

}

关于twentytwelve主题中使用google字体的问题

经Bruno网友的提醒,原来国内禁止访问google字体,我使用的主题twentytwelve默认是使用了google的open sans开源字体。

因为google字体的存在,博客网页在显示前试图访问googleapis.com网站,会延迟很长时间。怪不得此前有朋友反映很慢,我还以为是电信网访问科技网速度慢的问题(当然这也是慢的另一个原因)。

Bruno有相关的插件可以考虑,如这个地址:http://www.brunoxu.com/wordpress-google-fonts-plugin-removal-remove-google-fonts-references.html,可以很好处理各处使用google字体的情况。但也许有性能下降的担忧,同时过滤掉了google字体,默认采用的字体也许不是想要的。

我使用了Bruno的Useso take over Google插件,使用奇虎360缓存的google字体。该插件可以从wordpress.org的插件库里找到。作者主页地址是http://www.brunoxu.com/useso-take-over-google.html

Matlab科学数据处理:如何补上缺失的时间序列

Matlab科学数据处理:如何补上缺失的时间序列

Zhuotong Nan (南卓铜, giscn@msn.com)

问题提出

假设我们有一个时间序列文件,内容如下

286880 19480223 -5.7

286880 19480227 10.8

286880 19480229 7.7

286880 19480301 -15.7

286880 19480302 3.2

286880 19480303 7.7

286880 19480305 21.2

第一列是站点名,第二列是时间信息,第三列是温度值。时间并不连接,我们经常需要把时间补全,这些时间上的观测以缺失值(比如999.9)替代。即,我们希望是,

286880 19480223 -5.7

286880 19480224 999.9

286880 19480225 999.9

286880 19480226 999.9

286880 19480227 10.8

286880 19480228 999.9

286880 19480229 7.7

286880 19480301 -15.7

286880 19480302 3.2

286880 19480303 7.7

286880 19480304 999.9

286880 19480305 21.2

那么在matlab里要如何实现呢。

基本思路 Continue reading

移掉一个目录的版本控制

在桌面上checkout了一个svn文件,然后桌面被TotoiseSVN加上了版本控制。要想把一个目录的版本控制移掉,可以这样做:

1. 此目录中右键,从TotoiseSVN菜单里选取export。

2. export时选取此目录本身,如桌面。

这时会提示:

Image

选取第一个。

3. 搞定。

删除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 函数内容。

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)