Windows环境使用OpenVPN共享上网

2010年12月30日星期四 0 评论
Windows环境使用OpenVPN共享上网

背景:局域网内两台计算机 A(192.168.0.1)能上网, B(192.168.0.4)不能上网。A、B能相互ping通
目标:B通过VPN连接A,达到共享上网的目的

0. VPN的用途
VPN很多时候都是用在公网环境下,公网上两台计算机通过VPN连接,从而达到互访内网的目的。
局域网共享上网的方法很多,用VPN属于相对繁琐的一种。

1. 使A、B通过VPN互通
(a)在A、B上都安装OpenVPN
(b)配置。
• 虽然网站上的文档组织得有些乱,但可以直接从安装路径下获得很多帮助信息。
• 安装成功后,OpenVPN GUI就可以运行了,但会提示config文件夹下需要config(.ovpn)文件和key/certificate(.crt&.key)文件。
• config文件可以从sample-config文件夹获得,A机使用server.ovpn,B机使用client.ovpn。
• 证书的生成可以在easy-rsa获得帮助。server和client都需要相应的证书,而所有证书都需要在server机上生成。
注意:生成证书时需要输入一些信息,其中,Common Name不能有重复。
• 生成完后在easy-rsa/keys文件夹里会有一堆文件。在server上把ca.*, server.*, dh1024.pem拷贝至config文件夹。ca.*, client.*拷贝至client计算机OpenVPN安装路径下的config文件夹。
• client.ovpn中设定
    remote server-ip server-port
做完以上步骤,A、B即可通过VPN互通。此部分配置还可参考:
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
http://blog.chinaunix.net/u/2389/showart_73461.html

2. 修改A的路由配置,使Internet请求都转向从VPN通过
这一步的实现方法有很多种,我采用的是在server机的server.ovpn中,取消注释:
    push "redirect-gateway def1 bypass-dhcp bypass-dns"
这句话的意思是所有客户机的默认网关都将被设为VPN,即所有网络流量都会从VPN通过,bypass-dhcp并且bypass-dns。这条设置是推送到client上的,它会覆盖(Override)client的网络配置,但并不会修改原来的网络配置。

p.s. 本例只是考虑最简单的使用VPN实现共享上网的情况,没有讨论安全性,服务器负荷等功能。OpenVPN功能强大,继续学习

什么是BELMANIP

2010年12月8日星期三 0 评论
 BELMANIP[1]的全称是the CEOS-Benchmark Land Multisite Analysis and Intercomparison of Products(BELMANIP)。简单的说它是一个地面观测站点的集合,这些站点按照一些指标筛选,以作为对卫星遥感地表参数产品(fAPAR, fCover, albedo, LAI)进行质量评价的地面基准。

BELMANIP的站点来源
BELMANIP的站点有4个来源:DIRECT,FLUXNET,AERONET,COMPLET。
1. DIRECT:为了检验遥感地表参数产品,而专门进行观测的地面站点。包括CEOS/LPVBigfootVALERI等。共有114个站点,经过筛选后入选BELMANIP的有100个站点(这里所列站点数是文献[1]中所述,最新版BELMANIP会有不同,下文同)
2. FLUXNET:碳通量观测网络,共有266个站点,筛选后有188个。
3. AERONET:气溶胶观测网络,筛选后有52个站点。
4. COMPLET:以上三个网络的站点分布不够均匀,对不同的地类存在over-representing(相对站点数偏多)和under-representing(相对站点数偏少)的情况。为克服以上不足,增选了76个站点。

BELMANIP的站点筛选标准
1. 以站点为中心8*8 km2范围内水体所占部分小于25%。
2. 站点与其它站点距离在20 km以上。
3. 使用ECOCLIMAP的全球分类对站点的代表性进行评价。所选站点应能反应相应地类在全球范围的分布(主要是纬度上的)和覆盖比例。

