java实现克里金插值导出geojson矢量数据(kriging)

news2024/11/27 13:51:14

生成效果

在现代科学研究中,数据的处理和分析是至关重要的一环。然而,我们往往会遇到数据缺失的情况,这时就需要使用插值方法来填补这些缺失值。其中,克里金插值法是一种常用的方法,在很多领域都有广泛的应用。

首先,克里金插值法在地质勘探领域中有着广泛的应用。在地质勘探中,我们需要研究地下的地质结构和矿藏分布情况。然而,在采集数据时,由于种种原因,我们无法获取到完整的数据集。这时,我们就可以使用克里金插值法来估算缺失的数据,从而更加准确地进行矿藏勘探和开采工作。

其次,克里金插值法在气象学领域中也有着重要的应用。在气象学中,我们需要预测未来的气象情况,比如温度、降雨量等。然而,由于气象数据的采集难度较大,数据缺失的情况也比较常见。这时,我们可以利用已有的气象数据,使用克里金插值法来预测缺失数据,从而更好地进行气象预测和防灾减灾工作。

除此之外,克里金插值法还在许多其他领域中得到了广泛的应用,比如环境监测、土地利用规划等。可以说,克里金插值法已经成为了数据处理和分析领域中不可或缺的一部分。

综上所述,克里金插值法在许多领域都有着广泛的应用,能够帮助我们更好地处理和分析数据,提高研究和预测的准确性。相信随着科学技术的不断发展,克里金插值法在更多领域中也将得到更加广泛和深入的应用。

一、控制类代码实现

 //http://localhost:8935/api/export/controlInterpolationVec?intv=0,30,50,70,90,150&trainfn=traindata.json&IM=Kriging
    @ApiOperation(value = "Interpolation")
    @GetMapping(value = "/controlInterpolationVec")
