nicmenegoni / ROKA

ROck slope Kinematic Analysis, perform an ad-hoc stability/kinematic analysis of rock cliff using 3D models and 3D fracture data
27 stars 8 forks source link

awesome algorithm #6

Open CurryFang30 opened 2 years ago

CurryFang30 commented 2 years ago

Hello , Thank you for creating this awesome algorithm ! Is there a video tutorial or a detailed explanation on how to use it ? Thanks for your help. F

nicmenegoni commented 2 years ago

Hi CurryFang, I just loaded a pdf file of the step-by-step guide. Please, have a look and tell me if this can work for you. To use the ROKA code you will need for the Computer Vision Toolbox and the Parallel Computing Toolbox of MATLAB. Do not hesitate to contact me if you have any issues or questions. Cheers, Niccolò

CurryFang30 commented 2 years ago

Hi Firstly, thanks for your help. It works, but I have some new questions. I have implemented the case in the tutorial, but when I did my own case, he prompted me that 'wrong use of fprintf. The file identifier is invalid. Use fopen to generate a valid file identifier.’ I have uploaded some information in the attachment. I hope I can get your help. Sincerely, F question.docx

nicmenegoni commented 2 years ago

Hi CurryFang,

I have attached the word file with the solution to your problems. It seems that the directory in which your data (point cloud and discontinuity information) is problematic for MATLAB, try to move the data in another directory or to give to MATLAB the permission to write in specific directory. Moreover, looking at your data, it seems that the position of the point cloud and the discontinuity planes is not the same (the point cloud is in a real-world coordinate system, and the discontinuity planes are in a local coordinate system). In the word file I suggest you two method the resolve the issue. Let me know if you have other issues,

Cheers, Niccolò

Da: CurryFang30 @.> Risposta: nicmenegoni/ROKA @.> Data: sabato 18 dicembre 2021 15:35 A: nicmenegoni/ROKA @.> Cc: Niccolò Menegoni @.>, Comment @.***> Oggetto: Re: [nicmenegoni/ROKA] awesome algorithm (Issue #6)

Hi Firstly, thanks for your help. It works, but I have some new questions. I have implemented the case in the tutorial, but when I did my own case, he prompted me that 'wrong use of fprintf. The file identifier is invalid. Use fopen to generate a valid file identifier.’ I have uploaded some information in the attachment. I hope I can get your help. Sincerely, F question.docxhttps://github.com/nicmenegoni/ROKA/files/7739398/question.docx

— Reply to this email directly, view it on GitHubhttps://github.com/nicmenegoni/ROKA/issues/6#issuecomment-997210989, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANRP4ECDFS5AMFMEAXPOWSTURSLZZANCNFSM5INT6VBQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.Message ID: @.***>

CurryFang30 commented 2 years ago

Hi, nicmenegoni Thank you for your timely reply. But I didn't find the Word file, maybe there is something wrong with the system. Could you please upload it again? Cheers, F

nicmenegoni commented 2 years ago

Hi,

I re-attach the file. Moreover, I copy here below the text of the word file:

“Hi CurryFang, here below, in blue you can find some of my comments:

My test information (some): ①test_Dis_geo_info: @.*** Take a look at the values of Xcenter, Ycenter and Zcenter and compare it with the X, Y, Z of the Cloud: they are very different! This is probably due to the translation ('global shift') applied by CloudCompare when importing the cloud (georeferences in a real coordinate system). To work with ROKA, you need that the two coordinate systems are identical.

②test_Dis_Set_info: @.*** The discontinuity Set info are ok!

③test-Cloud: @. Here you can see that the values in the first three columns are very different from the Xcenter, Ycenter and Zcenter of the Discontinuity planes. To uniform them you can try to translate the pointcloud in the same coordinate system of the Discontinuity planes in two ways: 1) import the pointcloud, select it and goes in 'Edit'->'apply transformation'. Select the panel 'Axis Angle' and then in the Translation window insert the global shift values and click onto apply. Then, when CloudCompare will ask you to define the new global shift value, you have to define 0 for X, Y and Z. Then save the translated point cloud (do not overwrite the original one!). 2) When you import the point cloud in a real coordinate system, CloudCompare always ask you to translate it to a local coordinate system (CloudCompare cannot work, or works bad, when coordinates values are too big). When the Global Shift windows appear, search for the 'Preserve global shift on scale' check box and unchecked it (see the Figure below) @. In the figure the check box is checked, but if you want to save the translated cloud in the local coordinate system the check box must be unchecked! Then save the translated point cloud (do not overwrite the original one!).

