| | |
| | | import com.se.simu.domain.dto.GeLayer; |
| | | import com.se.simu.domain.po.DataPo; |
| | | import com.se.simu.domain.po.SimuPo; |
| | | import com.se.simu.domain.vo.CreateFilesSimuVo; |
| | | import com.se.simu.domain.vo.CreateSimuVo; |
| | | import com.se.simu.domain.vo.R; |
| | | import com.se.simu.domain.vo.SimuVo; |
| | | import com.se.simu.domain.vo.*; |
| | | import com.se.simu.service.*; |
| | | import com.se.simu.utils.CsvToSQLiteUtils; |
| | | import com.se.simu.utils.ShpToolUtils; |
| | | import com.se.simu.utils.ZarrUtils; |
| | | import com.se.simu.utils.ZipUtils; |
| | | import io.swagger.annotations.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | |
| | |
| | | return fail("解析范围文件失败!选择范围不能为空,请重新选择文件!", false); |
| | | } |
| | | } |
| | | |
| | | JSONArray jsonArray = new JSONArray(); |
| | | String stationFile = vo.getStationFile(); |
| | | log.info("站点文件shp地址:{}", stationFile); |
| | | try { |
| | |
| | | return fail("站点文件shp地址不能为空", false); |
| | | } |
| | | // 1 读取shp文件,获取站点坐标值 |
| | | JSONArray jsonArray = ShpToolUtils.readShpGetLocal(stationFile); |
| | | jsonArray = ShpToolUtils.readShpGetLocal(stationFile); |
| | | System.out.println("jsonArray = " + jsonArray); |
| | | } catch (Exception e) { |
| | | log.error("解析站点文件shp失败"); |
| | |
| | | |
| | | String stationRainFile = vo.getStationRainFile(); |
| | | log.info("站点雨量CSV文件地址:{}", floodFile); |
| | | JSONArray array = new JSONArray(); |
| | | // 创建表名 时间戳 |
| | | String tableName = "station_rain_" + System.currentTimeMillis(); |
| | | try { |
| | | // 判断地址不为空 |
| | | if (StringUtils.isEmpty(stationRainFile)) { |
| | | return fail("站点雨量CSV文件地址不能为空", false); |
| | | } |
| | | // 创建表名 时间戳 |
| | | String tableName = "station_rain_" + System.currentTimeMillis(); |
| | | // 1 读取CSV 文件 |
| | | CsvToSQLiteUtils.readCsvSaveLocal(stationRainFile, tableName); |
| | | array = CsvToSQLiteUtils.readCsvSaveLocal(stationRainFile, tableName); |
| | | // 获取仿真时间 duration |
| | | Integer duration = CsvToSQLiteUtils.getDuration(tableName); |
| | | log.info("仿真时间 duration = {}", duration); |
| | |
| | | return fail("防汛范围不能为空", false); |
| | | } |
| | | } |
| | | //todo 组装cityjson |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("shp", jsonArray); |
| | | jsonObject.put("csv", array); |
| | | // 开始模拟计算 |
| | | boolean flag = simuFilesService.createByfiles(vo); |
| | | return success(flag, flag ? "成功" : "失败"); |
| | |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "tarr文件组装") |
| | | @GetMapping(value = "/testZarr", produces = "application/json; charset=UTF-8") |
| | | public R<Boolean> testZarr(@RequestParam("name") String tableName) throws IOException { |
| | | List<String> list = CsvToSQLiteUtils.getNameList(tableName); |
| | | String basePath="D:\\城市内涝\\sem\\雨量站点数据\\"+tableName+"\\rainfall\\"; |
| | | for (String src : list |
| | | ) { |
| | | File directories = new File(basePath); |
| | | if (!directories.exists()) { |
| | | directories.mkdirs(); |
| | | System.out.println("Directories created successfully."); |
| | | } else { |
| | | System.out.println("Directories already exist."); |
| | | } |
| | | List<StationRainVo> stationRainVos = CsvToSQLiteUtils.getList(tableName, src); |
| | | ZarrUtils.saveZarrRainfall(basePath+src,stationRainVos); |
| | | ZarrUtils.saveZarrTime(basePath+src,stationRainVos); |
| | | ZipUtils.toZarr(basePath+src,basePath+src+".zip"); |
| | | System.out.println(src+"的zarr数据生成====================="); |
| | | } |
| | | return success(true); |
| | | } |
| | | |
| | | } |