//    @Scheduled(cron = "0 10 * * * ?")
    public String stationInterpolationVec(String intv,String trainfn,String IM) {


        String traindt= FileUtils.ReadTxt(trainfn);

        int nNum = 3;
//        String monitorTime = DateUtil.format(DateUtil.addDateHours(new Date(),-1),"yyyy-MM-dd%20HH:00:00");
//        // 获取数据
//        JSONObject obj = JSON.parseObject(HttpUtils.sendGet(EDVRURL,"monitorTime=" + monitorTime + "&regionCode=370300"));
//        String re = HttpUtils.SendPostRain(adcd,btime,etime);
//        JSONObject obj = JSON.parseObject(re);
        JSONObject obj = JSON.parseObject(traindt);
//        JSONObject obj = JSON.parseObject("{\"png\":\"http://10.230.124.66:8080/group1/juece/20220520/15/26/8/aa7a2a7_.png\",\"text\":\"\",\"table\":[{\"Cnty\":\"两江新区\",\"Station_Name\":\"龙头寺公园\",\"qy\":\"中心城区\",\"Lon\":\"106.55\",\"lon\":\"106.55\",\"City\":\"市辖区\",\"Station_Id_C\":\"A9042\",\"SUM_PRE_1h\":\"44.8\",\"dvalue\":\"44.8\",\"Province\":\"重庆市\",\"Lat\":\"29.5833\",\"lat\":\"29.5833\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"石坪\",\"qy\":\"中心城区\",\"Lon\":\"106.6636\",\"lon\":\"106.6636\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7309\",\"SUM_PRE_1h\":\"44.1\",\"dvalue\":\"44.1\",\"Province\":\"重庆市\",\"Lat\":\"29.6658\",\"lat\":\"29.6658\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"玉峰山\",\"qy\":\"中心城区\",\"Lon\":\"106.7217\",\"lon\":\"106.7217\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7303\",\"SUM_PRE_1h\":\"42.6\",\"dvalue\":\"42.6\",\"Province\":\"重庆市\",\"Lat\":\"29.7208\",\"lat\":\"29.7208\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"龙兴\",\"qy\":\"中心城区\",\"Lon\":\"106.9\",\"lon\":\"106.9\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7075\",\"SUM_PRE_1h\":\"41.5\",\"dvalue\":\"41.5\",\"Province\":\"重庆市\",\"Lat\":\"29.7\",\"lat\":\"29.7\"},{\"Cnty\":\"两江新区\",\"Station_Name\":\"园博园\",\"qy\":\"中心城区\",\"Lon\":\"106.5486\",\"lon\":\"106.5486\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8172\",\"SUM_PRE_1h\":\"36.7\",\"dvalue\":\"36.7\",\"Province\":\"重庆市\",\"Lat\":\"29.6825\",\"lat\":\"29.6825\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"方家山村\",\"qy\":\"中心城区\",\"Lon\":\"106.5931\",\"lon\":\"106.5931\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8170\",\"SUM_PRE_1h\":\"35.5\",\"dvalue\":\"35.5\",\"Province\":\"重庆市\",\"Lat\":\"29.7525\",\"lat\":\"29.7525\"},{\"Cnty\":\"两江新区\",\"Station_Name\":\"悦来\",\"qy\":\"中心城区\",\"Lon\":\"106.5356\",\"lon\":\"106.5356\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7308\",\"SUM_PRE_1h\":\"35.1\",\"dvalue\":\"35.1\",\"Province\":\"重庆市\",\"Lat\":\"29.7322\",\"lat\":\"29.7322\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"学堂村\",\"qy\":\"中心城区\",\"Lon\":\"106.6233\",\"lon\":\"106.6233\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8168\",\"SUM_PRE_1h\":\"34.9\",\"dvalue\":\"34.9\",\"Province\":\"重庆市\",\"Lat\":\"29.7797\",\"lat\":\"29.7797\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"龙井\",\"qy\":\"中心城区\",\"Lon\":\"106.6644\",\"lon\":\"106.6644\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7292\",\"SUM_PRE_1h\":\"34.2\",\"dvalue\":\"34.2\",\"Province\":\"重庆市\",\"Lat\":\"29.6889\",\"lat\":\"29.6889\"},{\"Cnty\":\"两江新区\",\"Station_Name\":\"鸳鸯\",\"qy\":\"中心城区\",\"Lon\":\"106.5561\",\"lon\":\"106.5561\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7307\",\"SUM_PRE_1h\":\"31.9\",\"dvalue\":\"31.9\",\"Province\":\"重庆市\",\"Lat\":\"29.6686\",\"lat\":\"29.6686\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"龙山小学\",\"qy\":\"中心城区\",\"Lon\":\"106.4856\",\"lon\":\"106.4856\",\"City\":\"市辖区\",\"Station_Id_C\":\"A6100\",\"SUM_PRE_1h\":\"30.4\",\"dvalue\":\"30.4\",\"Province\":\"重庆市\",\"Lat\":\"29.59\",\"lat\":\"29.59\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"御临\",\"qy\":\"中心城区\",\"Lon\":\"106.8331\",\"lon\":\"106.8331\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7306\",\"SUM_PRE_1h\":\"30\",\"dvalue\":\"30\",\"Province\":\"重庆市\",\"Lat\":\"29.7106\",\"lat\":\"29.7106\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"大屋\",\"qy\":\"中心城区\",\"Lon\":\"106.7028\",\"lon\":\"106.7028\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7293\",\"SUM_PRE_1h\":\"29.9\",\"dvalue\":\"29.9\",\"Province\":\"重庆市\",\"Lat\":\"29.7592\",\"lat\":\"29.7592\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"约滨路\",\"qy\":\"中心城区\",\"Lon\":\"106.5178\",\"lon\":\"106.5178\",\"City\":\"市辖区\",\"Station_Id_C\":\"A6413\",\"SUM_PRE_1h\":\"29.8\",\"dvalue\":\"29.8\",\"Province\":\"重庆市\",\"Lat\":\"29.7003\",\"lat\":\"29.7003\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"永庆\",\"qy\":\"中心城区\",\"Lon\":\"106.7319\",\"lon\":\"106.7319\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7294\",\"SUM_PRE_1h\":\"29.6\",\"dvalue\":\"29.6\",\"Province\":\"重庆市\",\"Lat\":\"29.9383\",\"lat\":\"29.9383\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"大天池\",\"qy\":\"中心城区\",\"Lon\":\"106.9253\",\"lon\":\"106.9253\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8597\",\"SUM_PRE_1h\":\"28.5\",\"dvalue\":\"28.5\",\"Province\":\"重庆市\",\"Lat\":\"29.8308\",\"lat\":\"29.8308\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"秦家\",\"qy\":\"中心城区\",\"Lon\":\"106.6983\",\"lon\":\"106.6983\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7300\",\"SUM_PRE_1h\":\"28\",\"dvalue\":\"28\",\"Province\":\"重庆市\",\"Lat\":\"30.0683\",\"lat\":\"30.0683\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"梨园\",\"qy\":\"中心城区\",\"Lon\":\"106.6819\",\"lon\":\"106.6819\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7295\",\"SUM_PRE_1h\":\"27\",\"dvalue\":\"27\",\"Province\":\"重庆市\",\"Lat\":\"29.9619\",\"lat\":\"29.9619\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"良桥\",\"qy\":\"中心城区\",\"Lon\":\"106.6642\",\"lon\":\"106.6642\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8800\",\"SUM_PRE_1h\":\"26.8\",\"dvalue\":\"26.8\",\"Province\":\"重庆市\",\"Lat\":\"29.8503\",\"lat\":\"29.8503\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"新桥村\",\"qy\":\"中心城区\",\"Lon\":\"106.7056\",\"lon\":\"106.7056\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8175\",\"SUM_PRE_1h\":\"26.5\",\"dvalue\":\"26.5\",\"Province\":\"重庆市\",\"Lat\":\"29.7872\",\"lat\":\"29.7872\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"兴隆\",\"qy\":\"中心城区\",\"Lon\":\"106.7086\",\"lon\":\"106.7086\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7022\",\"SUM_PRE_1h\":\"26.1\",\"dvalue\":\"26.1\",\"Province\":\"重庆市\",\"Lat\":\"29.8972\",\"lat\":\"29.8972\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"老君山\",\"qy\":\"中心城区\",\"Lon\":\"106.9272\",\"lon\":\"106.9272\",\"City\":\"市辖区\",\"Station_Id_C\":\"A6351\",\"SUM_PRE_1h\":\"25.2\",\"dvalue\":\"25.2\",\"Province\":\"重庆市\",\"Lat\":\"29.7989\",\"lat\":\"29.7989\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"石船\",\"qy\":\"中心城区\",\"Lon\":\"106.8236\",\"lon\":\"106.8236\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7310\",\"SUM_PRE_1h\":\"25.1\",\"dvalue\":\"25.1\",\"Province\":\"重庆市\",\"Lat\":\"29.7664\",\"lat\":\"29.7664\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"麻柳沱\",\"qy\":\"中心城区\",\"Lon\":\"106.8811\",\"lon\":\"106.8811\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7305\",\"SUM_PRE_1h\":\"25\",\"dvalue\":\"25\",\"Province\":\"重庆市\",\"Lat\":\"29.8083\",\"lat\":\"29.8083\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"箭沱\",\"qy\":\"中心城区\",\"Lon\":\"106.8672\",\"lon\":\"106.8672\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7297\",\"SUM_PRE_1h\":\"24\",\"dvalue\":\"24\",\"Province\":\"重庆市\",\"Lat\":\"29.6633\",\"lat\":\"29.6633\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"同仁\",\"qy\":\"中心城区\",\"Lon\":\"106.7217\",\"lon\":\"106.7217\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7291\",\"SUM_PRE_1h\":\"23.2\",\"dvalue\":\"23.2\",\"Province\":\"重庆市\",\"Lat\":\"29.8658\",\"lat\":\"29.8658\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"华蓥山村\",\"qy\":\"中心城区\",\"Lon\":\"106.6764\",\"lon\":\"106.6764\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7315\",\"SUM_PRE_1h\":\"23.1\",\"dvalue\":\"23.1\",\"Province\":\"重庆市\",\"Lat\":\"30.0928\",\"lat\":\"30.0928\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"天池\",\"qy\":\"中心城区\",\"Lon\":\"106.8567\",\"lon\":\"106.8567\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8599\",\"SUM_PRE_1h\":\"22.4\",\"dvalue\":\"22.4\",\"Province\":\"重庆市\",\"Lat\":\"29.9836\",\"lat\":\"29.9836\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"杜家村\",\"qy\":\"中心城区\",\"Lon\":\"106.6944\",\"lon\":\"106.6944\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8174\",\"SUM_PRE_1h\":\"21.9\",\"dvalue\":\"21.9\",\"Province\":\"重庆市\",\"Lat\":\"29.9089\",\"lat\":\"29.9089\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"青龙村\",\"qy\":\"中心城区\",\"Lon\":\"106.8925\",\"lon\":\"106.8925\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8171\",\"SUM_PRE_1h\":\"21.7\",\"dvalue\":\"21.7\",\"Province\":\"重庆市\",\"Lat\":\"29.8767\",\"lat\":\"29.8767\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"龙安\",\"qy\":\"中心城区\",\"Lon\":\"106.8469\",\"lon\":\"106.8469\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7298\",\"SUM_PRE_1h\":\"21.5\",\"dvalue\":\"21.5\",\"Province\":\"重庆市\",\"Lat\":\"29.8919\",\"lat\":\"29.8919\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"沙湾\",\"qy\":\"中心城区\",\"Lon\":\"106.9242\",\"lon\":\"106.9242\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7289\",\"SUM_PRE_1h\":\"21.3\",\"dvalue\":\"21.3\",\"Province\":\"重庆市\",\"Lat\":\"29.7506\",\"lat\":\"29.7506\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"大面坡\",\"qy\":\"中心城区\",\"Lon\":\"106.7483\",\"lon\":\"106.7483\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7304\",\"SUM_PRE_1h\":\"21.3\",\"dvalue\":\"21.3\",\"Province\":\"重庆市\",\"Lat\":\"30.0181\",\"lat\":\"30.0181\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"统景\",\"qy\":\"中心城区\",\"Lon\":\"106.8333\",\"lon\":\"106.8333\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7023\",\"SUM_PRE_1h\":\"21.2\",\"dvalue\":\"21.2\",\"Province\":\"重庆市\",\"Lat\":\"29.85\",\"lat\":\"29.85\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"希望\",\"qy\":\"中心城区\",\"Lon\":\"106.77\",\"lon\":\"106.77\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8598\",\"SUM_PRE_1h\":\"21\",\"dvalue\":\"21\",\"Province\":\"重庆市\",\"Lat\":\"29.8189\",\"lat\":\"29.8189\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"天险洞\",\"qy\":\"中心城区\",\"Lon\":\"106.9358\",\"lon\":\"106.9358\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7311\",\"SUM_PRE_1h\":\"20.7\",\"dvalue\":\"20.7\",\"Province\":\"重庆市\",\"Lat\":\"29.8856\",\"lat\":\"29.8856\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"西新\",\"qy\":\"中心城区\",\"Lon\":\"106.8464\",\"lon\":\"106.8464\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8817\",\"SUM_PRE_1h\":\"20.1\",\"dvalue\":\"20.1\",\"Province\":\"重庆市\",\"Lat\":\"29.9514\",\"lat\":\"29.9514\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"黄印\",\"qy\":\"中心城区\",\"Lon\":\"106.8897\",\"lon\":\"106.8897\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7290\",\"SUM_PRE_1h\":\"19.6\",\"dvalue\":\"19.6\",\"Province\":\"重庆市\",\"Lat\":\"29.9658\",\"lat\":\"29.9658\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"高嘴\",\"qy\":\"中心城区\",\"Lon\":\"106.7861\",\"lon\":\"106.7861\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7301\",\"SUM_PRE_1h\":\"19.5\",\"dvalue\":\"19.5\",\"Province\":\"重庆市\",\"Lat\":\"29.9192\",\"lat\":\"29.9192\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"大湾\",\"qy\":\"中心城区\",\"Lon\":\"106.8419\",\"lon\":\"106.8419\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7313\",\"SUM_PRE_1h\":\"19.3\",\"dvalue\":\"19.3\",\"Province\":\"重庆市\",\"Lat\":\"29.8353\",\"lat\":\"29.8353\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"拱桥\",\"qy\":\"中心城区\",\"Lon\":\"106.7925\",\"lon\":\"106.7925\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7296\",\"SUM_PRE_1h\":\"19.3\",\"dvalue\":\"19.3\",\"Province\":\"重庆市\",\"Lat\":\"29.9917\",\"lat\":\"29.9917\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"大盛\",\"qy\":\"中心城区\",\"Lon\":\"106.9231\",\"lon\":\"106.9231\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7299\",\"SUM_PRE_1h\":\"19.1\",\"dvalue\":\"19.1\",\"Province\":\"重庆市\",\"Lat\":\"29.8972\",\"lat\":\"29.8972\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"古路\",\"qy\":\"中心城区\",\"Lon\":\"106.8419\",\"lon\":\"106.8419\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7133\",\"SUM_PRE_1h\":\"18.2\",\"dvalue\":\"18.2\",\"Province\":\"重庆市\",\"Lat\":\"29.8353\",\"lat\":\"29.8353\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"金凤村\",\"qy\":\"中心城区\",\"Lon\":\"106.7803\",\"lon\":\"106.7803\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8173\",\"SUM_PRE_1h\":\"17.3\",\"dvalue\":\"17.3\",\"Province\":\"重庆市\",\"Lat\":\"29.94\",\"lat\":\"29.94\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"硌碛\",\"qy\":\"中心城区\",\"Lon\":\"106.9444\",\"lon\":\"106.9444\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7076\",\"SUM_PRE_1h\":\"16.3\",\"dvalue\":\"16.3\",\"Province\":\"重庆市\",\"Lat\":\"29.7456\",\"lat\":\"29.7456\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"明月\",\"qy\":\"中心城区\",\"Lon\":\"106.8894\",\"lon\":\"106.8894\",\"City\":\"市辖区\",\"Station_Id_C\":\"A7312\",\"SUM_PRE_1h\":\"15.7\",\"dvalue\":\"15.7\",\"Province\":\"重庆市\",\"Lat\":\"29.9417\",\"lat\":\"29.9417\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"民权村\",\"qy\":\"中心城区\",\"Lon\":\"106.8681\",\"lon\":\"106.8681\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8169\",\"SUM_PRE_1h\":\"15.6\",\"dvalue\":\"15.6\",\"Province\":\"重庆市\",\"Lat\":\"29.9006\",\"lat\":\"29.9006\"},{\"Cnty\":\"渝北\",\"Station_Name\":\"华蓥山\",\"qy\":\"中心城区\",\"Lon\":\"106.6833\",\"lon\":\"106.6833\",\"City\":\"市辖区\",\"Station_Id_C\":\"A8013\",\"SUM_PRE_1h\":\"3.9\",\"dvalue\":\"3.9\",\"Province\":\"重庆市\",\"Lat\":\"30.05\",\"lat\":\"30.05\"}]}");
        JSONArray datalist = (JSONArray)obj.get("result");
        double[][] trainData = new double[datalist.size()][3];
        for (int i = 0; i < datalist.size(); i++) {
//            StationWithData data = datalist.get(i);
            trainData[i][0] = TransferDouble(((com.alibaba.fastjson.JSONObject)datalist.get(i)).get("longitude").toString());
            trainData[i][1] = TransferDouble(((com.alibaba.fastjson.JSONObject)datalist.get(i)).get("latitude").toString());
            trainData[i][2] = TransferDouble(((com.alibaba.fastjson.JSONObject)datalist.get(i)).get("v"));
        }
        //D:\gis\china
        String boundryFile ="yangpuxzqh.shp";
        int[] size = new int[]{400, 400};
        boolean isclip = true;
        String[] itv=intv.split(",");
        double[] dataInterval = new double[itv.length] ;
        for(int i = 0; i < itv.length; i++){
            dataInterval[i] = TransferDouble(itv[i]);
        }
        String strJson = InterpolationUtils.calEquiSurface(trainData, dataInterval, size, boundryFile, isclip,nNum,IM);
        return strJson;
    }