BELMANIP的意义
1. 卫星遥感生成的地表参数产品越来越多,如何对它们进行质量评价是个难题。
2. 将地面实测值升尺度后与遥感产品进行对比是一种方法,但地面实测数据的获取代价较高,而且相对于遥感产品的时空覆盖范围,地面实测数据远远不够。
3. 通过不同遥感产品的相互比较,再结合地面实测值是一种可行的方法[2]。BELMANIP就是提供不同遥感产品进行相互比较的一个基准数据集,具体实施方法参考文献[2]。

相关文献
[1] Baret, F., J. T. Morissette, et al. (2006). "Evaluation of the representativeness of networks of sites for the global validation and intercomparison of land biophysical products: Proposition of the CEOS-BELMANIP." Ieee Transactions on Geoscience and Remote Sensing 44(7): 1794-1803. doi:10.1109/TGRS.2006.876030 

什么是Bigfoot

0 评论
Bigfoot是一个用于验证陆面遥感产品的地面站点集合,其它同类项目还有VALERIFLUXNET等。

Bigfoot包括9个地面站点,它们是从The EOS Land Validation Core Sites按照特定标准筛选的结果。这9个站点是:

利用这9个站点的地面观测,提供land cover, LAI, fAPAR和NPP这几种遥感产品的地面验证数据。

Bigfoot地面LAI的获取方法有直接和间接两种。直接获取的方法是:在收获季节对非林地站点的植物采用破坏式的测量,对林地植物采用生长测定法(与树的直径相关)。间接获取方法是使用LAI-2000进行测量。不同植物类别的物候特征不一样,因此每年进行的地面观测次数也不同。对林地类每年测3次,对其它地类每年测4-6次。

Bigfoot有一套自己的地面部点数据处理方法,对LAI的验证通过ETM+作为中间尺度。数据可以在ORNL获取。Bigfoot提供的实测LAI包括均值和标准差,目前的验证方法仍是直接比较。

Matlab读写HDF-EOS文件

2010年11月18日星期四 0 评论
最近才发现Matlab集成了读写HDF文件(包括HDF-EOS文件)的功能。

HDF-EOS的三种数据类型及其对应的Matlab函数如下:
grid(GD) - hdfgd
point(PT) - hdfpt
swath(SW) - hdfsw

此外,Matlab还提供了GUI的HDF文件导入工具,可以通过 “hdftool”命令启动。

hdfgd的帮助需要用 “help hdfgd" 查看。
hdfgd可以认为是HDF-EOS库中所有Grid函数的一个共用接口,即通过hdfgd来调用不同的Grid函数。
以下是读取一个HDF-EOS文件的代码示例,可以看出完成相同的任务,Matlab比C/C++所需代码量少得多,当然执行效率会不如C/C++。

hdf = 'MOD15A2.A2006361.h10v04.005.2008134052818.hdf';
fileid = hdfgd('open', hdf, 'DFACC_READ');                 %对应GDopen
gridid = hdfgd('attach', fileid, 'MOD_Grid_MOD15A2');      %对应GDattach
[data, status] = hdfgd('readfield', gridid, 'Lai_1km', [], [], []);  %对应GDreadfield
hdfgd('detach', gridid);  %对应GDdetach
hdfgd('close', fileid);   %对应GDclose

全球LAI产品(Global LAI Products)

2010年11月14日星期日 0 评论
文献[1]对4种覆盖全球的LAI产品进行了综合评价MODISCYCLOPESECOCLIMAPGLOBCARBON,如下表所示。其它还有一些全球LAI产品,如POLDERLand-SAF。还有一些区域性的LAI产品,如加拿大范围的LAI产品。这些产品中,既有基于物理模型,实现时采用查找表(LUTLook-Up Table)或神经网络;也有基于LAI与植被指数(VIVegetation Index)统计关系的。

