The codes and data for "A Graph Convolutional Neural Network-based Method for Predicting Computational Intensity of Geocomputation"

<h2>A Graph Convolutional Neural Network-based Method for Predicting Computational Intensity of Geocomputation</h2><p><br></p><p dir="ltr">This is the implementation for the paper "A Graph Convolutional Neural Network-based Method for Predicting Com...

وصف كامل

محفوظ في:
التفاصيل البيبلوغرافية
المؤلف الرئيسي: FirstName LastName (20554465) (author)
منشور في: 2025
الموضوعات:
الوسوم: إضافة وسم
لا توجد وسوم, كن أول من يضع وسما على هذه التسجيلة!
الوصف
الملخص:<h2>A Graph Convolutional Neural Network-based Method for Predicting Computational Intensity of Geocomputation</h2><p><br></p><p dir="ltr">This is the implementation for the paper "A Graph Convolutional Neural Network-based Method for Predicting Computational Intensity of Geocomputation".</p><p dir="ltr">The framework is Learning-based Computing Framework for Geospatial data(LCF-G).</p><p dir="ltr">Prediction, ParallelComputation and SampleGeneration.</p><p dir="ltr">This paper includes three case studies, each corresponding to a folder. Each folder contains four subfolders: data, CI</p><ul><li>The <b>data</b> folder contains geospatail data.</li><li>The <b>CIPrediction</b> folder contains model training code.</li><li>The <b>ParallelComputation</b> folder contains geographic computation code.</li><li>The <b>SampleGeneration </b>folder contains code for sample generation.</li></ul><h2>Case 1: Generation of DEM from point cloud data</h2><h3>step 1: Data download</h3><p dir="ltr">Dataset 1 has been uploaded to the directory <code>1point2dem/data</code>. The other two datasets, <b>Dataset 2</b> and <b>Dataset 3</b>, can be downloaded from the following website:</p><p dir="ltr"><a href="https://opentopography.org/" target="_blank">OpenTopography</a></p><p dir="ltr">Below are the steps for downloading <b>Dataset 2</b> and <b>Dataset 3</b>, along with the query parameters:</p><ul><li>Dataset 2:</li></ul><ol><li><b>Visit OpenTopography Website</b>: Go to Dataset 2 Download Link.<a href="https://portal.opentopography.org/lidarDataset?opentopoID=OTLAS.112018.2193.1" target="_blank">https://portal.opentopography.org/lidarDataset?opentopoID=OTLAS.112018.2193.1</a></li><li><b>Coordinates & Classification</b>:In the section "1. Coordinates & Classification", select the option <b>"Manually enter selection coordinates"</b>.</li><li><b>Set the coordinates as follows</b>: <b>Xmin</b> = 1372495.692761,<b>Ymin</b> = 5076006.86821,<b>Xmax</b> = 1378779.529766,<b>Ymax</b> = 5085586.39531</li><li><b>Point Cloud Data Download</b>:Under section "2. Point Cloud Data Download", choose the option <b>"Point cloud data in LAS format"</b>.</li><li><b>Submit</b>:Click on <b>"SUBMIT"</b> to initiate the download.</li></ol><ul><li>Dataset 3:</li></ul><ol><li><b>Visit OpenTopography Website</b>:Go to Dataset 3 Download Link: <a href="https://portal.opentopography.org/lidarDataset?opentopoID=OTLAS.052016.26912.1" target="_blank">https://portal.opentopography.org/lidarDataset?opentopoID=OTLAS.052016.26912.1<br></a></li><li><b>Coordinates & Classification</b>:<br>In the section "1. Coordinates & Classification", select the option <b>"Manually enter selection coordinates"</b>.</li><li><b>Set the coordinates as follows</b>:<b>Xmin</b> = 470047.153826,<b>Ymin</b> = 4963418.512121,<b>Xmax</b> = 479547.16556,<b>Ymax</b> = 4972078.92768</li><li><b>Point Cloud Data Download</b>:<br>Under section "2. Point Cloud Data Download", choose the option <b>"Point cloud data in LAS format"</b>.</li><li><b>Submit</b>:Click on <b>"SUBMIT"</b> to initiate the download.</li></ol><h3>step 2: Sample generation</h3><p dir="ltr">This step involves data preparation, and samples can be generated using the provided code. Since the samples have already been uploaded to <code>1point2dem/SampleGeneration/data</code>, this step is optional.<br></p><p dir="ltr"><i>cd 1point2dem/SampleGeneration</i></p><p dir="ltr"><i>g++ PointCloud2DEMSampleGeneration.cpp -o PointCloud2DEMSampleGeneration</i></p><p dir="ltr"><i>mpiexec -n {number_processes} ./PointCloud2DEMSampleGeneration ../data/pcd path/to/output</i></p><h3>step 3: Model training</h3><p dir="ltr">This step involves training three models (GAN, CNN, GAT). The model results are saved in <code>1point2dem/SampleGeneration/result</code>, and the results for <b>Table 3</b> in the paper are derived from this output.</p><p dir="ltr"><i>cd 1point2dem/CIPrediction</i></p><p dir="ltr"><i>python -u point_prediction.py --model [GCN|ChebNet|GATNet]</i></p><h3>step 4: Parallel computation</h3><p dir="ltr">This step uses the trained models to optimize parallel computation. The results for <b>Figures 11-13</b> in the paper are generated from the output of this command.</p><p dir="ltr"><i>cd 1point2dem/ParallelComputation</i></p><p dir="ltr"><i>g++ ParallelPointCloud2DEM.cpp -o ParallelPointCloud2DEM</i></p><p dir="ltr"><i>mpiexec -n {number_processes} ./ParallelPointCloud2DEM ../data/pcd</i></p><h2>Case 2: Spatial intersection of vector data</h2><h3>step 1: Data download</h3><p dir="ltr">Some data from the paper has been uploaded to <code>2intersection/data</code>. The remaining OSM data can be downloaded from GeoFabrik. Below are the download steps and parameters:</p><ul><li>Directly click the following link to download the OSM data: <a href="https://download.geofabrik.de/europe/czech-republic-latest-free.shp.zip" target="_blank">GeoFabrik - Czech Republic OSM Data</a></li></ul><h3>step 2: Sample generation</h3><p dir="ltr">This step involves data preparation, and samples can be generated using the provided code. Since the samples have already been uploaded to <code>2intersection/SampleGeneration/data</code>, this step is optional.</p><p dir="ltr"><i>cd 2intersection/SampleGeneration</i></p><p dir="ltr"><i>g++ ParallelIntersection.cpp -o ParallelIntersection</i></p><p dir="ltr"><i>mpiexec -n {number_processes} ./ParallelIntersection ../data/shpfile ../data/shpfile</i></p><h3>step 3: Model training</h3><p dir="ltr">This step involves training three models (GAN, CNN, GAT). The model results are saved in <code>2intersection/SampleGeneration/result</code>, and the results for <b>Table 5</b> in the paper are derived from this output.</p><p dir="ltr"><i>cd 2intersection/CIPrediction</i></p><p dir="ltr"><i>python -u vector_prediction.py --model [GCN|ChebNet|GATNet]</i></p><h3>step 4: Parallel computation</h3><p dir="ltr">This step uses the trained models to optimize parallel computation. The results for <b>Figures 14-16</b> in the paper are generated from the output of this command.</p><p dir="ltr"><i>cd 2intersection/ParallelComputation</i></p><p dir="ltr"><i>g++ ParallelIntersection.cpp -o ParallelIntersection</i></p><p dir="ltr"><i>mpiexec -n {number_processes} ./ParallelIntersection ../data/shpfile1 ../data/shpfile2</i></p><h2>Case 3: WOfS analysis using raster data</h2><h3>step 1: Data download</h3><p dir="ltr">Some data from the paper has been uploaded to <code>3wofs/data</code>. The remaining data can be downloaded from <a href="http://openge.org.cn/advancedRetrieval?type=dataset" target="_blank">http://openge.org.cn/advancedRetrieval?type=dataset</a>. Below are the query parameters:</p><ul><li><b>Product Selection</b>: Select `LC08_L1TP` and `LC08_L1GT`</li><li><b>Latitude and Longitude Selection</b>:Minimum Longitude: 112.5,Maximum Longitude: 115.5, Minimum Latitude: 29.5, Maximum Latitude: 31.5</li><li><b>Time Range</b>: 2013-01-01 to 2018-12-31</li><li>Other parameters: Default</li></ul><h3>step 2: Sample generation</h3><p dir="ltr">This step involves data preparation, and samples can be generated using the provided code. Since the samples have already been uploaded to <code>3wofs/SampleGeneration/data</code>, this step is optional.</p><p dir="ltr"><i>cd 3wofs/SampleGeneration</i></p><p dir="ltr"><i>sbt packeage</i></p><p dir="ltr"><i>spark-submit --master {host1,host2,host3} --class whu.edu.cn.core.cube.raster.WOfSSampleGeneration path/to/package.jar</i></p><h3>step 3: Model training</h3><p dir="ltr">This step involves training three models (GAN, CNN, GAT). The model results are saved in <code>3wofs/SampleGeneration/result</code>, and the results for <b>Table 6</b> in the paper are derived from this output.</p><p dir="ltr"><i>cd 3wofs/CIPrediction</i></p><p dir="ltr"><i>python -u raster_prediction.py --model [GCN|ChebNet|GATNet]</i></p><h3>step 4: Parallel computation</h3><p dir="ltr">This step uses the trained models to optimize parallel computation. The results for <b>Figures 18, 19</b> in the paper are generated from the output of this command.</p><p dir="ltr"><i>cd 3wofs/ParallelComputation</i></p><p dir="ltr"><i>sbt packeage</i></p><p dir="ltr"><i>spark-submit --master {host1,host2,host3} --class whu.edu.cn.core.cube.raster.WOfSOptimizedByDL path/to/package.jar path/to/output</i></p><h3>Statement about Case 3</h3><p dir="ltr"><b>The experiment Case 3 presented in this paper was conducted with improvements made on the GeoCube platform.</b></p><ul><li><b>Code Name</b>: GeoCube</li><li><b>Code Link</b>: <a href="https://doi.org/10.6084/m9.figshare.15032847.v1" target="_blank">GeoCube Source Code</a></li><li><b>License Information</b>: The GeoCube project is openly available under the <b>CC BY 4.0 license</b>.The GeoCube project is licensed under <b>CC BY 4.0</b>, which is the <b>Creative Commons Attribution 4.0 International License</b>, allowing anyone to freely share, modify, and distribute the platform's code.</li><li><b>Citation</b>:<br>Gao, Fan (2022). A multi-source spatio-temporal data cube for large-scale geospatial analysis. figshare. Software. <a href="https://doi.org/10.6084/m9.figshare.15032847.v1" target="_blank">https://doi.org/10.6084/m9.figshare.15032847.v1</a></li></ul><p dir="ltr"><b>Clarification Statement</b>:</p><p dir="ltr"><b>The authors of this code are not affiliated with this manuscript</b>. The <b>innovations</b> and <b>steps</b> in Case 3, including data download, sample generation, and parallel computation optimization, were independently developed and are not dependent on the GeoCube’s code.</p><h2>Requirements</h2><p dir="ltr">The codes use the following dependencies with Python 3.8</p><ul><li>torch==2.0.0</li><li>torch_geometric==2.5.3</li><li>networkx==2.6.3</li><li>pyshp==2.3.1</li><li>tensorrt==8.6.1</li><li>matplotlib==3.7.2</li><li>scipy==1.10.1</li><li>scikit-learn==1.3.0</li><li>geopandas==0.13.2</li></ul><p><br></p>