二、插值方法

/**
     * 用Kriging克里金法插值
     * Interpolation with kriging method
     *
     * @param SCoords discrete data array
     * @param X grid X array
     * @param Y grid Y array
     * @return interpolated grid data
     */
    public static double[][] interpolation_Kriging(double[][] SCoords, double[] X, double[] Y) {
        int rowNum, colNum;
        colNum = X.length;
        rowNum = Y.length;
        double[][] GCoords = new double[rowNum][colNum];
        int i, j;

        List<Point> points = new ArrayList<>();
        double[] Lons=new double[SCoords.length];
        double[] Lats=new double[SCoords.length];
        double[] Vals=new double[SCoords.length];
        for(int k=0;k<SCoords.length;k++){
            Lons[k]=SCoords[k][0];
            Lats[k]=SCoords[k][1];
            Vals[k]=SCoords[k][2];
            points.add(new Point(SCoords[k][0], SCoords[k][1], SCoords[k][2]));
        }
//        points.add(new Point(0, 0, 1));
        Kriging kriging = new Kriging(points, 0, 10, 10);


        //---- Do interpolation with IDW method
        for (i = 0; i < rowNum; i++) {
            for (j = 0; j < colNum; j++) {
//                Point p = new Point(X[j], Y[i], 0);
//                GCoords[i][j] = kriging.interpolate(p);
                double[][] lonl = {{X[j]}};
                double[][] latl =  {{Y[i]}};
                double[][] m = kriging.gridData(Lons, Lats, Vals, lonl, latl);
                GCoords[i][j]=m[0][0];

            }
        }

        //---- Smooth with 5 points
        double s = 0.5;
        for (i = 1; i < rowNum - 1; i++) {
            for (j = 1; j < colNum - 1; j++) {
                GCoords[i][j] = GCoords[i][j] + s / 4 * (GCoords[i + 1][j] + GCoords[i - 1][j] + GCoords[i][j + 1]
                        + GCoords[i][j - 1] - 4 * GCoords[i][j]);
            }

        }

        return GCoords;
    }

