xingjinshuang
2024-12-30 6f57ce7a29ea730c2a55269d96df80117eac1163
@xingjs@20241230@新增sem数据格式相关的类和代码
已添加3个文件
132 ■■■■■ 文件已修改
src/main/java/com/se/simu/controller/SemFilesSimuController.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/service/SemFilesSimuService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/controller/SemFilesSimuController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package com.se.simu.controller;
import com.se.simu.service.SemFilesSimuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * SEM æ–‡ä»¶ SIMU æŽ§åˆ¶å™¨
 *
 * @author xingjinshuang@smartearth.cn
 * @date 2024/12/30
 */
@Api(tags = "SEM相关接口")
@CrossOrigin(origins = "*")
@RequiredArgsConstructor
@RestController
@RequestMapping("/api/v1/sem")
public class SemFilesSimuController {
    @Resource
    private SemFilesSimuService semFilesSimuService;
    /**
     * èŽ·å– INTRODUCE
     * 1、动态数据存储在DYNZAMIZERS表中,其中:
     * url:数据url
     * data:zarr数据,使用的是zarr的压缩存储格式。详见zarr的zipstore。
     * gmlId:与实体对象相关联字段(使用ENTITY表(实体表)中的UUID相关联)
     * <p>
     * zarr数据结构示例:
     * Grid相关的zarr:
     * /
     * |——depth (n,height,width)
     * |——time(n)
     * <p>
     * time存储时间序列
     * depth存储水深相关信息,三维数组,第一维为时间 ä¸Žtime相对应
     * æ•°ç»„长度n代表时间切片的个数
     * height,width代表栅格的长和宽
     * <p>
     * é™é›¨é‡ç›¸å…³zarr:
     * /
     * |——rainfall(n)
     * |——time(n)
     * <p>
     * time存储时间序列
     * rainfall å­˜å‚¨é™é›¨é‡ç›¸å…³ä¿¡æ¯ï¼Œä¸€ç»´æ•°ç»„,与time相对应
     * æ•°ç»„长度n代表时间切片的个数
     * <p>
     * <p>
     * 2、terrain的存储方式:
     * ç±»åž‹ä¸ºâ€+Terrain“
     * Entity中几何存储地形的外包框,使用纹理贴图存储地形tif转出的png图片。
     *
     * @return {@link ResponseEntity}<{@link Object}>
     * @throws Exception
     */
    @ApiOperation("0-sem介绍")
    @GetMapping("/introduce")
    public ResponseEntity<Object> getIntroduce() throws Exception {
        return ResponseEntity.ok(semFilesSimuService.getIntroduce());
    }
}
src/main/java/com/se/simu/service/Impl/SemFilesSimuServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.se.simu.service.Impl;
import com.se.simu.service.SemFilesSimuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.HashMap;
@Slf4j
@Service
public class SemFilesSimuServiceImpl implements SemFilesSimuService {
    /**
     * èŽ·å– INTRODUCE
     *
     * @return {@link Object}
     */
    @Override
    public Object getIntroduce() {
        String introduce = "1、动态数据存储在DYNZAMIZERS表中,其中:" + "url:数据url" + "data:zarr数据,使用的是zarr的压缩存储格式。详见zarr的zipstore。" + "gmlId:与实体对象相关联字段(使用ENTITY表(实体表)中的UUID相关联)" +
                "" + "zarr数据结构示例:" + "Grid相关的zarr:" + "/" + "|——depth (n,height,width) " + "|——time(n)" + "" + "time存储时间序列" + "depth存储水深相关信息,三维数组,第一维为时间 ä¸Žtime相对应" +
                "数组长度n代表时间切片的个数" + "height,width代表栅格的长和宽" + "降雨量相关zarr:" + "/" + "|——rainfall(n)" + "|——time(n)" + "" + "time存储时间序列" + "rainfall å­˜å‚¨é™é›¨é‡ç›¸å…³ä¿¡æ¯ï¼Œä¸€ç»´æ•°ç»„,与time相对应" +
                "数组长度n代表时间切片的个数" + "" + "" + "2、terrain的存储方式:" + "类型为”+Terrain“" +
                "Entity中几何存储地形的外包框,使用纹理贴图存储地形tif转出的png图片。";
        //return introduce.getBytes(StandardCharsets.UTF_8);
        HashMap<String, Object> introduceMap = new HashMap<>();
        introduceMap.put("introduce", introduce);
        introduceMap.put("10张表", "SEM包含元数据表、实体对象表、链接对象表、属性表、材质表、纹理表、纹理顶点表、图片数据表、几何模板表和扩展表");
        introduceMap.put("Metadata(元数据表)", "用于存储 SEM åŸºç¡€ä¿¡æ¯");
        introduceMap.put("Entity(实体对象表)", "用于存储空间实体对象的几何数据");
        introduceMap.put("LinkObject(链接对象表)", "用于存储空间实体对象的挂接对象信息");
        introduceMap.put("Attribute(属性表)", "用于存储空间实体对象的属性");
        introduceMap.put("Material(材质表)", "用于存储空间实体对象的材质信息");
        introduceMap.put("Texture(纹理表)", "用于存储空间实体对象的纹理信息");
        introduceMap.put("TextureVertice(纹理顶点表)", "记录空间实体对象的纹理顶点坐标值");
        introduceMap.put("Image(图片数据表)", "存储空间实体对象的纹理或挂接的人工模型所应用的图片数据");
        introduceMap.put("Template(几何模板表)", "存储空间实体对象的几何模板");
        introduceMap.put("ExtensionSchema(扩展表)", "描述领域本体的扩展属性和扩展信息");
        return introduceMap;
    }
}
src/main/java/com/se/simu/service/SemFilesSimuService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.se.simu.service;
public interface SemFilesSimuService {
    /**
     * èŽ·å– INTRODUCE
     *
     * @return {@link Object}
     */
    Object getIntroduce();
}