CIDCO-dev / OpenSidescan

Sidescan files viewer
Other
27 stars 17 forks source link

Test sidescan georeferencing #71

Open glabmoris opened 4 years ago

glabmoris commented 4 years ago

Make sure the georeferencing method is correct, and its results are valid.

CBcidco commented 4 years ago

A .pptx file was provided to me which shows an image from the Scotsman wreck in Caris and in OpenSidescan. 5 Points are marked on the Caris image with their longitude-latitude pairs. The corresponding points are marked on the OpenSidescan image.

I added a bit of text in the .pptx file to indicate the name of the sidescan filen and that one image and the longitude-latitude pairs are from Caris and that the other image is from OpenSidescan. I put the file in the folder test/data/wrecks/scotsman5info.

I produced a CSV file with the coordinates from Caris. I manually created small objects in OpenSidescan for the points georeferenced in Caris. I then exported the object inventory as a CSV file. I put both CSV files in the same folder.

I wrote a python program to compute the distance between the points in Caris and the corresponding points in OpenSidescan. The output of the program is included below.

The distance on a great circle between the 5 points in Caris and the corresponding points in OpenSidescan is 33.7 to 39.4 m.

According to

http://patrimoine-culturel.gouv.qc.ca/rpcq/detail.do?methode=consulter&id=210726&type=bien#.XnJUhqYpAUE

the scotsman has a length close to 25 meters. This is an indication of the order of magnitude for the distance between points W and Y. The distances obtained with the data from Caris and from OpenSidescan are at the end of the program output.

Object name, Caris longitude-latitude, OpenSidescan longitude-latitude [ ['V', -68.828257, 48.445629, -68.82820129394531, 48.445930480964016], ['W', -68.828268, 48.445548, -68.82815551757812, 48.44586563111049], ['X', -68.828327, 48.445632, -68.8282241821289, 48.445953369147595], ['Y', -68.82837, 48.445703, -68.82828521728516, 48.446052551276516], ['Z', -68.828345, 48.445666, -68.8282470703125, 48.44601058960659]]

-----> ASSUMING earth is a sphere of radius = 6371.0 km

Distance on a great circle between points in Caris vs. OpenSidescan, in meters: [ ['V', 33.77401590367466], ['W', 36.2803346483599], ['X', 36.53047695809648], ['Y', 39.368168347469904], ['Z', 38.99150122834046]]

Distance for the latitude difference, in meters: [ ['V', 33.523153678841666], ['W', 35.31896803106303], ['X', 35.734618792324085], ['Y', 38.868328550502596], ['Z', 38.31661602659886]]

Distance for the longitude difference (at the latitude in Caris), in meters: [ ['V', 4.108821959355728], ['W', 8.296602313014318], ['X', 7.583741193574194], ['Y', 6.25347774091321], ['Z', 7.223188926830584]]

Distance on a great circle between W and Y points, Caris: 18.80570098444838

Distance on a great circle between W and Y points, OpenSidescan: 22.880463494994984

glabmoris commented 4 years ago

Il faudra documenter le test unitaire avec ces infos

glabmoris commented 4 years ago

de @CBcidco

Est-ce que tu as les valeurs à fournir pour les paramètres de la fonction "detectObjects()"?

Screenshot from 2020-03-20 14-47-06

­­­

Avec les valeurs par défaut, sur le channel 0 de scotsman5.xtf, cela trouve un object qui contient le Scotsman mais qui est décentré et qui est plus haut et plus large que l'épave, et un autre objet à côté.

Il y a des fichiers où le champ de débris est détecté. À toi de choisir le fichier le plus facile à tester.

Je peux passer à travers la liste d'objets trouvés et sélectionner celui qui est le plus proche de la position connue du Scotsman dans Caris. Ensuite comparer la différence de position avec un REQUIRE().

Prend directement celui qui correspond au Scotsman

On peut avoir la hauteur et la largeur que l'épave a par Caris, est-ce que tu veux que je mette un REQUIRE() sur la largeur et un REQUIRE() sur la hauteur de l'objet trouvé qui est le plus proche de la position connue du Scotsman dans Caris?

Pas nécessaire. Cet issue a assez pris de temps.

glabmoris commented 4 years ago

@CBcidco quelle est l'erreur minimale qu'on doit supporter pour éviter de déranger les hydrographes à refaire leurs calculs pour le point que tu leur fournis?

C'est à dire la plus petite distance entre le point centre donné parla détection et les points que Dominic t'as donné

CBcidco commented 4 years ago

Avec les coordonnées que Dominic m’a données, je calcule une distance de 5.2 mètres entre les points X et V. En me basant sur cette distance, la distance entre le point que j’ai demandé vendredi et le point X (le point le plus proche) doit être en dedans de 3.0 m.

glabmoris commented 4 years ago

Mets un threshold d'erreur de 5.5m et ferme cet issue. On gèrera quand on ajoutera le layback et le bras de levier.

Bravo @JordanMcManus , c'est sur la coche comme méthode, considérant l'erreur du bras de levier et du layback..

CBcidco commented 4 years ago

OK, je vais mettre le threshold à 5.5 m. Je vais fermer l'issue avec mon prochain pull request.