- 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_DRIVER_PATH
外,还需要在环境变量里添加一个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需调用UtilsClass,编译前需将其保存至RasterClass同级目录下。
- 如需添加MongoDB数据库相关操作,RasterClass支持对MongoUtilClass的依赖,同样地,将其保存至RasterClass同级目录下,mongo-c-driver的相关配置请参阅MongoUtilClass库的相关帮助。
-
打开 “开始” -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio 命令提示(2010),以管理员方式运行,依次输入以下命令:
cd <path-to-RasterClass> mkdir build cd build ### 仅编译安装 ### cmake -G "NMake Makefiles" <path-to-RasterClass> -DCMAKE_BUILD_TYPE=Release nmake nmake install ### 编译Microsoft Visual Studio工程 ### cmake <path-to-RasterClass> nmake
-
对于“仅编译安装”操作,
RasterClass.exe
会自动安装在<path-to-RasterClass>\bin
目录下。 -
对于“编译Microsoft Visual Studio工程”,
RasterClass.sln
将保存在<path-to-RasterClass>\build
目录下。
对于Linux和macOS系统而言,操作与Windows类似,这里不再赘述。