# hxlc-fy **Repository Path**: cugjack/hxlc-fy ## Basic Information - **Project Name**: hxlc-fy - **Description**: 解析风云卫星HDF文件的代码,引入了气科院王亚强博士的工具包meteoinfo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-11 - **Last Updated**: 2024-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 文件解析成图片 解析风云4A文件为PNG图片 生成瓦片图 将PNG图片按照层级切割成瓦片图,保存到文件夹中 文件夹的格式,参考风云地球的格式: http://10.1.64.154/fydq/swapQuery/public/tileServer/getTile/fy-4a/reg_china/NatureColor/20230224053500/jpg/3/1/3.png fy-4a/disk/NatureColor/时次/层级/x/y.png 目前值展示3个级别,0,1,2 在Nginx配置静态资源读取 Leaflet测试风云卫星图 server { listen 8083; server_name localhost; location /fy/ { alias D:/fy/; } } 展示瓦片图 根据层级,从接口获取瓦片图,展示到前端,leaflet FAQ: 在迁移Jython代码成为Java代码后,两边导出的图片颜色不一样,开始分析原因: 1. 数据转换没有问题: 这是日志中,取出某行数据相减的情况,两边的差,几乎等于0,因为Python与Java保留位数不同 ![image-20230227150348159](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230227150348159.png) 原因搞清楚了,是因为改写的时候,对于 `R1 = R.copy()`,在Java代码中直接使用了`ArrayUtil.copy`,这个函数是浅拷贝,应该使用深拷贝: ```java float[][] floatR1 = new float[yNum][xNum]; for (int i = 0; i < yNum; i++) { for (int j = 0; j < xNum; j++) { floatR1[i][j] = floatR[i][j]; } } ``` 整合代码: 1.创建Springboot项目 2.将meteoinfo的jar包拷贝到lib目录下 3.在pom.xml中添加本地依赖 4.配置文件中配置好shape路径、fy4文件夹路径、保存图片的路径 5.创建工具类,在工具类中提供一个对外函数,并添加对应的配置文件的值 6.在本地创建测试环境 覆盖在图片上面的边界线,怎么展示? 生成图片时,需要加上时间文件夹 解析风云4的文件名,获取当前时次 `FY4A-_AGRI--_N_DISK_1047E_L1-_FDI-_MULT_NOM_20220405001500_20220405002959_4000M_V0001.HDF`