Java+iClient Openlayers Realizes Soil Moisture and Drought Disaster Simulation Forecasting and Early Warning Analysis

Application and software implementation renderings:

1. Application background

As a person who grew up in the countryside, I am very concerned about the impact of natural disasters and climate change on land drought and moisture. In recent years, droughts and floods have occurred frequently in many places, posing a great threat to people's lives and properties. Therefore, drought and moisture simulation has become a very important research direction, aiming to improve our ability to predict and respond to climate change. By simulating drought and moisture, we can better understand the impact of soil moisture, vegetation cover, precipitation and other factors on drought and flood disasters, so as to better formulate countermeasures to protect the ecological environment of humans and the earth.

Drought and moisture simulation has a lot of potential for dealing with natural disasters. For example, it can help us predict the occurrence and impact of natural disasters more quickly and accurately, so as to take countermeasures in advance and reduce casualties and property losses. In addition, after a natural disaster occurs, by analyzing data and images, it can help people in the disaster area restore production and life order more quickly. In short, the simulation analysis of drought disasters has great potential in protecting human beings and the earth's ecological environment. We should give full play to its advantages and make greater contributions to the future of human beings.

Although simulation analysis has potential in natural disasters and environmental protection, we should also recognize that this is still an emerging technology that needs to be continuously refined and developed. We should strengthen the research and application of drought simulation technology, and at the same time pay attention to complying with ethical and legal regulations to ensure that the application of technology is in line with social justice and human values. I believe that with the joint efforts of all parties, the simulation of drought and moisture will create a better future for us.

Concepts and knowledge base related to land texture and land use:

2. Application scenarios

 

 3. The software realizes the calibration code of key parameters

data () { 
  return { 
    layers: 11, 
    isPanelShow: false, 
    clayersInfo: [], 
    soilTextureOptions: [{ 
      value: 0, 
      p: 0.12, 
      label: 'clay', 
    }, { 
      value: 1, 
      p: 0.15, 
      label: 'Powder clay' 
    }, { 
      value: 2, 
      p: 0.17, 
      label: 'Powder clay loam' 
    }, { 
      value: 3, 
      p: 0.20, 
      label: 'sand clay' 
    }, { 
      value: 4, 
      p: 0.22, 
      label: 'sand clay loam' 
    }, { 
      value: 5, 
      p: 0.27, 
      label: 'clay loam' 
    },{
      value: 6, 
      p: 0.31, 
      label: 'silt soil' 
    }, { 
      value: 7, 
      p: 0.32, 
      label: 'silt loam' 
    }, { 
      value: 8, 
      p: 0.33, 
      label: 'loam' 
    }, { 
      value: 9, 
      p: 0.42, 
      label: 'sandy soil' 
    }, { 
      value: 10, 
      p: 0.37, 
      label: 'loamy sandy soil' 
    },{ 
      value: 11, 
      p: 0.39, 
      label: 'sandy loamy soil' 
    } ], 
    uslsOptions: [{ 
      value: 0, 
      p: 0.01, 
      label: 'paddy field' 
    }, { 
      value: 1,
      p: 0.3, 
      label: 'dry land' 
    }, { 
      value: 2, 
      p: 0.2, 
      label: 'woodland' 
    }, { 
      value: 3, 
      p: 0.2, 
      label: 'shrub land' 
    }, { 
      value: 4, 
      p: 0.23, 
      label: 'Sparse forest land' 
    }, { 
      value: 5, 
      p: 0.21, 
      label: 'Other woodland' 
    },{ 
      value: 6, 
      p: 0.21, 
      label: 'High coverage grassland' 
    }, { 
      value : 7, 
      p: 0.26, 
      label: 'medium coverage grassland' 
    }, { 
      value: 8, 
      p: 0.31,  
      label:'Low Coverage Grassland'
    },{
      value: 9, 
      p: 0.01, 
      label: 'river' 
    }, { 
      value: 10, 
      p: 0.01, 
      label: 'lake' 
    },{ 
      value: 11, 
      p: 0.01, 
      label: 'reservoir pond' 
    }, { 
      value : 12, 
      p: 0.0, 
      label: 'permanent glacier and snow' 
    }, { 
      value: 13, 
      p: 0.41, 
      label: 'beach' 
    }, { 
      p: 0.5, 
      value: 14, 
      label: 'beach' 
    }, { 
      value: 15, 
      p: 0.21, 
      label: 'town' 
    }, { 
      value: 16, 
      p: 0.21, 
      label: 'rural settlement' 
    },{
      value: 17, 
      p: 0.21, 
      label: 'other construction land' 
    }, { 
      value: 18, 
      p: 0.51, 
      label: 'beach' 
    }, { 
      value: 19, 
      p: 0.61, 
      label: 'Gobi' 
    }, { 
      value: 20, 
      p: 0.31, 
      label: 'saline land' 
    }, { 
      value: 21, 
      p: 0.01, 
      label: 'swamp' 
    },{ 
      value: 22, 
      p: 0.41, 
      label: 'bare land' 
    },{ 
      value: 23, 
      p: 0.61, 
      label: 'bare rock and gravel'  
    }],
    soilTextureValue: 0, 
    uslsValue: 1,
    RainVal: 30,
    IntervalTime: 30,
    avgTemp: 20,
    avgWindSpeed: 2,
    avgAirHumidity:0.4,
    count: 0
  }
}

4. The key java code implements the simulation interface

//getAscGeoJsonByCIdxSim
//http://localhost:8145/api/soil/getAscGeoJsonByCIdxSim?rowInterval=714&rowIntervalIdxNum=0&crowIntervalIdx=0&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4
/**
 * 索引从0开始
 * @param rowInterval
 * @param rowIntervalIdxNum
 * @param crowIntervalIdx
 * @return
 */
@GetMapping("/getAscGeoJsonByCIdxSim")
public String getAscGeoJsonByCIdxSim(int rowInterval,int rowIntervalIdxNum,int crowIntervalIdx,double rainVal,double soilTextureValue,
                                     double uslsValue,
                                     double IntervalTime,
                                     double avgTemp,
                                     double avgWindSpeed,
                                     double avgAirHumidity) {
    String ascGeoJson = ascGeoSoil.getAscGeoJsonByCIdxSim(rowInterval,rowIntervalIdxNum,crowIntervalIdx,rainVal,soilTextureValue,uslsValue,IntervalTime,avgTemp,avgWindSpeed,avgAirHumidity);
    return ascGeoJson;
}

Return the simulation calculation result data of geojson

5. Implementation of key front-end calling visual code configuration

geoJsonFe0: {
  layerCode: 'geoJsonFe0',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water0',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=3&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe1: {
  layerCode: 'geoJsonFe1',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water1',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=6&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe2: {
  layerCode: 'geoJsonFe2',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title:'water2',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=9&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe3: {
  layerCode: 'geoJsonFe3',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title:'water3',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=12&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe4: {
  layerCode: 'geoJsonFe4',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water4',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=15&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe5: {
  layerCode: 'geoJsonFe5',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water5',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=18&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe6: {
  layerCode: 'geoJsonFe6',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water6',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=21&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe7: {
  layerCode: 'geoJsonFe7',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water7',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=24&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe8: {
  layerCode: 'geoJsonFe8',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water8',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=27&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe9: {
  layerCode: 'geoJsonFe9',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water9',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: true
}

6. The software realizes visual effects (adjust parameters for model training, follow-up expansion to incorporate more parameter adjustment models, technical cooperation and exchange QQ: 2401315930)

If it is helpful to you, please like and reward support! Thank you very much for your support!

Guess you like

Origin blog.csdn.net/weixin_42496466/article/details/130634207