LAI产品名
时间分辨率
空间分辨率
年份
传感器
产品生成算法
MODIS
8
1km
2000-
MODIS
主算法:3维辐射传输模型(LUT实现)
备用算法:基于NDVI的经验关系
CYCLOPES
10
1km
1999-2007
VEGETATION
1维辐射传输模型(神经网络实现)
ECOCLIMAP
1
1km
climatology
AVHRR
基于NDVI的经验关系
GLOBCARBON
1
0.25°, 0.5°, 10km
1998-2007
AATSR, ATSR, MERIS, VEGETATION
基于VI的统计关系

(climatology的意思是:the mean state based on a historical set of observations)

以上四种产品的相互比较及与地面实测数据的比较[1]表明,MODIS和CYCLOPES对真实地表及其空间差异的表达,LAI时间序列特征及年份间的差异都优于ECOCLIMAP和GLOBCARBON。但另一方面,MODIS和CYCLOPES的反演成功率却低于ECOCLIMAP和GLOBCARBON,因此MODIS和CYCLOPES存在较多缺失值,时间序列不够连续,影响了产品的应用。

事实上,从上表也可以看出,目前只有MODIS的LAI产品在持续发布,其它产品处于产品评价和算法改进过程中。

使用HDF库读写HDF4文件(C/C++)

2010年8月27日星期五 0 评论
一、引言

Hierarchical Data Format (HDF)是由HDF Group开发维护的一种开放文件格式,目前HDF有HDF4和HDF5两个版本,它们相互并不兼容。相应的HDF-EOS也有两个版本,基于HDF4的叫做HDF-EOS2,基于HDF5的叫做HDF-EOS5,MODIS数据产品使用的是HDF-EOS2文件格式。HDF Group提供了C/C++,Fortran,Java库以对HDF文件进行读写操作HDF4最新版本号是4.2.5,并针对多种平台进行了预先编译。本文讨论如何用官方编译好的Windows平台的C/C++库中的SD API对HDF4文件进行读写操作。

本文参考以下三个文档,均可从HDF Group网站获得
HDF4 User’s Guide
HDF4 Reference Manual
sd_rd.c

二、HDF文件格式

图片引自《HDF4 User’s Guide》
如上图所示,一个HDF文件中可以有6种数据结构:Raster Image,Palette,Scientific Data Set,Annotation,Vdata和Vgroup。与这六种数据结构相应的有5类API:

SD API - 对Scientific Data Set进行读写操作
VS API - 对Vdatas进行读写操作
V API - 对Vgroups进行读写操作
GR API - 对Raster Images和Palettes进行读写操作
AN API Stores - 对Annotations进行读写操作

说到这里则有必要提及两个现成的HDF查看软件:HDF Explorer和HDFView,HDF Explorer是私有软件,而HDFView是由HDF Group开发维护的。HDF Explorer默认支持HDF-EOS,HDFView则需要安装HDF-EOS_Plugin才能获得较好的HDF-EOS支持。下面是HDFView截图。


在HDFView中查看HDF文件中DataFields的Metadata
红框标示了数据集的类型和数据的类型

三、例子
本例子读入一个MOD15A2 HDF文件的LAI数据(uint8),将其除以10(float)再输出为新的HDF文件。在程序中使用数组来存储原始LAI数据和除以10的LAI数据,数组类型需要与相应HDF文件中指定的数据类型严格对应,否则会发生数据读写错误。

完整的程序(ReadWrite_SDS.c),makefile,数据文件MOD15A2.A2006361.h10v04.005.2008134052818.hdf。需要链接的库文件可以查阅下载下来的HDF库中的INSTALL_WINDOWS.txt。在本例子程序中,只链接了hd425m.lib和hm425m.lib,这可以从makefile中看出来。

读入HDF文件的代码如下:
/* Read data to LAI_MODIS array */
sd_id = SDstart("MOD15A2.A2006361.h10v04.005.2008134052818.hdf", DFACC_READ);
sds_index = SDnametoindex(sd_id, "Lai_1km");
sds_id = SDselect (sd_id, sds_index);