四、调用生成geojson

五、项目应用案例

如果对您有所帮助,请点赞打赏支持!

技术合作交流qq:2401315930

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1008774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/132869448 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

【剑指Offer】52.两个链表的第一个公共节点

题目 输入两个链表&#xff0c;找出它们的第一个公共节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出&#xff1a;Reference of the n…

【Linux】网络编程套接字(C++)

目录 一、预备知识 【1.1】理解源IP地址和目的IP地址 【1.2】认识端口号 【1.3】理解 "端口号" 和 "进程ID" 【1.4】理解源端口号和目的端口号 【1.5】认识TCP协议 【1.6】认识UDP协议 二、网络字节序 【2.1】socket编程接口 【2.1.1】socket AP…

5款实用的Redis可视化工具

Redis可视化工具是一种用于管理和监视Redis数据库的工具&#xff0c;它提供了一个可视化界面来操作和查看Redis的数据和配置信息&#xff0c; 可以让我们更加直观地管理和操作Redis数据库。下面介绍四款比较不错的Redis可视化工具。 1.Redis可视化工具推荐—RedisInsight Red…

美创科技入选第二届安徽省网络和数据安全应急技术支撑单位

9月11日&#xff0c;2023年安徽省网络安全宣传周活动在阜阳市正式启动。安徽省委常委、宣传部部长陈舜出席并宣布网安周正式启动。阜阳市委书记刘玉杰、省委宣传部副部长、省委网信办主任张杰华出席并致辞。 开幕式上&#xff0c;省委网信办副主任齐海洋发布第二届安徽省网络和…

