# Task26Oee **Repository Path**: wangfengdev/task26-oee ## Basic Information - **Project Name**: Task26Oee - **Description**: A very simple demo of Open Earth Engine. This project was first created by the request of SMM on 2024/4/5. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-08 - **Last Updated**: 2026-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 生成JAR 使用 Maven -》 Task26Oee -》 install 结果在 target 目录下 Task26Oee-0.0.1-SNAPSHOT.jar 由于这个项目使用了springboot,所以不能使用artifacts的方式导出jar。 ## 依赖项 使用gdal3.8 读取COG tiff数据,由于我是在u18下编译的,所以,对于u18docker,先安装gdal-bin,然后拷贝gdal38和proj6下面的so文件到容器就行了。 ## 启动 Java 服务 拷贝 libPeTiler.so libHBasePeHelperCppConnector.so 到 /usr/lib 目录下 安装 gdal3.x 运行库。 执行 java -jar Task26Oee.jar config.json ## 样例WMTS URL http://localhost:8881/test-cmpas/wmts/?layer=layer&style=default&tilematrixset=ms_14&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix=0&TileCol=0&TileRow=0 test-cmpas是脚本名称,对应script目录下 test-cmpas.js 文件。 layer名称随便写。 ## 样例剖面分析 http://localhost:8881/profile/line?lon0=100&lat0=29&lon1=140&lat1=29&styleid=radar3d&datetime=20251204235400&pdtname=radar3d&format=png ## 产品名称到产品文件的映射 (1)cog_dir 目录 该产品在 productinfo.json中的对像,hTableName == "COG",根据产品名称,比如 CMA/TMAX , 在目录 {cog_dir}/CMA/TMAX 下载找到对应 {datetime}.tif 的文件。 举例 pe.Dataset("MODIS/NDVI",20200101000000); 该代码会读取下面路径的文件: {cog_dir}/MODIS/NDVI/20200101000000.tif , 如果没有文件返回null对象。 (2)cog_dir + filenameTemplate 为了避免单一目录下文件过多的问题,这里增加了 filenameTemplate 属性,该属性通过 filenameTemplate 和里面的预定义变量:{YYYYMMDD},{YYYY}, {MM}, {DD}, {HH}, {mm}, {ss} 将传入的datetime字符串,用来拼接出这个文件路径。 注意这个规则优先于(1),如果没有该字段或者该字段为空字符串"",那么使用(1)规则拼接文件路径。 举例 pe.Dataset("terra/modis",20250101000000); 其对应的 filenameTemplate = "TERRA/terra_modis_{YYYYMMDD}_{HH}{mm}_cog.tif" , 那么拼接的文件路为 {cog_dir}/TERRA/terra_modis_20250101_0000_cog.tif 。 这个规则使得 pdtname定义更加灵活,不必严格显示与子目录一致,同时具体时间串到文件名的映射更为灵活. (3)COGS 目录 hTableName == "COGS:COG1" , hTableName使用:分割产品存储表示,前面COGS表示产品根目录在 config.json 中 cogs 属性中得到了定义. 后面 COG1 表示该产品的具体根据路径是 cogs 数组中命名为 COG1 中对象的定义path. 比如 config.json 定义了 cogs:[ {cogid:"COG1",path:"/home/Downloads"} , ... ] , 产品名假设为 JAXA/H9 , pe.Dataset("JAXA/H9",20250202000000); 那么读取的文件为 /home/Downloads/JAXA/H9/20250202000000.tif 这个文件. (4) COGS + filenameTemplate 相对(3)的规则,该规则优先通过 filenameTemplate 拼接处根路径下的文件路径. 根据路径的选择与(3)一致.