nqdu / JDSurfG

Joint Inversion of Direct Surface Wave Tomography and Bouguer Gravity
MIT License
35 stars 10 forks source link

求助,如何解决“Source lies outside bounds of model“ #8

Closed Xclearsky closed 4 months ago

Xclearsky commented 4 months ago

(1)首先,非常感谢作者分享程序,我在试图运行最新版的程序(4月更新的JDSurfG-4.0)时,出现了“Source lies outside bounds of model (lat,long)= 31.9625969 108.645996”警告。 (2)然后,我试图放大模型。首先,根据UserManual中的4.2节,我注意到作者定义的模型原点是西北点,同时在“surfdataSC.dat”文件里找到了发射站(以#开头)的最大最小值(lat:max=34.4,min=26.5;lon:max=109.5,min=100.9),于是我去修改“MOD”文件的第二行“35.3 99.7”为“35 100”(原点西北点,北半球,我理解的是模型原点应该是纬度>发射站最大值,经度<发射站最小值) ,修改后仍然提示“Source lies outside bounds of model (lat,long)= 31.9625969 108.645996” (3)最后,我又尝试修改为“35 110”;“25 110”;“25 100”,均提示“Source lies outside bounds of model (lat,long)= 31.9625969 108.645996”。 我不知道我为什么会出现这个警告,即使我用的原本example文件里的数据和模型,我试图放大模型,仍然是这个警告,求助作者,我哪里思考错误,应该怎么修改。 感谢作者

nqdu commented 4 months ago

(1) I've tried the example in example and the program works fine. Since I cannot reproduce your results, I don't know what's your problem is about ...

(2)-(3) bigger model means that your should increase lat0 and decrease lon0, as well as increase nlat/nlon. But it seems you're working on the opposite way?

Xclearsky commented 4 months ago

Thank you for your answer! I tried to modify the file in the way you gave. (43 46 41 #nlat nlon nz 40 90 # lat0 lon0 0.3 0.3 # dlat dlon) MOD

But the results remain unchanged. (“Source lies outside bounds of model (lat,long)= 31.9625969 108.645996”) carry

I've also changed the larger lat0.Such as 50 and 60. And the smaller lon0 80 and 70. And the larger nlat/nlon. Such as 53/56 or 63/63. But the result is still “Source lies outside bounds of model (lat,long)= 31.9625969 108.645996”

Perhaps it could be that I made some unexpected error with the installer, I will try to reinstall the programme tomorrow. Thank you again.

nqdu commented 4 months ago

from your model, we can get the model region in longitude: lonmin = 90; lonmax = 90 + (46 -1) * 0.3 = 103.5 < 108.6459 ...

So that's why one of your station is out of the bounds.

Xclearsky commented 4 months ago

Thank you for your answer! I tried to change, but it didn't seem to work. MOD carry

latmax=40;latmin=40-(63-1)0.3=21.4 21.4<31.9625<40 lonmin=98;lonmax=98+(66-1)0.3=117.5 98<108.6459<117.5 I modified the file so that this point should be located within the model If I'm not mistaken. But the result is still "Source lies outside bounds of model (lat,long)= 31.9625969 108.645996"

The example file in your program should run successfully, but when I run it it still says "Source lies outside bounds of model (lat,long)= 31.9625969 108.645996". I'm guessing there may have been some unexpected error with the installation?

Thank you again.

nqdu commented 4 months ago

I've created a model with the same size as you, but it seems work well. image

Since I cannot produce the same result as you did, I cannot figure out what the problem might be ...

Some suggestions:

  1. have a look at path to your "DSurfTomo", it looks like you've put it in the envrionment variables ...
  2. If the problem is still here, may be you can send (part of) your files to me.
nqdu commented 4 months ago

Another potential issue is that you may forget to input the checkerboard model file 'mod.true' in the command line. In this case the program will not allocate memory for the checkerborad model, and may result in some undefined behaviors ...

Xclearsky commented 4 months ago

Thank you for your help! I've run it successfully. MOD successful

The problem is that I didn't add the MOD.true file. Previously, I only executed DSurfTomo, DSurfTomo.in, surfdataSC.dat and MOD. Then an error is reported. When I add the MOD.true file, it can run successfully.

I made the mistake of thinking I only needed one model at a time. Blame it on my lack of learning. I have more to learn. Thank you again for your program and assistance. This problem has been solved with your help. wish you every success