Template serialization - shared_ptr<class T>

下面包含的所有代码片段都在 boost::serialization 命名空间内定义。 shared_ptr < T > 在 shared_ptr.hpp 中定义。 shared_ptr 的一般类轮廓如下&#xff1a; shared_ptr 包括以下成员&#xff1a; T *px;shared_count pn;&#xff0c;其中包含指向&#xff1a; sp_c…

(二十七)大数据实战——hbase高可用集群安装与部署

前言 本节内容我们主要介绍HBase高可用集群的安装部署。HBase是一个开源的分布式非关系型数据库管理系统&#xff08;NoSQL&#xff09;&#xff0c;它运行在Apache Hadoop之上。它基于Google的Bigtable论文设计&#xff0c;并且具有高扩展性、高可靠性和高性能的特点。HBase通…

Python 04 之变量【列表,元组,集合,字典,字符串】

&#x1f600;前言 在Python编程语言中&#xff0c;我们经常会遇到各种数据类型和相应的操作方法。理解和掌握这些基本构造是进行有效编程的前提。在本文中&#xff0c;我们将介绍两种非常重要的数据结构 - 集合和字典&#xff0c;然后我们将深入探讨字符串及其相关的操作和处理…

父域 Cookie实现sso单点登录

单点登录&#xff08;Single Sign On, SSO&#xff09;是指在同一帐号平台下的多个应用系统中&#xff0c;用户只需登录一次&#xff0c;即可访问所有相互信任的应用系统。Cookie 的作用域由 domain 属性和 path 属性共同决定。在 Tomcat 中&#xff0c;domain 属性默认为当前域…