输出HDF文件代码如下:

/* Create and open the file and initiate the SD interface. */
sd_id = SDstart("MyMOD15A2.hdf", DFACC_CREATE);
sds_id = SDcreate(sd_id, "LAI_divided", DFNT_FLOAT32, rank, dims);
istat = SDwritedata(sds_id, start, NULL, edges, (VOIDP)LAI);

MODIS产品笔记整理

2010年8月2日星期一 0 评论
之前将笔记零碎的记录在Google Docs里,现在把它整理一下。

一、关于MODIS命名

我们知道,Terra和Aqua卫星都搭载有MODIS传感器,在MODIS产品名和文件名中则反映了数据来源。

MOD开头表示是用Terra卫星数据生成的产品,
MYD开头表示是用Aqua卫星数据生成的产品,
MCD开头则表示是结合了两颗卫星数据合成的产品,字母C表示Combined。

完整的MODIS陆面产品列表参考以下网址:

二、关于数据格式

一般使用的MODIS数据产品有两种:

.hdf文件:其文件扩展名为.hdf,但严格的说,它的文件格式是HDF-EOS。HDF-EOS是HDF的扩展,包含了geo-location,投影信息等。以.hdf文件提供MODIS的数据产品,每个文件就是经过Sinusoidal Tiling System分片后的一个tile。一个tile覆盖1200km*1200km。.hdf文件的陆面数据产品可以从https://lpdaac.usgs.gov获得。

.txt文件:MODIS数据产品的子集,覆盖Selected Sites(一般是通量站点)7km*7km的大小。.hdf文件是根据产品的发布时间,如MOD09A1每个tile每8天提供一个HDF文件,而.txt则是一个站点一个产品一个文件,因此.txt文件可以更方便的得到时间序列。.txt文件的陆面数据产品可以从http://daac.ornl.gov获得。

三、 关于QC或是QA

MODIS每种数据产品都提供了质量控制(QC: Quality Control)或质量保证(QA: Quality Assurance)字段。QC信息是像元级的,标识了数据质量的高低,用户根据实际需求,使用QC信息筛选出质量足够好的数据。下面分别对MOD15A2和MOD09A1产品的QC字段进行说明。

• MOD15A2产品有两个QC字段:FparLai_QC和FparExtra_QC,FparLai_QC(8位)的描述如下:

Bit No.
Parameter Name
Bit Comb.
FparLai_QC
0MODLAND_QC bits0Good quality (main algorithm with or without saturation)
1Other Quality (back-up algorithm or fill values)
1Sensor0Terra
1Aqua
2DeadDetector0Detectors apparently fine for up to 50% of channels 1,2
1Dead detectors caused >50% adjacent detector retrieval
3–4CloudState (inherited from Aggregate_QC bits {0,1} cloud state)000 Significant clouds NOT present (clear)
011 Significant clouds WERE present
102 Mixed cloud present on pixel
113 Cloud state not defined, assumed clear
5–7SCF_QC (five level confidence score)0000, Main (RT) method used, best result possible (no saturation)
0011, Main (RT) method used with saturation. Good,very usable
0102, Main (RT) method failed due to bad geometry, empirical algorithm used
0113, Main (RT) method failed due to problems other than geometry, empirical algorithm used
1004, Pixel not produced at all, value coudn't be retrieved (possible reasons: bad L1B data, unusable MODAGAGG data)
(此表引用自:https://lpdaac.usgs.gov/lpdaac/products/modis_products_table/leaf_area_index_fraction_of_photosynthetically_active_radiation/8_day_l4_global_1km/mod15a2

MOD15 ATBD中指出:The key indicator of retrieval quality of the LAI/FPAR product is SCF_QC bitfield.

MOD09A1产品也包含了两个QC字段:500m Reflectance Band Quality和500m State Flags,500m Reflectance Band Quality(32位)的描述如下:


Bit No.
Parameter Name
Bit Comb.
Sur_refl_qc_500m
31adjacency correction performed1yes
0no
30atmospheric correction performed1yes
0no
26–29band 7 data quality four bit range0000highest quality
1000dead detector; data interpolated in L1B
1001solar zenith >= 86 degrees
1010solar zenith >= 85 and <>
1011missing input
1100internal constant used in place of climatological data for at least one atmospheric constant
1101correction out of bounds pixel constrained to extreme allowable value
1110L1B data faulty
1111not processed due to deep ocean or clouds
22–25band 6 data quality four bit rangeSAME AS BAND ABOVE
18–21band 5 data quality four bit rangeSAME AS BAND ABOVE
14–17band 4 data quality four bit rangeSAME AS BAND ABOVE
10–13band 3 data quality four bit rangeSAME AS BAND ABOVE
6–9band 2 data quality four bit rangeSAME AS BAND ABOVE
2–5band 1 data quality four bit rangeSAME AS BAND ABOVE
0–1MODLAND QA bits00corrected product produced at ideal quality all bands
01corrected product produced at less than ideal quality some or all bands
10corrected product not produced due to cloud effects all bands
11corrected product not produced due to other reasons some or all bands may be fill value [Note that a value of (11) overrides a value of (01)].
(此表引用自:https://lpdaac.usgs.gov/lpdaac/products/modis_products_table/surface_reflectance/8_day_l3_global_500m/mod09a1

在我的工作中,只使用了MODLAND QA bits来进行质量控制。

这里需要特别指出的是:在QC字段中第0位是低位,即最右边那一位。

四、 地表覆盖类型(Land Cover Type)数据产品MCD12Q1

MCD12Q1是结合了Terra和Aqua两颗卫星的数据生成的地表覆盖类型数据产品,时间分辨率1年,空间分辨率500m。
MCD12Q1中包含5种分类体系(classification schemes)的分类结果,5种分类体系如下:

  • Land Cover Type 1: IGBP global vegetation classification scheme
  • Land Cover Type 2: University of Maryland (UMD) scheme
  • Land Cover Type 3: MODIS-derived LAI/fPAR scheme
  • Land Cover Type 4: MODIS-derived Net Primary Production (NPP) scheme
  • Land Cover Type 5: Plant Functional Type (PFT) scheme


ClassIGBP (Type 1)UMD (Type 2)LAI/fPAR (Type 3)NPP (Type 4)
0WaterWaterWaterWater
1Evergreen Needleleaf forestEvergreen Needleleaf forestGrasses/Cereal cropsEvergreen Needleleaf vegetation
2Evergreen Broadleaf forestEvergreen Broadleaf forestShrubsEvergreen Broadleaf vegetation
3Deciduous Needleleaf forestDeciduous Needleleaf forestBroadleaf cropsDeciduous Needleleaf vegetation
4Deciduous Broadleaf forestDeciduous Broadleaf forestSavannaDeciduous Broadleaf vegetation
5Mixed forestMixed forestEvergreen Broadleaf forestAnnual Broadleaf vegetation
6Closed shrublandsClosed shrublandsDeciduous Broadleaf forestAnnual grass vegetation
7Open shrublandsOpen shrublandsEvergreen Needleleaf forestNon-vegetated land
8Woody savannasWoody savannasDeciduous Needleleaf forestUrban
9SavannasSavannasNon-vegetated
10GrasslandsGrasslandsUrban
11Permanent wetlands
12CroplandsCroplands
13Urban and built-upUrban and built-up
14Cropland/Natural vegetation mosaic
15Snow and ice
16Barren or sparsely vegetatedBarren or sparsely vegetated
254UnclassifiedUnclassifiedUnclassifiedUnclassified
255Fill ValueFill ValueFill ValueFill Value
(此表引用自:https://lpdaac.usgs.gov/lpdaac/products/modis_products_table/land_cover/yearly_l3_global_500_m/mcd12q1