- Raster I/O class based on GDAL and MongoDB (optional).
- 基于GDAL开源库和NoSQL数据库MongoDB的栅格数据读写类
- Author: Liangjun Zhu
RasterClass采用CMake进行跨平台代码管理,理论上,支持任何主流操作系统(Windows、Linux、macOS)和编译器(MSVC、GCC、Clang),可编译生成32位和64位程序(操作系统支持的前提下)。
目前测试环境配置采用GDAL-1.10.1+
,mongo-c-driver-1.5.0+
,测试系统及编译器包括:
值得一提的是,在64位系统下,可以编译32位或64位程序,此时需要注意对应的GDAL库和mongo-c-driver库都需要编译成64位才可。利用AppVeyor构建的CI测试即全部采用64位编译。
- RasterClass提供基本栅格数据的读取。
- RasterClass提供两种栅格数据读取结果:
- 二维矩阵方式,矩阵中包含
NODATA
值 - 一维数组,配合一个行列号索引的二维数组使用,该一维数组为栅格数据按行展开,并排除
NODATA
值。
- 二维矩阵方式,矩阵中包含
- RasterClass可单独调试,也可作为其他项目的基础类。
Windows下GDAL最方便的安装方式应该就是采用Tamas Szekeres's Windows GDAL binaries编译发布的版本。
-
具体安装请参考博客Installing-gdal-with-python-for-windows。
-
安装完成之后,除了
GDAL_DATA
外,还需要在环境变量里添加一个GDAL_DIR
,赋值为你的GDAL安装目录,如C:\GDAL
,以便CMake在编译时能够找得到GDAL依赖库。 -
为了方便将来程序能够找到GDAL的诸多动态链接库,建议新建
GDAL_PATHS
环境变量C:\GDAL;C:\GDAL\bin;C:\GDAL\bin\proj\apps;C:\GDAL\bin\gdal\apps;C:\GDAL\bin\ms\apps;C:\GDAL\bin\curl;
,并将%GDAL_PATHS%
添加至环境变量PATH
中。
以CentOS为例 (Take CentOS as example)
- 源码编译安装GDAL后,新建环境变量
export GDAL_ROOT=<GDAL_root_path>
, 如export GDAL_ROOT=/soft/share
。
macOS下推荐使用William Kyngesburye维护的Framework安装包,最新的为GDAL_Complete-1.11.dmg
。
-
GDAL将安装在
/Library/Frameworks/GDAL.framework
。 -
同时,测试python的GDAL包是否安装成功:
>>> import osgeo >>> osgeo.__version__ '1.11.4' >>> from osgeo import ogr >>> from osgeo import osr >>> from osgeo import gdalconst >>> from osgeo import gdal_array >>> from osgeo import gdal
- RasterClass采用CMake进行跨平台编译。
- RasterClass采用Google Test单元测试框架。
- RasterClass需调用UtilsClass,编译前需将其保存至RasterClass同级目录下。
- 如需添加MongoDB数据库相关操作,RasterClass支持对MongoUtilClass的依赖, 同样地,将其保存至RasterClass同级目录下,mongo-c-driver的相关配置请参阅 MongoUtilClass库的相关帮助。
- 所有单元测试代码统一存放在
test
文件夹下,并以Test_XX.cpp
格式命名。 - 通用编译命令
cd <path-to-UtilsClass> mkdir build cd build cmake .. -DUNITTEST=1 make ./test/UnitTests_Raster
- 强烈推荐CLion,直接打开RasterClass目录并在CMake Options中添加
-DUNITTEST=1
, 即可自动构建工程,方便且跨平台。