高程产品报告生产代码修改

earthstar-new
Mr.Dong 2025-02-13 16:39:11 +08:00
parent 22bf3f8327
commit 2731a1986a
11 changed files with 349 additions and 266 deletions

View File

@ -1,6 +1,6 @@
<template>
<div id="app">
<router-view/>
<router-view />
</div>
</template>
<script>
@ -10,17 +10,31 @@ export default {
sessionStorage.getItem('umeetCloudVuex') && this.$store.replaceState(Object.assign(this.$store.state, JSON.parse(sessionStorage.getItem('umeetCloudVuex'))));
// vuexsessionStorage
window.addEventListener('beforeunload', () => {
sessionStorage.setItem('umeetCloudVuex', JSON.stringify(this.$store.state))
sessionStorage.setItem('umeetCloudVuex', JSON.stringify(this.$store.state))
})
}
},
mounted() {
const hash = window.location.hash;
// ?
const queryString = hash.split('?')[1]; // "userId=1&userName=dqy"
// 使 URLSearchParams
const params = new URLSearchParams(queryString);
//
const userId = params.get('userId');
const userName = params.get('userName');
localStorage.setItem('userId', userId);
localStorage.setItem('userName', userName);
},
}
</script>
<style>
html, body, #app{
width: 100%;
height: 100%;
font-size: 16px;
}
html,
body,
#app {
width: 100%;
height: 100%;
font-size: 16px;
}
</style>

View File

