# 图层-气象
**Repository Path**: 303211/layer-weather
## Basic Information
- **Project Name**: 图层-气象
- **Description**: 气候天气温度、降水、雷达、台风等专题数据分析显示
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-05-11
- **Last Updated**: 2024-05-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 图层-气象
### 气候天气温度、降水、雷达、台风等专题数据分析显示
#### 使用说明

#### 方案介绍
方案一:等值面分析(有空间数据)
JAVA 通过wContour和geotools实现等值面分析,该方案的主要特点是可以做成矢量切片服务,支持放大缩小、空间计算、标记等等。主要步骤有珊格数据抽稀、转Feature、图层异常处理、裁切、出图、入库。具体实现流程步骤写过一篇[文章](https://www.jianshu.com/p/a02274add35b),关于后面还有切片实现实现可以参考[Mapbox GL 加载GeoServer发布的矢量切片](https://blog.csdn.net/hequhecong10857/article/details/113895245) 或者 基于 [PostGIS 函数的矢量切片服务器](https://www.jianshu.com/p/7ccb95c4bfba),基于PostGIS方案应用于生产中效率高、依赖低,方案来源于曾经的技术总监。
结论:该方式是等值面空间数据发布服务,可以进行空间一系列计算。缺点:加载数据时需要进行切片加载,放大后有平滑效果,但整体效果不理想,出来的结果和真实数据有误差,加载数据慢,将网格数据进行等值面分析效率低。以广东省每小时间隔1km温度为测试,十几分钟出效果。
方案二:渲染成图像PNG
要将任何类型的GeoTools功能类型导出到图像,该过程是相同的-使用DataStore在功能(或覆盖范围)中读取,使用Style渲染这些功能。主要步骤是将网格数据生成分辨率为Params大小的热力图png(确定x、y轴,将图表划分为规整的矩形块。数值字段决定了矩形块的颜色),然后加载模板PNG,初始化RGB像素值,并根据起点坐标与间隔和多维数据进行匹配对应,根据两者的起始点和间隔比如进行像素RGB复制,具体RGB值由网格数组值对应的颜色进行设定,生成目标png后发布图片服务。
结论:该方式是以图片服务进行渲染,加载速度快,占用空间小,效果好(放大后会有明显像素方块),在将数据转换为图片是极快,以广东省每小时间隔1km温度为测试,1~2秒出效果。
#### doc文件资料
里面包含了测试数据,有雷达、温度、广东省shp文件,提供测试使用。
#### 效果图
温度效果图:

雷达效果图:

效果图说明:
左边是之前的等值面分析结果,抽稀2倍计算,时间大概需要几分钟完成。
右边是参考热力图原理输出的效果图,所有点参与计算,时间基本在1~2秒内完成。
应用场景区别:等值面分析结果可以做空间计算,输出PNG图片可以发布geoserver服务查看
#### maven仓库引入
`
org.geotools
gt-main
${geotools.version}
org.geotools
gt-shapefile
${geotools.version}
org.geotools
gt-epsg-hsql
${geotools.version}
org.geotools
gt-swing
${geotools.version}
org.geotools
gt-geojson
${geotools.version}
org.geotools
gt-metadata
${geotools.version}
org.geotools
gt-referencing
${geotools.version}
org.geotools
gt-grid
${geotools.version}
org.locationtech.jts
jts-core
1.18.2
org.meteothink
meteoinfo-data
3.3.0
org.gdal
gdal
${gdal.version}
org.gdal
gdal
${gdal.version}
org.geotools.jdbc
gt-jdbc-postgis
${geotools.version}
`
最后有不足之处,请多多指教!!!