From 260d10f90f0393d9879bb704132dcfc7f0f14471 Mon Sep 17 00:00:00 2001 From: xlp <384053035@qq.com> Date: Thu, 28 Nov 2024 10:50:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=A4=AA=E9=98=B3?= =?UTF-8?q?=E8=83=BD=E8=BE=90=E5=B0=84=E6=A8=A1=E6=8B=9F=E4=B8=8E=E9=A2=84?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solarenergy/controller/SimulAndPredicController.java | 4 ++-- .../com/cuit/solarenergy/entity/vo/req/SolarPredicReq.java | 3 ++- .../com/cuit/solarenergy/service/SolarenergyService.java | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/cuit/solarenergy/controller/SimulAndPredicController.java b/src/main/java/com/cuit/solarenergy/controller/SimulAndPredicController.java index 01f8391..3b1bc70 100644 --- a/src/main/java/com/cuit/solarenergy/controller/SimulAndPredicController.java +++ b/src/main/java/com/cuit/solarenergy/controller/SimulAndPredicController.java @@ -63,7 +63,7 @@ public class SimulAndPredicController { // 获取当前日期和时间的 Calendar 对象 String time = solarReq.getTime(); //1.辐射出图 - String pathFile = solarenergyService.calSolarRadiation(RasterSolarRadiationOperation.SolarEadiationAnalysisType.DAY_TOTAL_SOLARRADIATION_AMOUNT,time, 0, 1500); + String pathFile = solarenergyService.calSolarRadiation(RasterSolarRadiationOperation.SolarEadiationAnalysisType.DAY_TOTAL_SOLARRADIATION_AMOUNT,time, solarReq.getCloudcoverof10parts(), 1500); //2.发布geoserverter服务并存入数据库 Long aLong = geoServerPubService.pubGeoServerAndSavetoDB("style_tynday", "EPSG:3857",pathFile, solarReq.getRegionname()); if (Objects.isNull(aLong)|| aLong == -1){ @@ -101,7 +101,7 @@ public class SimulAndPredicController { // 获取当前日期和时间的 Calendar 对象 String time = solarReq.getTime(); //1.辐射出图 - String pathFile = solarenergyService.calSolarRadiation(RasterSolarRadiationOperation.SolarEadiationAnalysisType.DAY_TOTAL_SOLARRADIATION_AMOUNT, time, 0, 1500); + String pathFile = solarenergyService.calSolarRadiation(RasterSolarRadiationOperation.SolarEadiationAnalysisType.DAY_TOTAL_SOLARRADIATION_AMOUNT, time, solarReq.getCloudcoverof10parts(), 1500); //2.发布geoserverter服务并存入数据库 Long aLong = geoServerPubService.pubGeoServerAndSavetoDB("style_tynday", "EPSG:3857",pathFile, solarReq.getRegionname()); if (Objects.isNull(aLong)|| aLong == -1){ diff --git a/src/main/java/com/cuit/solarenergy/entity/vo/req/SolarPredicReq.java b/src/main/java/com/cuit/solarenergy/entity/vo/req/SolarPredicReq.java index a75112b..69e7d2d 100644 --- a/src/main/java/com/cuit/solarenergy/entity/vo/req/SolarPredicReq.java +++ b/src/main/java/com/cuit/solarenergy/entity/vo/req/SolarPredicReq.java @@ -19,7 +19,8 @@ public class SolarPredicReq { @ApiModelProperty(value = "预报时间", name = "time", notes = "格式为yyyy-MM-dd") @DateTimeFormat(pattern = DATE_FORMAT) private String time; - + @ApiModelProperty(value = "云量,输入0-10, 默认为0", name = "cloudcoverof10parts") + double cloudcoverof10parts; @ApiModelProperty(value = "地区名称", name = "regionname") private String regionname; diff --git a/src/main/java/com/cuit/solarenergy/service/SolarenergyService.java b/src/main/java/com/cuit/solarenergy/service/SolarenergyService.java index ce13168..7c4cdb3 100644 --- a/src/main/java/com/cuit/solarenergy/service/SolarenergyService.java +++ b/src/main/java/com/cuit/solarenergy/service/SolarenergyService.java @@ -10,6 +10,7 @@ import com.cuit.gis.raster.GeoTiff; import com.cuit.gis.raster.GridCoverageUtil; import com.cuit.solarenergy.utils.TimeUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.geotools.coverage.grid.GridCoverage2D; import org.opengis.referencing.FactoryException; @@ -167,7 +168,9 @@ public class SolarenergyService { */ //RasterSolarRadiationOperation.SolarEadiationAnalysisType type = RasterSolarRadiationOperation.SolarEadiationAnalysisType.MONTH_TOTAL_SOLARRADIATION_AMOUNT; // RasterSolarRadiationOperation.SolarEadiationAnalysisType type = RasterSolarRadiationOperation.SolarEadiationAnalysisType.SUNRISETIME; - + if (ObjectUtils.isEmpty(cloudcoverof10parts)){ + cloudcoverof10parts = 0; + } GridCoverage2D solarRadiationCoverage2D = solarRadiationSpatialAnalysis.calculateSolarRadiation(slopCoverage, aspectCoverage, type, calendar, cloudcoverof10parts); GridCoverageUtil.writeGeoTiff(solarRadiationCoverage2D, outFileName);