@ -28,16 +28,17 @@
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column label="序号" type="index" width="70">
</el-table-column>
<el-table-column prop="samplesId" label="样本编号" show-overflow-tooltip min-width="100px;">
<el-table-column prop="id" label="样本编号" show-overflow-tooltip min-width="100px;">
</el-table-column>
<el-table-column prop="lat" label="纬度" sortable show-overflow-tooltip>
</el-table-column>
<el-table-column prop="lng" label="经度" sortable show-overflow-tooltip>
<el-table-column prop="lon" label="经度" sortable show-overflow-tooltip>
</el-table-column>
<el-table-column :label="smLabel" show-overflow-tooltip>
<template slot-scope="scope">{{ getSampleVal(scope.row.paramStr) }}</template>
<!-- <template slot-scope="scope">{{ getSampleVal(scope.row.dataValue) }}</template> -->
<template slot-scope="scope">{{ scope.row.dataValue }}</template>
</el-table-column>
<el-table-column prop="collectDate" label="采样时间" sortable show-overflow-tooltip min-width="80px;">
<el-table-column prop="dataTime" label="采样时间" sortable show-overflow-tooltip min-width="80px;">
</el-table-column>
<el-table-column label="操作" align="center" min-width="100px;">
<template slot-scope="scope">
@ -92,7 +93,7 @@ import {
getSampleData,
getSamplesByLayer,
} from "@/api/lang/pendingOrder";
import { getOrderSamples } from '@/api/pendingOrder'
import cu from "@/lib/cesiumUtils";
import SampleSetting from "@/components/ration/sampleSetting/index.vue";
import WKT from "terraformer-wkt-parser";
@ -133,6 +134,9 @@ export default {
orderId: {
require: true,
},
productType: {
require: true
},
productSubType: {
require: true,
},
@ -487,15 +491,15 @@ export default {
cu.removePoint();
if (val.length !== 0) {
for (let i in val) {
cu.addPoint(val[i].lng, val[i].lat, 10);
cu.addPoint(val[i].lon, val[i].lat, 10);
}
}
this.multipleSelection = val;
},
getSplData() {
getSamplesList(this.orderId).then((res) => {
getOrderSamples(this.orderId, this.productSubType).then((res) => {
if (res.code == 200) {
let rd = res.data.list;
let rd = res.data;
if (rd.length > 0) {
for (const i in rd) {
//
@ -506,10 +510,12 @@ export default {
this.$refs.multipleTable.toggleAllSelection();
let min = Number.MAX_SAFE_INTEGER;
let max = Number.MIN_SAFE_INTEGER;
this.$store.commit("setAltRange", null);
this.allSampleData.forEach((k, v) => {
k.dataTime = this.formatDatetime(k.dataTime);
const xqsmParam = JSON.parse(k.paramStr);
const xqsmParam = k;
if (xqsmParam.alt) {
min = min > xqsmParam.alt ? xqsmParam.alt : min;
max = max < xqsmParam.alt ? xqsmParam.alt : max;

View File

@ -3,81 +3,36 @@
<div class="realResult">
<div class="box1"><span class="sp1"></span><span class="sp2">真实性检验结果</span></div>
<div class="resContent">
<el-table
:header-cell-style="headerRowClass"
:cell-style="tableRowClassName"
style="width: 100%"
:data="tDatas"
:stripe="true"
class="table-head-transparent"
size="medium"
>
<el-table-column
v-for="(item, index) in Object.keys(tData).slice(0, midValue)"
:key="index"
:label="item | truthFunFilter"
:property="item"
align="center"
>
<el-table :header-cell-style="headerRowClass" :cell-style="tableRowClassName" style="width: 100%"
:data="tDatas" :stripe="true" class="table-head-transparent" size="medium">
<el-table-column v-for="(item, index) in Object.keys(tData).slice(0, midValue)" :key="index"
:label="item | truthFunFilter" :property="item" align="center">
<template slot-scope="scope">{{ scope.row[item] }}</template>
</el-table-column>
</el-table>
<el-table
:header-cell-style="headerRowClass"
:cell-style="tableRowClassName"
style="width: 100%; margin-top: 16px"
:data="tDatas"
:stripe="true"
class="table-head-transparent"
size="medium"
>
<el-table-column
v-for="(item, index) in Object.keys(tData).slice(midValue)"
:key="index"
:label="item | truthFunFilter"
:property="item"
align="center"
>
<el-table :header-cell-style="headerRowClass" :cell-style="tableRowClassName"
style="width: 100%; margin-top: 16px" :data="tDatas" :stripe="true" class="table-head-transparent"
size="medium">
<el-table-column v-for="(item, index) in Object.keys(tData).slice(midValue)" :key="index"
:label="item | truthFunFilter" :property="item" align="center">
<template slot-scope="scope">{{ scope.row[item] }}</template>
</el-table-column>
</el-table>
<!--<span v-for="(item,index) in resMap" :key="index">{{item.name | truthFunFilter}}{{item.val}}</span>-->
<div v-if="meanError.length !== 0">
<el-table
:header-cell-style="headerRowClass"
:cell-style="tableRowClassName"
style="width: 100%"
:data="meanError"
:stripe="true"
size="medium"
>
<el-table-column
prop="8_0"
label="平均相对误差相对X轴误差"
align="center"
v-if="meanError[0]['8_0'] != null"
>
<el-table :header-cell-style="headerRowClass" :cell-style="tableRowClassName" style="width: 100%"
:data="meanError" :stripe="true" size="medium">
<el-table-column prop="8_0" label="平均相对误差相对X轴误差" align="center"
v-if="meanError[0]['8_0'] != null">
</el-table-column>
<el-table-column
prop="8_1"
label="平均相对误差相对Y轴误差"
align="center"
v-if="meanError[0]['8_1'] != null"
>
<el-table-column prop="8_1" label="平均相对误差相对Y轴误差" align="center"
v-if="meanError[0]['8_1'] != null">
</el-table-column>
<el-table-column
prop="24_0"
label="平均绝对相对误差相对X轴误差"
align="center"
v-if="meanError[0]['24_0'] != null"
>
<el-table-column prop="24_0" label="平均绝对相对误差相对X轴误差" align="center"
v-if="meanError[0]['24_0'] != null">
</el-table-column>
<el-table-column
prop="24_1"
label="平均绝对相对误差相对Y轴误差"
align="center"
v-if="meanError[0]['24_1'] != null"
>
<el-table-column prop="24_1" label="平均绝对相对误差相对Y轴误差" align="center"
v-if="meanError[0]['24_1'] != null">
</el-table-column>
</el-table>
</div>
@ -149,17 +104,17 @@ export default {
filters: {
truthFunFilter(truthFun) {
const truthFunMap = {
4: "平均误差",
9: "平均绝对误差",
5: "相对误差",
8: "平均相对误差",
24: "平均绝对相对误差",
6: "均方根误差",
23: "平面中误差",
0: "平均误差",
1: "平均绝对误差",
2: "相对误差",
3: "平均相对误差",
4: "平均绝对相对误差",
5: "均方根误差",
6: "平面中误差",
7: "相关系数",
12: "误差矩阵",
14: "总体分类精度",
13: "Kappa系数",
8: "误差矩阵",
9: "总体分类精度",
10: "Kappa系数",
};
return truthFunMap[truthFun];
},
@ -343,10 +298,10 @@ export default {
const x_limit = Math.abs((Math.max(...xArr) - Math.min(...xArr)) / xArr.length);
// const y_limit = Math.abs((Math.max(...observedValues) - Math.min(...observedValues)) / observedValues.length);
//
let wcpf = data.map(a=>{
return Math.pow((a[1]-a[0]),2)
let wcpf = data.map(a => {
return Math.pow((a[1] - a[0]), 2)
}).reduce((acc, curr) => acc + curr, 0);
let rmseValue = "RMSE = "+ Math.sqrt(wcpf/data.length);
let rmseValue = "RMSE = " + Math.sqrt(wcpf / data.length);
let myRegression = this.echartRegression("polynomial", data, 1);
// R2
this.erR2 = "r² = " + this.calculateR2(observedValues, predictedValues);
@ -443,17 +398,17 @@ export default {
// }
// },
{
name:"RMSE",
name: "RMSE",
icon: "circle",
itemStyle: {
color:"#FFF"
color: "#FFF"
}
}
],
formatter: (name) => {
if (name === "erExpression") return this.erExpression;
else if (name === "r2") return this.erR2;
else if(name ==="RMSE") return rmseValue;
else if (name === "RMSE") return rmseValue;
},
},
xAxis: {
@ -474,7 +429,7 @@ export default {
nameTextStyle: {
lineHeight: 30,
height: 60,
// fontWeight: "bold",
// fontWeight: "bold",
fontSize: 13,
padding: [0, 0, 20, 0],
},
@ -630,7 +585,7 @@ export default {
{
// symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAjVJREFUeF7tmM1JAwEYBb90Yg1WYGeWYhd69OTVEjxagldlJeAfibtkIBOYgARk8/ZlJm/jupseKgI7VZvKTEJkH4KEJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREaAq3M9M8+nxrWQUwl+vf59Zl5m5mFm7vfPy+82PRKyCdfRg3/Df9tLWQQtP69rTpWQNZTWHfPfGp6+CTp4aVuE3M7MzbpzdtQRAlsYHry0LUIeE3LWD9qPS1tCzuri8+R/hNzNzNX5e118A+ySdfEkJG8A+1KXvJ+Lr9GfvTKF3RjKhPSvE5kQpE536ghGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLuQDLNIwmfEn5ZUAAAAASUVORK5CYII=",
// symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAv0lEQVR4nO3UsUmEQRCA0U801cASxECwAUOrMLEly7CGM7OAM/ZSCxBzA0ERLjqQQ3G5X//3YLPdYWZ2dgMAAAAAAAAAAIBd25/hDVxUR9Xzdw/OsVmn1bK6qk6qt+ppAnlN0mX1vrFeqtvqujr+Kum9CRe1HBT3sDrbsue+WlR31WpQHr9q8/Z3tR6rm8/CDibcrIdBcf/lZI3y4z9rypM12mo9OYv1JG01x2a9Vudzf14AAAAAAAAAAAD8RdUHTdhBNENzGoYAAAAASUVORK5CYII=",
symbol:"image://" + arrow,
symbol: "image://" + arrow,
symbolRotate: (number, params) => {
console.log(number, params);
return bearingArr[params.dataIndex];
@ -662,17 +617,20 @@ export default {
width: 100%;
height: 100%;
}
.realResult {
width: 100%;
height: calc(55% - 5px);
background-color: white;
margin-bottom: 5px;
}
.errorGraph {
width: 100%;
height: 45%;
background-color: white;
}
.resContent {
border: 1px black solid;
height: calc(100% - 60px);
@ -680,11 +638,13 @@ export default {
margin: 10px;
font-size: 20px;
overflow-y: scroll;
span {
display: block;
margin: 10px;
}
}
.errContent {
border: 1px black solid;
height: calc(100% - 60px);
@ -692,16 +652,19 @@ export default {
margin: 10px;
position: relative;
}
#rtReportEcharts {
width: 100%;
height: 100%;
position: relative;
}
.box1 {
height: 40px;
line-height: 40px;
border-bottom: 1px solid rgb(205, 205, 205, 0.5);
}
.sp1 {
display: inline-block;
width: 7px;
@ -711,6 +674,7 @@ export default {
margin-left: 20px;
margin-top: 8px;
}
.sp2 {
margin-left: 10px;
font-size: 20px;
@ -728,10 +692,12 @@ export default {
display: flex;
justify-content: center;
align-items: center;
.line {
height: 20px;
line-height: 20px;
margin: 0 5px;
.circle {
display: inline-block;
width: 7px;
@ -740,6 +706,7 @@ export default {
border-radius: 50%;
margin-right: 5px;
}
.circle_2 {
display: inline-block;
width: 7px;
@ -750,16 +717,19 @@ export default {
}
}
}
.erTip {
position: absolute;
top: 10px;
right: 26px;
font-size: small;
text-align: end;
.echartReg {
height: 20px;
line-height: 20px;
margin: 0 5px;
.echartRegName {
display: inline-block;
width: 9px;

View File

@ -33,7 +33,8 @@ const url = {
const serverUrl = DQYSERVER_URL;
const langServerUrl = LXYSERVER_URL;
const urlprefix = {
pdfUrlPrefix: `${serverUrl}/microwaveData/pdf/`,
// pdfUrlPrefix: `${serverUrl}/microwaveData/pdf/`,
pdfUrlPrefix: `http://192.168.1.205:8081/microwaveData/pdf/`,
samePoiImgsUrl: `${serverUrl}/microwaveData/samePoiImgs/`,
geoserverUrl: `${serverUrl}/geoserver/gwc/service/wmts`,
otgGeoServerUrl: `${serverUrl}/geoserver/gwc/service/wmts`,

View File

@ -1,16 +1,16 @@
export const productSubTypeVal = {
ACS_ORTHOPHOTO: 45, // 正射产品校验
ACS_DEM: 46, // 高程产品校验
ACS_BACKSCATTERINGCOEFFICIENT: 51, // 后向散射系数产品校验
ACS_ATMOSPHERICDELAYCORRECTION: 52, // 大气延迟校正产品校验
ACS_DEFORMATION: 53, // 干涉测量形变产品校验
ACS_TYPESOFLANDCOVER: 39, // 地表覆盖类型产品校验
ACS_SOILMOISTURE: 38, // 土壤水分产品校验
ACS_SOILSALINITYINVERSION: 49, // 土壤盐碱度产品校验
ACS_SURFACEROUGHNESS: 50, // 地表粗糙度产品校验
ACS_GROUNDVEGETATIONHEIGHT: 48, // 植被高度产品校验
ACS_GROUNDLEAFAREAINDEX: 43, // 叶面积指数产品校验
ACS_VEGETATIONPHENOLOGY: 47 // 植被物候产品校验
ACS_ORTHOPHOTO: 1, // 正射产品校验
ACS_DEM: 2, // 高程产品校验
ACS_BACKSCATTERINGCOEFFICIENT: 3, // 后向散射系数产品校验
ACS_ATMOSPHERICDELAYCORRECTION: 4, // 大气延迟校正产品校验
ACS_DEFORMATION: 5, // 干涉测量形变产品校验
ACS_TYPESOFLANDCOVER: 6, // 地表覆盖类型产品校验
ACS_SOILMOISTURE: 7, // 土壤水分产品校验
ACS_SOILSALINITYINVERSION: 8, // 土壤盐碱度产品校验
ACS_SURFACEROUGHNESS: 9, // 地表粗糙度产品校验
ACS_GROUNDVEGETATIONHEIGHT: 10, // 植被高度产品校验
ACS_GROUNDLEAFAREAINDEX: 11, // 叶面积指数产品校验
ACS_VEGETATIONPHENOLOGY: 12 // 植被物候产品校验
};
export const pixelFunVal = {
PHM_AVERAGING: 1, // 均值法
@ -20,17 +20,17 @@ export const pixelFunVal = {
PHM_MSN: 10 // MSN法
};
export const truthFunVal = {
ACM_MEANERROR: 4, // 平均误差
ACM_MEANABSOLUTEERROR: 9, // 平均绝对误差
ACM_RELATIVEERROR: 5, // 相对误差
ACM_MEANRELATIVEERROR: 8, // 平均相对误差
ACM_ROOTMANSQUAREERROR: 6, // 均方根误差
ACM_MEANERROR: 0, // 平均误差
ACM_MEANABSOLUTEERROR: 1, // 平均绝对误差
ACM_RELATIVEERROR: 2, // 相对误差
ACM_MEANRELATIVEERROR: 3, // 平均相对误差
ACM_ROOTMANSQUAREERROR: 5, // 均方根误差
ACM_CORRELATIONCOEFFICIENT: 7, // 相关系数
ACM_ERRORMATRIX: 12, // 误差矩阵(混淆矩阵)
ACM_OVERALLACCURACY: 14, // 总体分类精度
ACM_KAPPA: 13, // Kappa系数
ACM_MEANABSOLUTERELATIVEERROR: 24, // 平均绝对相对误差
ACM_PLANENESSERROR: 23, // 平面中误差
ACM_ERRORMATRIX: 8, // 误差矩阵(混淆矩阵)
ACM_OVERALLACCURACY: 9, // 总体分类精度
ACM_KAPPA: 10, // Kappa系数
ACM_MEANABSOLUTERELATIVEERROR: 4, // 平均绝对相对误差
ACM_PLANENESSERROR: 6, // 平面中误差
ACM_REALVALLIST: 11, //真值数组记录
ACM_OTGERROR:112, //正射误差记录
ACM_OTGERROR:12, //正射误差记录
};

View File

@ -1,59 +1,58 @@
//产品枚举映射
//真实性检验方法映射
export function productTypeMap(pdtype) {
const pdtypeMap = {
45: "正射产品",
46: "高程产品",
51: "后向散射系数产品",
52: "大气延迟校正产品",
53: "干涉测量形变产品",
39: "地表覆盖类型产品",
38: "土壤水分产品",
49: "土壤盐碱度产品",
50: "地表粗糙度产品",
48: "植被高度产品",
43: "叶面积指数产品",
47: "植被物候产品"
1: "正射产品",
2: "高程产品",
3: "后向散射系数产品",
4: "大气延迟校正产品",
5: "干涉测量形变产品",
6: "地表覆盖类型产品",
7: "土壤水分产品",
8: "土壤盐碱度产品",
9: "地表粗糙度产品",
10: "植被高度产品",
11: "叶面积指数产品",
12: "植被物候产品",
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
//产品--样本类型映射
export function productTypeSplMap(pdtype) {
const pdtypeMap = {
45: "正射样本",
46: "高程样本",
51: "后向散射系数样本",
52: "大气延迟校正样本",
53: "干涉测量形变样本",
39: "地表覆盖类型样本",
38: "土壤水分样本",
49: "土壤盐碱度样本",
50: "地表粗糙度样本",
48: "植被高度样本",
43: "叶面积指数样本",
47: "植被物候样本"
1: "正射样本",
2: "高程样本",
3: "后向散射系数样本",
4: "大气延迟校正样本",
5: "干涉测量形变样本",
6: "地表覆盖类型样本",
7: "土壤水分样本",
8: "土壤盐碱度样本",
9: "地表粗糙度样本",
10: "植被高度样本",
11: "叶面积指数样本",
12: "植被物候样本",
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
//真实性检验方法映射
export function truthFunctionsMap(truthFun) {
const truthFunMap = {
4: "平均误差",
9: "平均绝对误差",
5: "相对误差",
8: "平均相对误差",
24: "平均绝对相对误差",
6: "均方根误差",
23: "平面中误差",
0: "平均误差",
1: "平均绝对误差",
2: "相对误差",
3: "平均相对误差",
4: "平均绝对相对误差",
5: "均方根误差",
6: "平面中误差",
7: "相关系数",
12: "误差矩阵",
14: "总体分类精度",
13: "Kappa系数",
8: "误差矩阵",
9: "总体分类精度",
10: "Kappa系数",
11: "产品真值",
112: "正射误差列表",
12: "正射误差列表",
};
if (truthFun == null) return null;
else return truthFunMap[truthFun];
@ -62,9 +61,9 @@ export function truthFunctionsMap(truthFun) {
// 抽样方法枚举转换
export function transformSlp(sampleFun) {
const sampleFunMap = {
"1": "随机抽样",
"2": "分层抽样",
"3": "等距抽样"
0: "随机抽样",
1: "分层抽样",
2: "等距抽样",
};
if (sampleFun == null) return null;
else return sampleFunMap[sampleFun];
@ -72,35 +71,35 @@ export function transformSlp(sampleFun) {
// 像元级方法枚举转换
export function transformPcMethod(pixelDealFun) {
const pixelDealFunMap = {
"1": "均值法",
"6": "最邻近法",
"7": "克里格法",
"9": "块克里格法",
"10": "MSN法"
0: "均值法",
1: "最邻近法",
2: "克里格法",
3: "块克里格法",
4: "MSN法",
};
if (pixelDealFun == null) return null;
else return pixelDealFunMap[pixelDealFun];
}
export const PIXELDEALFUNOPTION = [
{
value: "0",
label: "均值法",
},
{
value: "1",
label: "均值法"
label: "最邻近法",
},
{
value: "6",
label: "最邻近法"
value: "2",
label: "克里格法",
},
{
value: "7",
label: "克里格法"
value: "3",
label: "克里格法",
},
{
value: "9",
label: "块克里格法"
value: "4",
label: "MSN法",
},
{
value: "10",
label: "MSN法"
}
];

106
src/lib/variateMap2.js Normal file
View File

@ -0,0 +1,106 @@
//产品枚举映射
export function productTypeMap(pdtype) {
const pdtypeMap = {
45: "正射产品",
46: "高程产品",
51: "后向散射系数产品",
52: "大气延迟校正产品",
53: "干涉测量形变产品",
39: "地表覆盖类型产品",
38: "土壤水分产品",
49: "土壤盐碱度产品",
50: "地表粗糙度产品",
48: "植被高度产品",
43: "叶面积指数产品",
47: "植被物候产品"
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
//产品--样本类型映射
export function productTypeSplMap(pdtype) {
const pdtypeMap = {
45: "正射样本",
46: "高程样本",
51: "后向散射系数样本",
52: "大气延迟校正样本",
53: "干涉测量形变样本",
39: "地表覆盖类型样本",
38: "土壤水分样本",
49: "土壤盐碱度样本",
50: "地表粗糙度样本",
48: "植被高度样本",
43: "叶面积指数样本",
47: "植被物候样本"
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
//真实性检验方法映射
export function truthFunctionsMap(truthFun) {
const truthFunMap = {
4: "平均误差",
9: "平均绝对误差",
5: "相对误差",
8: "平均相对误差",
24: "平均绝对相对误差",
6: "均方根误差",
23: "平面中误差",
7: "相关系数",
12: "误差矩阵",
14: "总体分类精度",
13: "Kappa系数",
11: "产品真值",
112: "正射误差列表",
};
if (truthFun == null) return null;
else return truthFunMap[truthFun];
}
// 抽样方法枚举转换
export function transformSlp(sampleFun) {
const sampleFunMap = {
"1": "随机抽样",
"2": "分层抽样",
"3": "等距抽样"
};
if (sampleFun == null) return null;
else return sampleFunMap[sampleFun];
}
// 像元级方法枚举转换
export function transformPcMethod(pixelDealFun) {
const pixelDealFunMap = {
"1": "均值法",
"6": "最邻近法",
"7": "克里格法",
"9": "块克里格法",
"10": "MSN法"
};
if (pixelDealFun == null) return null;
else return pixelDealFunMap[pixelDealFun];
}
export const PIXELDEALFUNOPTION = [
{
value: "1",
label: "均值法"
},
{
value: "6",
label: "最邻近法"
},
{
value: "7",
label: "克里格法"
},
{
value: "9",
label: "块克里格法"
},
{
value: "10",
label: "MSN法"
}
];

View File

@ -178,17 +178,15 @@ export default {
cu.addlayer(geoWS, geoLN);
const gp = this.reportMsg.geoLayerPos;
cu.flyToLayerRect(gp[0], gp[1], gp[2], gp[3]);
const sd = this.sampleData;
if (this.pdSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
for (let i in sd) {
cu.addPoint(sd[i].measureLong, sd[i].measureLat, 10);
cu.addPoint(sd[i].lon, sd[i].lat, 10);
}
} else {
for (let i in sd) {
const alt = JSON.parse(sd[i].paramStr).alt;
cu.addPoint(sd[i].lng, sd[i].lat, alt !== "null" ? alt : 10);
const alt = sd[i].alt;
cu.addPoint(sd[i].lon, sd[i].lat, alt !== "null" ? alt : 10);
}
}
@ -253,11 +251,10 @@ export default {
init() {
const self = this;
const rpm = (self.reportMsg = this.queryParams);
console.log("1111111", rpm);
self.realRes = rpm.reportResult;
self.pdSubType = rpm.pdSubType;
const rsl = (self.sampleData = rpm.sampleList);
//
if (rpm.pdSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
let otgVal = [];
@ -278,6 +275,7 @@ export default {
self.realRes.otgVal = otgVal;
}
const md = rpm.metaData;
self.rpDataMsg = {
satellite: md.satellite,
load: md.load,
@ -292,8 +290,10 @@ export default {
centerPoint: "POINT(" + md.centerLon + "," + md.centerLat + ")",
};
},
//
exportPdf(rpm) {
console.log(rpm,'rpm');
const self = this;
const asmo = rpm.orderMsg;
const asmp = rpm.productMsg;
@ -357,18 +357,18 @@ export default {
category: category,
categoryType: productTypeSplMap(self.pdSubType),
product: productTypeMap(self.pdSubType),
orderID: asmo.orderCode,
orderID: rpm.orderId,
reportMaker: rpm.userName,
orderCreateTime: asmo.createDate,
orderCreateTime: asmo.create_date,
orderStartTime: crTime.startTime,
orderEndTime: crTime.endTime,
reportCreateTime: asmo.createDate,
inspectorName: rpm.userName,
productFileName: asmp.fileName,
productFileName: asmo.fileName,
resolution: asmm.resRatio + "",
productCreateTime: asmp.collectDate,
productCreateTime: asmo.productDate,
coordinatSeystem: asmm.coordinateSys,
sampleTimeRequest: asmo.queryStartTime + " - " + asmo.queryEndTime,
sampleTimeRequest: asmo.simpleStartTime + " - " + asmo.simpleEndTime,
sampleType: "点",
sampleCount: rpm.sampleList.length + "",
// areaLeftUp: asmm.minLon + "," + asmm.maxLat,
@ -381,7 +381,7 @@ export default {
sampleList: JSON.stringify(rpm.sampleList),
inspectionResultList: iatResArr,
imgData: this.base64Data,
errorList: errorList,
errorList:errorList,
realList: realList,
otgError: otgError,
sampleImgFd: rpm.imgRes.sampleImgFd,
@ -392,7 +392,8 @@ export default {
load: asmm.load,
pixelHandleMsg: rpm.pixelHandleMsg,
projStr: rpm.projStr,
sampleFun: rpm.sampleFun
sampleFun: rpm.sampleFun,
sampleNum: rpm.sampleNum,
};
this.qyReportMsg = pdfMsg;
const pdfName = productTypeMap(self.pdSubType) + "报告";
@ -509,7 +510,6 @@ export default {
qyReportOpt["sampleUnit"] = this.sampleUintQy;
qyReportOpt["sampleimgFd"] = qyReportOpt.sampleImgFd;
otgPdfMsg(qyReportOpt).then(res=>{
console.log(11111111,res);
if(res.code == 200 && res.data =="保存成功") window.location.href = `${DAICHULI_URL}?token=${this.reportMsg.token}`;
})
break;
@ -517,7 +517,6 @@ export default {
case psVal.ACS_VEGETATIONPHENOLOGY:
qyReportOpt["sampleimgFd"] = qyReportOpt.sampleImgFd;
coverPdfMsg(qyReportOpt).then(res=>{
console.log(11111111,res);
if(res.code == 200 && res.data =="保存成功") window.location.href = `${DAICHULI_URL}?token=${this.reportMsg.token}`;
})
break;
@ -533,7 +532,6 @@ export default {
qyReportOpt["sampleUnit"] = this.sampleUintQy;
qyReportOpt["sampleimgFd"] = qyReportOpt.sampleImgFd;
otherPdfMsg(qyReportOpt).then(res=>{
console.log(11111111,res);
if(res.code == 200 && res.data =="保存成功") window.location.href = `${DAICHULI_URL}?token=${this.reportMsg.token}`;
})
break;

View File

@ -180,6 +180,7 @@ import {
checkReality,
resetCheck
} from "@/api/lang/pendingOrder";
import qs from "qs";
import html2canvas from "@/lib/html2canvas.js"
import { productSubTypeVal, truthFunVal } from "@/lib/contract.js";
@ -198,12 +199,14 @@ export default {
this.configration.path.orderUnprocessed
) {
this.queryParams = this.$route.params;
} else {
this.queryParams = JSON.parse(
localStorage.getItem(this.configration.path.orderUnprocessed)
);
}
document.body.scrollTop = 0;
this.initOrderPMsg();
this.setTruthFunOpt();
},
@ -219,7 +222,7 @@ export default {
truthFun: false,
productSubType: undefined,
featureMapData: [],
orderId: undefined,
orderId: null,
userId: null,
userName: null,
token: null,
@ -256,19 +259,23 @@ export default {
initOrderPMsg() {
let self = this;
const am = (self.allMsg = this.queryParams);
console.log(am,'am-----1111111111111111111');
console.log(localStorage.userId, localStorage.userName);
console.log(localStorage.getItem('userId'), localStorage.getItem('userName'));
self.userId = localStorage.userId;
self.userName = localStorage.userName;
self.token = localStorage.token;
// self.token = localStorage.token;
const om = (self.orderMsg = self.allMsg.orderMsg);
self.orderId = om.orderId;
const pdType = om.productSubClassId;
self.productSubType = pdType;
self.orderId = am.orderId;
const pdType = om.productSubclassId;
self.productSubType = pdType;
// self.featureMapData = om.landCoverTypeVOList;
self.featureMapData = am.groudClassData;
// self.featureMapData = pdType === 39 ? om.landCoverTypeVOList : JSON.parse(am.productMsg.microwaveDataJson).vegetationPhenology;
self.formInline = am.metaMsg;
self.orderData = am.orderData;
self.pixelNum = am.metaMsg.resRatio;
@ -281,52 +288,34 @@ export default {
];
const pm = (self.productMsg = am.productMsg);
self.geoWorkSpace = pm.geoWorkspace;
self.geoLayerName = pm.geoLayerName;
self.geoWorkSpace = om.geoWorkspace;
self.geoLayerName = om.layerName;
// self.tifPath = pm.ftpPath;
//访
let rt = pm.ftpPath.split('/');
self.tifPath = 'http://10.0.31.125:18030/inspection/files/' + rt[rt.length - 1];
self.projection = pm.projection;
self.microwaveDataJson = self.productMsg.microwaveDataJson
//
// getAnalyseMethod(self.orderId).then((res) => {
// // console.log('',res);
// if (res.code === 200) {
// let truthFun = res.data.default;
// if (res.data.selected.length !== 0) truthFun = res.data.selected;
// if (truthFun.length !== 0) {
// const tfArr = [];
// for (let i in truthFun) {
// tfArr.push(truthFun[i].id);
// }
// self.formInline.truthCheckFun = tfArr;
// self.truthFun = true;
// }
// }
// });
self.tifPath = om.tifPath;
self.projection = am.productMsg.coordinateSystem;
self.microwaveDataJson = null;
//
if (om.processMethods !== null) {
const pm = om.processMethods;
const pmVal = Object.keys(pm)[0];
self.pixelFun = pmVal.toString();
}
if (self.pixelFun !== "") {
self.pdShow = true;
self.$store.commit("setPixelFun", self.pixelFun);
}
// if (om.processMethods !== null) {
// const pm = om.processMethods;
// const pmVal = Object.keys(pm)[0];
// self.pixelFun = pmVal.toString();
// }
// if (self.pixelFun !== "") {
// self.pdShow = true;
// self.$store.commit("setPixelFun", self.pixelFun);
// }
//
if (om.samplingMethodId !== null)
self.sampleFun = om.samplingMethodId + "";
if (self.sampleFun !== "") {
self.$store.commit("setSampleFun", self.sampleFun);
}
// //
// if (om.samplingMethodId !== null)
// self.sampleFun = om.samplingMethodId + "";
// if (self.sampleFun !== "") {
// self.$store.commit("setSampleFun", self.sampleFun);
// }
if (om.samplingMethodCldId !== null) {
self.sampleCldFun = om.samplingMethodCldId + "";
}
// if (om.samplingMethodCldId !== null) {
// self.sampleCldFun = om.samplingMethodCldId + "";
// }
},
tableRowClassName({ rowIndex }) {
if ((rowIndex + 1) % 2 !== 0) {
@ -366,10 +355,9 @@ export default {
this.sampleList = smpVal.multipleSelection;
// if (featureMapData !== [] || featureMapData.length !== 0)
// this.updateCoverType(featureMapData);
const orderId = this.orderId;
//
const tcf = this.formInline.truthCheckFun;
if (this.sampleList.length === 0) {
this.$message.error("请选择样本数据");
return false;
@ -382,7 +370,7 @@ export default {
const allSampleData = smpVal.allSampleData;
this.addCotSamples(this.sampleList, allSampleData, orderId);
//
this.updateTruthFun(orderId, tcf);
// this.updateTruthFun(orderId, tcf);
this.checkRealityWait = true;
// setTimeout(() => {
// this.screenCapture(this.sampleList, this.geoLayerPos).then(imgRes => {
@ -393,7 +381,7 @@ export default {
var formData = new FormData();
formData.append("orderId", orderId); //ID
formData.append("productType", this.productSubType); //
formData.append("isHttpUrl", true); //
formData.append("isHttpUrl", false); //
formData.append("dataPath", this.tifPath); //
formData.append("samples", JSON.stringify(this.sampleList)); //
if (this.pixelFun !== "")
@ -446,8 +434,13 @@ export default {
imgRes: imgRes,
pixelHandleMsg: pixelHandleMsg,
projStr: res.projStr,
sampleFun: theSampleFun
sampleFun: theSampleFun,
sampleNum: rm.sampleNum,
simpleEndTime: this.orderMsg.simpleEndTime,
simpleStartTime: this.orderMsg.simpleStartTime,
};
console.log(reportMsg,'reportMsg');
localStorage.setItem(
this.configration.path.inspection,
JSON.stringify(reportMsg)
@ -469,22 +462,24 @@ export default {
}
});
},
screenCapture(allSampel, gp) {
return new Promise((resolve) => {
const allLon = [], allLat = [];
if (this.productSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
for (let i in allSampel) {
allLon.push(allSampel[i].measureLong);
allLat.push(allSampel[i].measureLat);
allLon.push(allSampel[i].lon);
allLat.push(allSampel[i].lat);
}
} else {
for (let i in allSampel) {
allLon.push(allSampel[i].lng);
allLon.push(allSampel[i].lon);
allLat.push(allSampel[i].lat);
}
}
const sampleExtent = [Math.min(...allLon), Math.min(...allLat), Math.max(...allLon), Math.max(...allLat)]
this.setViewToRect(sampleExtent[0], sampleExtent[1], sampleExtent[2], sampleExtent[3]);
setTimeout(() => {
this.getCaptrue('样本放大').then(res => {
this.setViewToRect(gp[0], gp[1], gp[2], gp[3]);
@ -505,6 +500,7 @@ export default {
}, 1000)
})
}, 1000)
document.querySelector('.cesium-viewer-toolbar').style.display = 'block';
})
},
getCaptrue(picName) {
@ -574,7 +570,7 @@ export default {
const dsForm = new FormData();
dsForm.append("orderId", orderId);
dsForm.append("idList", isDel);
delSampleData(dsForm);
// delSampleData(dsForm);
},
//
updateTruthFun(orderId, tcf) {
@ -691,6 +687,7 @@ export default {
</script>
<style scoped lang="less">
.Fade-enter,
.Fade-leave-to {
opacity: 0;

View File

@ -289,8 +289,6 @@ export default {
const orderId = (self.orderId = this.$route.query.orderId);
const productId = (self.productId = this.$route.query.productId);
const orderCode = (self.orderCode = this.$route.query.orderCode);
console.log(orderId,productId,orderCode);
getOrderAndProduct(JSON.stringify({ productId: Number(productId), orderCode: orderCode })).then((res) => {
function formatFileSize(bytes) {
if (bytes === 0) return '0 B';
@ -301,7 +299,6 @@ export default {
}
if (res.code === 200) {
self.orderMsg = res.data;
console.log(res.data,'1231321');
self.productType = res.data.productType;
// const psId = res.data.productSubClassId;
@ -309,10 +306,8 @@ export default {
getProductMetaMsg(JSON.stringify({ dataPath: res.data.tifPath })).then((res) => {
if (res.code === 200) {
const pm = (self.productMsg = res.data);
console.log(pm, 'pm');
const om = self.orderMsg;
console.log(om, 'om');
//
self.orderData = [];
self.orderData.push({
@ -323,14 +318,10 @@ export default {
fileSize: formatFileSize(om.fileSize),
fileFormat: om.fileFormat,
});
console.log(self.orderData, 'self.orderData');
const minLat = parseFloat(Number(pm.boundBoxMinY).toFixed(8));
const maxLat = parseFloat(Number(pm.boundBoxMaxY).toFixed(8));
const minLon = parseFloat(Number(pm.boundBoxMinX).toFixed(8));
const maxLon = parseFloat(Number(pm.boundingBoxMaxX).toFixed(8));
console.log(minLat, maxLat, minLon, maxLon, 'minLat,maxLat,minLon,maxLon');
//
self.formInline = {
satellite: om.satelliteName,
@ -395,9 +386,11 @@ export default {
},
inspection() {
let param = {
userId: this.userId,
userName: this.userName,
token: this.token,
// userId: this.userId,
// userName: this.userName,
// token: this.token,
orderId: this.orderId,
orderCode: this.orderCode,
orderMsg: this.orderMsg,
productMsg: this.productMsg,
orderData: this.orderData,

View File

@ -165,7 +165,6 @@ export default {
//
// 153079 :153086 153087 152945
console.log(orderMsg,1231232);
// this.$router.push(`/orderUnprocessed?orderId=${orderMsg.id}&token=WEB*1719907102702@TY84_ZZX-gxfw001132_4ff8a6f9de7f4d37837ba22354972efb`);
this.$router.push(`/orderUnprocessed?productId=${orderMsg.product_upload_id}&orderId=${orderMsg.id}&orderCode=${orderMsg.order_code}`);