After the translation, make a check if the translated point cloud and the planes are correctly positioned respect to each other. Close CloudCompare and open a new one and import the translated point cloud and the plane. If they agree, you can use ROKA. ④The error message: Wrong use of fprintf The file identifier is invalid. Use fopen to generate a valid file identifier. @.*** This is due to the fid parameter. It is created by the fopen function, and it needs to define the path/directory in which the data will be wrote. When fopen fails, it does not generate an error message. Instead, it sets the fid to -1. Check the value of fid after calling fopen. If it is -1, it means that MATLAB may not have the permissions to write in in the directory where your data are stored. Most likely the directory is read-only for MATLAB. To overcome the issue, try to change the directory of the point cloud and discontinuity data.

Let me know if you need other help!

Bye, Niccolò”

Cheers, Niccolò

Da: CurryFang30 @.> Risposta: nicmenegoni/ROKA @.> Data: domenica 19 dicembre 2021 06:28 A: nicmenegoni/ROKA @.> Cc: Niccolò Menegoni @.>, Comment @.***> Oggetto: Re: [nicmenegoni/ROKA] awesome algorithm (Issue #6)

Hi, nicmenegoni Thank you for your timely reply. But I didn't find the Word file, maybe there is something wrong with the system. Could you please upload it again? Cheers, F

— Reply to this email directly, view it on GitHubhttps://github.com/nicmenegoni/ROKA/issues/6#issuecomment-997332478, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANRP4EBY5BOPNE76HNFXZH3URVURFANCNFSM5INT6VBQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.Message ID: @.***>

CurryFang30 commented 2 years ago

Hi, nicmenegoni The problem has been solved. Your explanation is very effective. If I have any questions later, I'll contact you again. Thanks for your selfless help and timely reply. Sincerely, F

CurryFang30 commented 2 years ago

Hi, nicmenegoni I'm sorry to bother you again.I have some new questions. You mentioned "every discontinuity is ranked by its critical value on a scale between 0 and 1 (0–100%)" in your article( https://doi.org/10.3390/app11041698). If I get a value of 60%, how is this value or probability determined? Is that a percentage of all poles in the file? Thanks for your help. Sincerely, F

nicmenegoni commented 2 years ago

Hi CurryFang, I’m happy to answer at your question.

This critical value is a relative parameter to identify the most ‘dangerous’ discontinuities for each instability kinematic. It is calculated considering the size of the intersection between the rock slope and the critical discontinuities, and normalizing the intersection size according to the maximum value.

An example: ROKA finds 6 discontinuities (D1, D2, D3, D4, D5, D6) that can cause planar sliding. The dimension of the intersection between the critical discontinuities and the rock slope are: D1 • 1.5m D2 • 13m D3 • 10m D4 • 6m D5 • 2m D6 • 9m The maximum intersection size is 13m and correspond to the intersection between the rock slope and the discontinuity D2. So now, ROKA calculates the critical value normalizing all the intersection between the rock slope and the discontinuity according to the intersection size of D2 (the highest intersection size): D1 • 1.5m/13m = 11% D2 • 13m/13m = 100% D3 • 10m/13m = 77% D4 • 6m/13m = 46% D5 • 2m/13m = 15% D6 • 9m/13m = 69%

I hope that this can clarify. If you have other questions do not hesitate to contact me, I’m happy to answer at your questions.

Cheers, Niccolò

Da: CurryFang30 @.> Risposta: nicmenegoni/ROKA @.> Data: domenica 9 gennaio 2022 15:10 A: nicmenegoni/ROKA @.> Cc: Niccolò Menegoni @.>, Comment @.***> Oggetto: Re: [nicmenegoni/ROKA] awesome algorithm (Issue #6)

Hi, nicmenegoni I'm sorry to bother you again.I have some new questions. You mentioned "every discontinuity is ranked by its critical value on a scale between 0 and 1 (0–100%)" in your article( https://doi.org/10.3390/app11041698). If I get a value of 60%, how is this value or probability determined? Is that a percentage of all poles in the file? Thanks for your help. Sincerely, F

— Reply to this email directly, view it on GitHubhttps://github.com/nicmenegoni/ROKA/issues/6#issuecomment-1008305093, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANRP4EFY4FRAZESE46EDYSDUVGJNBANCNFSM5INT6VBQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.Message ID: @.***>

AfterMineR commented 2 years ago

Hi, I am facing some error while running this app. Pleas let me know how to resolve.

########### ROKA algorithm has been launched ############ Starting to calculate all the disconinuities intersections at 2.6798 minutes End of the calculation of the disconinuities intersections at 2.6924 minutes Starting the kinematic analysis at 2.6928 minutes Unrecognized function or variable 'findNearestNeighbors'.

Error in requiredKNNcalc (line 4) [idxKrn, ptdistrn] = findNearestNeighbors(ptCloud,PC(rn(i),1:3),5);

Error in ROKAmain (line 142) reqKnn=requiredKNNcalc(PC(:,1:3),ptCloud,userSPr);

Details of the code lines are:

image

image