Skip to content

Commit

Permalink
Merge pull request #9 from patcmorneau/main
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
glabmoris authored Aug 1, 2024
2 parents 82e0a15 + 62802f5 commit 84a6d65
Showing 1 changed file with 7 additions and 72 deletions.
79 changes: 7 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
Mussel prediction from MBES point cloud
## 1) Prep ground truth data
### Remove useless columns, sort by date
consider epsg 8254 to be equal to epsg 4326
```
cut -d ";" -f 1,2,3,5 data/mussels/merge_of_raw_data.csv | sort -t";" -k4 -r > mussels_sorted_by_date_epsg-8254.csv
```
Expand All @@ -21,82 +20,18 @@ sed -i '1,4d' mussels_sorted_by_date_epsg-8254.csv
cut -d ";" -f 1-3 mussels_sorted_by_date_epsg-8254.csv | sort -k1,1 -k2,2 --unique > mussels_epsg-8254.csv
```

## 2) Prep MBES data
### Convert MBES dms to decimal
## 2) Train regression model
```
python3 src/dms_to_dec.py data/test/cap-sample-epsg8254-dms.txt > data/test/cap-sample-epsg8254-decimal.txt
python3 src/train_model.py data/train_data/training_data.txt
```

## 3) Put MBES and ground truth data in same reference system -> ENU
### Compile
```
cd MBES-lib
mkdir build && cd build
cmake ..
make wgs2lgf
```
```
g++ -I /usr/include/eigen3 src/wgs2lgf_from_lat_lon_eh.cpp -o wgs2lgf_from_lat_lon_eh
```

keep centroid values somewhere
```
cat Cap-Rouge_to_Lac-St-Pierre_epsg-8254-decimal.txt | ./MBES-lib/build/wgs2lgf enu > Cap-Rouge_to_Lac-St-Pierre_enu.txt
```
lat lon Z centroid : 46.527207203821909332 -72.066496911800527414 12.819235715989787394
```
cat mussels_epsg-8254.txt | ./wgs2lgf_from_lat_lon_groundruth enu centroid_Lat centroid_Lon centroid_ellipsoidal_height > mussels_enu.txt
```

### Generate hackel features
```
cat ~/Cap-Rouge_to_Lac-St-Pierre_enu.txt | ./soundings_generate_features 10 > ~/Cap-Rouge_to_Lac-St-Pierre_enu.hackel
```

### Unsupervised MBES classification
```
python3 gmm_best_fit.py ~/Cap-Rouge_to_Lac-St-Pierre_enu.hackel 6 > Cap-Rouge_to_Lac-St-Pierre_enu_gmm_hackel.txt
```

## 4) Generate Trainning data

output xyz hackel_features gmmClass musselGroundTruth
## 3) Generate hackel file
### Mbes file must be in a projected or orthogonal reference system on a 1*1 M grid
### The utility soundings_generate_features is from Benthinc_classifier : https://github.com/CIDCO-dev/BenthicClassifier
```
python3 generate_training_data.py ../data/mussels/mussels_enu_more_precision_centroid.txt ~/Cap-Rouge_to_Lac-St-Pierre_enu_hackel_gmm.txt 10 > ~/training_data.txt
```

## 5) Optimize model parameter and train
all cpu core will be use for parameter optimisation
```
python3 train_model.py training_data.txt
cat MBES_FILE.txt | ./soundings_generate_features 10 > outputFilePath.hackel
```

## 6) Apply model
```
python3 apply_model.py trained_mussel_regression.model FILE > ~/result.xyzc
```

## 7) Rasterize result
### Compile utility
```
g++ -I /usr/include/eigen3 lgf2wgs.cpp -o lgf2wgs
```

### convert coordinates back to WGS
```
cat ~/result.xyzc | ./lgf2wgs enu 46.527207203821909332 -72.066496911800527414 12.819235715989787394 > ~/lat_lon_eh_Class.csv
```

### get min max xy to change raster resolution
```
python3 find_min_max_coordinates.py ~/lat_lon_eh_Class.csv
```

### Export result as geotiff
```
bash script/rasterize.bash ~/lat_lon_eh_Class.csv ~/rasters 4326
```
or run a similar command like this
```
gdal_grid -zfield "field_3" -a_srs EPSG:4326 -a invdist -ot Float64 -l lat_lon_eh_Class script/lat_lon_eh_Class.vrt ~/raster_reso_1/mussel_resolution_1.tiff --config GDAL_NUM_THREADS ALL_CPUS -txe -72.6806747039285 -71.41272166174498 -tye 46.26391417288448 46.71285611583465 -tr 0.00001 0.00001
python3 apply_model.py trained_mussel_regression.model FILE.hackel > outputFilePath_result.csv
```

0 comments on commit 84a6d65

Please sign in to comment.