CUDA小白 - NPP(8) 图像处理 Morphological Operations

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…

消除笔哪个P图软件有?这几种软件都有消除笔功能

哪些软件中有消除笔工具呢&#xff1f;我们在日常的生活中&#xff0c;会经常有编辑图片的需求&#xff0c;如果图片上有一些内容我们想要将它去除掉&#xff0c;如文字、涂鸦、笔记、标记等&#xff0c;需要用到一些消除笔工具&#xff0c;那么哪些软件具有这个功能并且还非常…

Excel变天了!国内已经可以用Python了!看看如何操作

对于大部分学python的同学来说&#xff0c;绝大部分场景都是用Pandas处理excel。 但有时简单的处理还要打开Jupyter或者VS Code&#xff0c;就有点麻烦。 现在&#xff01;微软已经把Python塞到Excel里啦&#xff01; 其实之前就已经塞了&#xff0c;但这几天国内都可以用了。…

传猪场员工因抑郁症去世,ACM金牌

前言 一位素未蒙面的学弟&#xff0c;R.I.P 既然是 “传”&#xff0c;我们就不能假定人家有抑郁症&#xff0c;其实前天就收到了这个消息&#xff0c;因为是一个学校的&#xff0c;又是ACM金牌&#xff0c;所以第一时间就在群里刷屏了&#xff0c;这件事情对于一个家庭来说&am…

10个TikTok影响力营销策略,让你的品牌崭露头角

TikTok已经成为一种崭露头角和塑造品牌声誉的强大平台。随着数以亿计的用户在这个短视频应用上分享创意和内容&#xff0c;品牌和营销专业人士也越来越多地将其作为推广产品和服务的渠道。 在本文中&#xff0c;我们将探讨10个TikTok影响力营销策略&#xff0c;帮助你的品牌在…

【Spring Boot】有这一文就够了

作者简介 前言 作者之前写过一个Spring Boot的系列&#xff0c;包含自动装配原理、MVC、安全、监控、集成数据库、集成Redis、日志、定时任务、异步任务等内容&#xff0c;本文将会一文拉通来总结这所有内容&#xff0c;不骗人&#xff0c;一文快速入门Spring Boot。 专栏地址…

了解CRM软件系统三种类型的特点与区别

市面上的CRM系统大致可以分为三种主要类型&#xff1a;分析型CRM、运营型CRM和协作型CRM。很多人对这三种类型的CRM系统不太了解&#xff0c;不知道该如何区分&#xff0c;下面我们就来说说CRM系统的3种类型&#xff1a;分析型、运营型和协作型的区别。 分析型CRM的特点&#…

系统灰度随笔记

系统灰度随笔记 这段时间系统重构&#xff0c;负责重构的其中一个模块需要与四个上游系统对接进行切换&#xff0c;虽然自己在这个过程中也设计了一套灰度方案来承接&#xff0c;将灰度的主动权控制在下游&#xff0c;但是很难同时应对四个上游系统&#xff0c;因为每个上游系…

Python语言学习实战-内置函数reduce()的使用(附源码和实现效果)

实现功能 reduce()是一个内置函数&#xff0c;它用于对一个可迭代对象中的元素进行累积操作。它接受一个函数和一个可迭代对象作为参数&#xff0c;并返回一个单个的累积结果。reduce()函数的语法如下&#xff1a; reduce(function, iterable[, initializer])其中&#xff0c;…

SpringMVC之JSON返回及异常处理

目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 Jackson 定义 用法 常用注解 统一异常处理 为什么要全局异常处理&#xff1f; 异常处理思路 SpringMVC异常分类 综…

java基础-基础知识点

文章目录 jdk目录结构函数式接口wait、notify、notifyAll 并发编程Threadsleep、yield、joindaemon &#xff08;守护线程&#xff09; 锁[synchronized ](https://blog.csdn.net/EnjoyFight/article/details/127457876)线程池 jdk目录结构 jdk1.8 jdk20 函数式接口 http…